Merge pull request #213 from remi/respect-discovered-rootUrl
Use discovered 'rootUrl' as base URI for services
This commit is contained in:
		
						commit
						0003e564b1
					
				|  | @ -30,7 +30,7 @@ module Google | ||||||
|       # Creates a description of a particular version of a service. |       # Creates a description of a particular version of a service. | ||||||
|       # |       # | ||||||
|       # @param [String] document_base |       # @param [String] document_base | ||||||
|       #   Base URI for the service |       #   Base URI for the discovery document. | ||||||
|       # @param [Hash] discovery_document |       # @param [Hash] discovery_document | ||||||
|       #   The section of the discovery document that applies to this service |       #   The section of the discovery document that applies to this service | ||||||
|       #   version. |       #   version. | ||||||
|  | @ -126,6 +126,16 @@ module Google | ||||||
|         return @discovery_document['features'] || [] |         return @discovery_document['features'] || [] | ||||||
|       end |       end | ||||||
| 
 | 
 | ||||||
|  |       ## | ||||||
|  |       # Returns the root URI for this service. | ||||||
|  |       # | ||||||
|  |       # @return [Addressable::URI] The root URI. | ||||||
|  |       def root_uri | ||||||
|  |         return @root_uri ||= ( | ||||||
|  |           Addressable::URI.parse(self.discovery_document['rootUrl']) | ||||||
|  |         ) | ||||||
|  |       end | ||||||
|  | 
 | ||||||
|       ## |       ## | ||||||
|       # Returns true if this API uses a data wrapper. |       # Returns true if this API uses a data wrapper. | ||||||
|       # |       # | ||||||
|  | @ -148,7 +158,7 @@ module Google | ||||||
|       def method_base |       def method_base | ||||||
|         if @discovery_document['basePath'] |         if @discovery_document['basePath'] | ||||||
|           return @method_base ||= ( |           return @method_base ||= ( | ||||||
|             self.document_base.join(Addressable::URI.parse(@discovery_document['basePath'])) |             self.root_uri.join(Addressable::URI.parse(@discovery_document['basePath'])) | ||||||
|           ).normalize |           ).normalize | ||||||
|         else |         else | ||||||
|           return nil |           return nil | ||||||
|  |  | ||||||
|  | @ -473,6 +473,10 @@ RSpec.describe Google::APIClient do | ||||||
|         ).to_env(CLIENT.connection) |         ).to_env(CLIENT.connection) | ||||||
|       end).to raise_error(ArgumentError) |       end).to raise_error(ArgumentError) | ||||||
|     end |     end | ||||||
|  | 
 | ||||||
|  |     it 'should correctly determine the service root_uri' do | ||||||
|  |       expect(@plus.root_uri.to_s).to eq('https://www.googleapis.com/') | ||||||
|  |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   describe 'with the adsense API' do |   describe 'with the adsense API' do | ||||||
|  | @ -659,4 +663,30 @@ RSpec.describe Google::APIClient do | ||||||
|       expect(@drive.files.insert.media_upload.max_size).not_to eq(nil) |       expect(@drive.files.insert.media_upload.max_size).not_to eq(nil) | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
|  | 
 | ||||||
|  |   describe 'with the Pub/Sub API' do | ||||||
|  |     before do | ||||||
|  |       CLIENT.authorization = nil | ||||||
|  |       @pubsub = CLIENT.discovered_api('pubsub', 'v1beta2') | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     it 'should generate requests against the correct URIs' do | ||||||
|  |       conn = stub_connection do |stub| | ||||||
|  |         stub.get('/v1beta2/projects/12345/topics') do |env| | ||||||
|  |           expect(env[:url].host).to eq('pubsub.googleapis.com') | ||||||
|  |           [200, {}, '{}'] | ||||||
|  |         end | ||||||
|  |       end | ||||||
|  |       request = CLIENT.execute( | ||||||
|  |         :api_method => @pubsub.projects.topics.list, | ||||||
|  |         :parameters => {'project' => 'projects/12345'}, | ||||||
|  |         :connection => conn | ||||||
|  |       ) | ||||||
|  |       conn.verify | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     it 'should correctly determine the service root_uri' do | ||||||
|  |       expect(@pubsub.root_uri.to_s).to eq('https://pubsub.googleapis.com/') | ||||||
|  |     end | ||||||
|  |   end | ||||||
| end | end | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue