spec/omniauth/strategies/createsend_spec.rb in omniauth-createsend-1.0.1 vs spec/omniauth/strategies/createsend_spec.rb in omniauth-createsend-1.0.2

- old
+ new

@@ -1,28 +1,56 @@ require 'spec_helper' -require 'omniauth-createsend' describe OmniAuth::Strategies::CreateSend do - subject do - OmniAuth::Strategies::CreateSend.new({}) + def app; lambda{|env| [200, {}, ["Hello."]]} end + let(:fresh_strategy){ Class.new(OmniAuth::Strategies::CreateSend) } + + before do + OmniAuth.config.test_mode = true end + after do + OmniAuth.config.test_mode = false + end + describe '#client' do + subject{ fresh_strategy } + it 'should have the correct createsend site' do - subject.client.site.should eq("https://api.createsend.com") + instance = subject.new(app, {}) + instance.client.site.should eq("https://api.createsend.com") end it 'should have the correct authorization url' do - subject.client.options[:authorize_url].should eq("/oauth") + instance = subject.new(app, {}) + instance.client.options[:authorize_url].should eq("/oauth") end it 'should have the correct token url' do - subject.client.options[:token_url].should eq('/oauth/token') + instance = subject.new(app, {}) + instance.client.options[:token_url].should eq('/oauth/token') end end + describe '#authorize_params' do + subject { fresh_strategy } + + it 'should include the appropriate authorize params passed in the :authorize_params option' do + instance = subject.new('abc', 'def', :authorize_params => {:scope => 'ViewReports,ImportSubscribers', :something => 'else', :state => '4321'}) + instance.authorize_params[:scope].should eq('ViewReports,ImportSubscribers') + end + + it 'should include appropriate top-level options that are marked as :authorize_options' do + instance = subject.new('abc', 'def', :authorize_options => [:scope], :scope => 'ViewReports,ImportSubscribers', :something => 'else', :authorize_params => {:state => '4321'}) + instance.authorize_params[:scope].should eq('ViewReports,ImportSubscribers') + end + end + describe '#callback_path' do + subject{ fresh_strategy } + it 'should have the correct callback path' do - subject.callback_path.should eq('/auth/createsend/callback') + instance = subject.new(app, {}) + instance.callback_path.should eq('/auth/createsend/callback') end end end