Sha256: 9e84f4547586f4565da8c069a12be27cf88099db6bd1e153c303c2630e050716

Contents?: true

Size: 1.26 KB

Versions: 6

Compression:

Stored size: 1.26 KB

Contents

require 'spec_helper'
require 'doorkeeper/oauth/helpers/unique_token'

module Doorkeeper::OAuth::Helpers
  describe UniqueToken do
    let(:klass) { mock }

    let :generator do
      lambda { |size| "a" * size }
    end

    it "finds in the collection with given attribute" do
      klass.should_receive(:find_by_attribute).and_return(nil)
      UniqueToken.generate_for(:attribute, klass, :generator => generator)
    end

    it "is able to customize the generator method" do
      klass.stub(:find_by_attribute).and_return(nil)
      token = UniqueToken.generate_for(:attribute, klass, :generator => generator)
      token.should == "a" * 32
    end

    it "is able to customize the size of the token" do
      klass.stub(:find_by_attribute).and_return(nil)
      token = UniqueToken.generate_for(:attribute, klass, :generator => generator, :size => 2)
      token.should == "aa"
    end

    it "reattempt to create a token if has already found one" do
      existing_tokens  = ["a"*32, nil]
      attempted_tokens = ["a"*32, "b"]
      generator        = lambda { |size| attempted_tokens.pop }
      klass.stub(:find_by_attribute) { existing_tokens.pop }
      token = UniqueToken.generate_for(:attribute, klass, :generator => generator)
      token.should == "b"
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
doorkeeper-0.4.2 spec/lib/oauth/helpers/unique_token_spec.rb
doorkeeper-0.4.1 spec/lib/oauth/helpers/unique_token_spec.rb
doorkeeper-0.4.0 spec/lib/oauth/helpers/unique_token_spec.rb
doorkeeper-0.3.4 spec/lib/oauth/helpers/unique_token_spec.rb
doorkeeper-0.3.3 spec/lib/oauth/helpers/unique_token_spec.rb
doorkeeper-0.3.2 spec/lib/oauth/helpers/unique_token_spec.rb