Begin consolidation of request building in reference. Further changes coming to simpl...
[arvados.git] / spec / google / api_client_spec.rb
index dbd772c9dd10496f38f141b2958ab1f9ff7dc6bb..ae25518fbb350f75cffceeeb08ac80cb5dd9f2e9 100644 (file)
 
 require 'spec_helper'
 
-gem 'faraday', '~> 0.7.0'
 require 'faraday'
 require 'faraday/utils'
-
-gem 'signet', '~> 0.3.0'
 require 'signet/oauth_1/client'
-
 require 'google/api_client'
 require 'google/api_client/version'
 
 shared_examples_for 'configurable user agent' do
   it 'should allow the user agent to be modified' do
-    @client.user_agent = 'Custom User Agent/1.2.3'
-    @client.user_agent.should == 'Custom User Agent/1.2.3'
+    client.user_agent = 'Custom User Agent/1.2.3'
+    client.user_agent.should == 'Custom User Agent/1.2.3'
   end
 
   it 'should allow the user agent to be set to nil' do
-    @client.user_agent = nil
-    @client.user_agent.should == nil
+    client.user_agent = nil
+    client.user_agent.should == nil
   end
 
   it 'should not allow the user agent to be used with bogus values' do
     (lambda do
-      @client.user_agent = 42
-      @client.transmit(
+      client.user_agent = 42
+      client.transmit(
         ['GET', 'http://www.google.com/', [], []]
       )
     end).should raise_error(TypeError)
   end
 
   it 'should transmit a User-Agent header when sending requests' do
-    @client.user_agent = 'Custom User Agent/1.2.3'
-    request = Faraday::Request.new(:get) do |req|
-      req.url('http://www.google.com/')
-    end
+    client.user_agent = 'Custom User Agent/1.2.3'
+
     stubs = Faraday::Adapter::Test::Stubs.new do |stub|
       stub.get('/') do |env|
         headers = env[:request_headers]
         headers.should have_key('User-Agent')
-        headers['User-Agent'].should == @client.user_agent
+        headers['User-Agent'].should == client.user_agent
         [200, {}, ['']]
       end
     end
     connection = Faraday.new(:url => 'https://www.google.com') do |builder|
       builder.adapter(:test, stubs)
     end
-    @client.transmit(:request => request, :connection => connection)
+    request = connection.build_request(:get) do |req|
+      req.url('http://www.google.com/')
+    end
+    client.transmit(:request => request, :connection => connection)
     stubs.verify_stubbed_calls
   end
 end
 
 describe Google::APIClient do
-  before do
-    @client = Google::APIClient.new
-  end
+  let(:client) { Google::APIClient.new }
 
   it 'should make its version number available' do
     Google::APIClient::VERSION::STRING.should be_instance_of(String)
   end
 
   it 'should default to OAuth 2' do
-    Signet::OAuth2::Client.should === @client.authorization
+    Signet::OAuth2::Client.should === client.authorization
   end
 
   it_should_behave_like 'configurable user agent'
 
   describe 'configured for OAuth 1' do
     before do
-      @client.authorization = :oauth_1
+      client.authorization = :oauth_1
     end
 
     it 'should use the default OAuth1 client configuration' do
-      @client.authorization.temporary_credential_uri.to_s.should ==
+      client.authorization.temporary_credential_uri.to_s.should ==
         'https://www.google.com/accounts/OAuthGetRequestToken'
-      @client.authorization.authorization_uri.to_s.should include(
+      client.authorization.authorization_uri.to_s.should include(
         'https://www.google.com/accounts/OAuthAuthorizeToken'
       )
-      @client.authorization.token_credential_uri.to_s.should ==
+      client.authorization.token_credential_uri.to_s.should ==
         'https://www.google.com/accounts/OAuthGetAccessToken'
-      @client.authorization.client_credential_key.should == 'anonymous'
-      @client.authorization.client_credential_secret.should == 'anonymous'
+      client.authorization.client_credential_key.should == 'anonymous'
+      client.authorization.client_credential_secret.should == 'anonymous'
     end
 
     it_should_behave_like 'configurable user agent'
@@ -102,7 +97,7 @@ describe Google::APIClient do
 
   describe 'configured for OAuth 2' do
     before do
-      @client.authorization = :oauth_2
+      client.authorization = :oauth_2
     end
 
     # TODO
@@ -111,7 +106,7 @@ describe Google::APIClient do
   
   describe 'when executing requests' do
     before do
-      @client.authorization = :oauth_2
+      client.authorization = :oauth_2
       @connection = Faraday.new(:url => 'https://www.googleapis.com') do |builder|
         stubs = Faraday::Adapter::Test::Stubs.new do |stub|
           stub.get('/test') do |env|
@@ -123,16 +118,16 @@ describe Google::APIClient do
     end
      
     it 'should use default authorization' do
-      @client.authorization.access_token = "12345"
-      @client.execute(:http_method => :get, 
+      client.authorization.access_token = "12345"
+      client.execute(:http_method => :get, 
                       :uri => 'https://www.googleapis.com/test',
                       :connection => @connection)
     end
 
     it 'should use request scoped authorization when provided' do
-      @client.authorization.access_token = "abcdef"
+      client.authorization.access_token = "abcdef"
       new_auth = Signet::OAuth2::Client.new(:access_token => '12345')
-      @client.execute(:http_method => :get, 
+      client.execute(:http_method => :get, 
                       :uri => 'https://www.googleapis.com/test',
                       :connection => @connection,
                       :authorization => new_auth)