Switched to using RSpec's let method for memoization.
This commit is contained in:
parent
10856af027
commit
e5e0118b50
|
@ -18,22 +18,20 @@ require 'google/api_client'
|
|||
require 'google/api_client/version'
|
||||
|
||||
describe Google::APIClient::BatchRequest do
|
||||
before do
|
||||
@client = Google::APIClient.new
|
||||
end
|
||||
let(:client) { Google::APIClient.new }
|
||||
|
||||
it 'should raise an error if making an empty batch request' do
|
||||
batch = Google::APIClient::BatchRequest.new
|
||||
|
||||
(lambda do
|
||||
@client.execute(batch)
|
||||
client.execute(batch)
|
||||
end).should raise_error(Google::APIClient::BatchError)
|
||||
end
|
||||
|
||||
describe 'with the discovery API' do
|
||||
before do
|
||||
@client.authorization = nil
|
||||
@discovery = @client.discovered_api('discovery', 'v1')
|
||||
client.authorization = nil
|
||||
@discovery = client.discovered_api('discovery', 'v1')
|
||||
end
|
||||
|
||||
describe 'with two valid requests' do
|
||||
|
@ -69,7 +67,7 @@ describe Google::APIClient::BatchRequest do
|
|||
batch.add(@call1, ids[0])
|
||||
batch.add(@call2, ids[1])
|
||||
|
||||
@client.execute(batch)
|
||||
client.execute(batch)
|
||||
block_called.should == 2
|
||||
end
|
||||
|
||||
|
@ -86,7 +84,7 @@ describe Google::APIClient::BatchRequest do
|
|||
result.status.should == 200
|
||||
end
|
||||
|
||||
@client.execute(batch)
|
||||
client.execute(batch)
|
||||
call1_returned.should == true
|
||||
call2_returned.should == true
|
||||
end
|
||||
|
@ -139,7 +137,7 @@ describe Google::APIClient::BatchRequest do
|
|||
batch.add(@call1, ids[0])
|
||||
batch.add(@call2, ids[1])
|
||||
|
||||
@client.execute(batch)
|
||||
client.execute(batch)
|
||||
block_called.should == 2
|
||||
end
|
||||
|
||||
|
@ -157,7 +155,7 @@ describe Google::APIClient::BatchRequest do
|
|||
result.status.should < 500
|
||||
end
|
||||
|
||||
@client.execute(batch)
|
||||
client.execute(batch)
|
||||
call1_returned.should == true
|
||||
call2_returned.should == true
|
||||
end
|
||||
|
@ -166,8 +164,8 @@ describe Google::APIClient::BatchRequest do
|
|||
|
||||
describe 'with the calendar API' do
|
||||
before do
|
||||
@client.authorization = nil
|
||||
@calendar = @client.discovered_api('calendar', 'v3')
|
||||
client.authorization = nil
|
||||
@calendar = client.discovered_api('calendar', 'v3')
|
||||
end
|
||||
|
||||
describe 'with two valid requests' do
|
||||
|
|
|
@ -29,9 +29,7 @@ require 'google/api_client'
|
|||
require 'google/api_client/version'
|
||||
|
||||
describe Google::APIClient do
|
||||
before do
|
||||
@client = Google::APIClient.new
|
||||
end
|
||||
let(:client) { Google::APIClient.new }
|
||||
|
||||
it 'should raise a type error for bogus authorization' do
|
||||
(lambda do
|
||||
|
@ -41,53 +39,53 @@ describe Google::APIClient do
|
|||
|
||||
it 'should not be able to retrieve the discovery document for a bogus API' do
|
||||
(lambda do
|
||||
@client.discovery_document('bogus')
|
||||
client.discovery_document('bogus')
|
||||
end).should raise_error(Google::APIClient::TransmissionError)
|
||||
(lambda do
|
||||
@client.discovered_api('bogus')
|
||||
client.discovered_api('bogus')
|
||||
end).should raise_error(Google::APIClient::TransmissionError)
|
||||
end
|
||||
|
||||
it 'should raise an error for bogus services' do
|
||||
(lambda do
|
||||
@client.discovered_api(42)
|
||||
client.discovered_api(42)
|
||||
end).should raise_error(TypeError)
|
||||
end
|
||||
|
||||
it 'should raise an error for bogus services' do
|
||||
(lambda do
|
||||
@client.preferred_version(42)
|
||||
client.preferred_version(42)
|
||||
end).should raise_error(TypeError)
|
||||
end
|
||||
|
||||
it 'should raise an error for bogus methods' do
|
||||
(lambda do
|
||||
@client.generate_request(42)
|
||||
client.generate_request(42)
|
||||
end).should raise_error(TypeError)
|
||||
end
|
||||
|
||||
it 'should not return a preferred version for bogus service names' do
|
||||
@client.preferred_version('bogus').should == nil
|
||||
client.preferred_version('bogus').should == nil
|
||||
end
|
||||
|
||||
describe 'with the prediction API' do
|
||||
before do
|
||||
@client.authorization = nil
|
||||
client.authorization = nil
|
||||
# The prediction API no longer exposes a v1, so we have to be
|
||||
# careful about looking up the wrong API version.
|
||||
@prediction = @client.discovered_api('prediction', 'v1.2')
|
||||
@prediction = client.discovered_api('prediction', 'v1.2')
|
||||
end
|
||||
|
||||
it 'should correctly determine the discovery URI' do
|
||||
@client.discovery_uri('prediction').should ===
|
||||
client.discovery_uri('prediction').should ===
|
||||
'https://www.googleapis.com/discovery/v1/apis/prediction/v1/rest'
|
||||
end
|
||||
|
||||
it 'should correctly determine the discovery URI if :user_ip is set' do
|
||||
@client.user_ip = '127.0.0.1'
|
||||
request = @client.generate_request(
|
||||
client.user_ip = '127.0.0.1'
|
||||
request = client.generate_request(
|
||||
:http_method => 'GET',
|
||||
:uri => @client.discovery_uri('prediction', 'v1.2'),
|
||||
:uri => client.discovery_uri('prediction', 'v1.2'),
|
||||
:authenticated => false
|
||||
)
|
||||
request.to_env(Faraday.default_connection)[:url].to_s.should === (
|
||||
|
@ -97,10 +95,10 @@ describe Google::APIClient do
|
|||
end
|
||||
|
||||
it 'should correctly determine the discovery URI if :key is set' do
|
||||
@client.key = 'qwerty'
|
||||
request = @client.generate_request(
|
||||
client.key = 'qwerty'
|
||||
request = client.generate_request(
|
||||
:http_method => 'GET',
|
||||
:uri => @client.discovery_uri('prediction', 'v1.2'),
|
||||
:uri => client.discovery_uri('prediction', 'v1.2'),
|
||||
:authenticated => false
|
||||
)
|
||||
request.to_env(Faraday.default_connection)[:url].to_s.should === (
|
||||
|
@ -110,11 +108,11 @@ describe Google::APIClient do
|
|||
end
|
||||
|
||||
it 'should correctly determine the discovery URI if both are set' do
|
||||
@client.key = 'qwerty'
|
||||
@client.user_ip = '127.0.0.1'
|
||||
request = @client.generate_request(
|
||||
client.key = 'qwerty'
|
||||
client.user_ip = '127.0.0.1'
|
||||
request = client.generate_request(
|
||||
:http_method => 'GET',
|
||||
:uri => @client.discovery_uri('prediction', 'v1.2'),
|
||||
:uri => client.discovery_uri('prediction', 'v1.2'),
|
||||
:authenticated => false
|
||||
)
|
||||
Addressable::URI.parse(
|
||||
|
@ -126,59 +124,59 @@ describe Google::APIClient do
|
|||
end
|
||||
|
||||
it 'should correctly generate API objects' do
|
||||
@client.discovered_api('prediction', 'v1.2').name.should == 'prediction'
|
||||
@client.discovered_api('prediction', 'v1.2').version.should == 'v1.2'
|
||||
@client.discovered_api(:prediction, 'v1.2').name.should == 'prediction'
|
||||
@client.discovered_api(:prediction, 'v1.2').version.should == 'v1.2'
|
||||
client.discovered_api('prediction', 'v1.2').name.should == 'prediction'
|
||||
client.discovered_api('prediction', 'v1.2').version.should == 'v1.2'
|
||||
client.discovered_api(:prediction, 'v1.2').name.should == 'prediction'
|
||||
client.discovered_api(:prediction, 'v1.2').version.should == 'v1.2'
|
||||
end
|
||||
|
||||
it 'should discover methods' do
|
||||
@client.discovered_method(
|
||||
client.discovered_method(
|
||||
'prediction.training.insert', 'prediction', 'v1.2'
|
||||
).name.should == 'insert'
|
||||
@client.discovered_method(
|
||||
client.discovered_method(
|
||||
:'prediction.training.insert', :prediction, 'v1.2'
|
||||
).name.should == 'insert'
|
||||
@client.discovered_method(
|
||||
client.discovered_method(
|
||||
'prediction.training.delete', 'prediction', 'v1.2'
|
||||
).name.should == 'delete'
|
||||
end
|
||||
|
||||
it 'should define the origin API in discovered methods' do
|
||||
@client.discovered_method(
|
||||
client.discovered_method(
|
||||
'prediction.training.insert', 'prediction', 'v1.2'
|
||||
).api.name.should == 'prediction'
|
||||
end
|
||||
|
||||
it 'should not find methods that are not in the discovery document' do
|
||||
@client.discovered_method(
|
||||
client.discovered_method(
|
||||
'prediction.bogus', 'prediction', 'v1.2'
|
||||
).should == nil
|
||||
end
|
||||
|
||||
it 'should raise an error for bogus methods' do
|
||||
(lambda do
|
||||
@client.discovered_method(42, 'prediction', 'v1.2')
|
||||
client.discovered_method(42, 'prediction', 'v1.2')
|
||||
end).should raise_error(TypeError)
|
||||
end
|
||||
|
||||
it 'should raise an error for bogus methods' do
|
||||
(lambda do
|
||||
@client.generate_request(@client.discovered_api('prediction', 'v1.2'))
|
||||
client.generate_request(client.discovered_api('prediction', 'v1.2'))
|
||||
end).should raise_error(TypeError)
|
||||
end
|
||||
|
||||
it 'should correctly determine the preferred version' do
|
||||
@client.preferred_version('prediction').version.should_not == 'v1'
|
||||
@client.preferred_version(:prediction).version.should_not == 'v1'
|
||||
client.preferred_version('prediction').version.should_not == 'v1'
|
||||
client.preferred_version(:prediction).version.should_not == 'v1'
|
||||
end
|
||||
|
||||
it 'should return a batch path' do
|
||||
@client.discovered_api('prediction', 'v1.2').batch_path.should_not be_nil
|
||||
client.discovered_api('prediction', 'v1.2').batch_path.should_not be_nil
|
||||
end
|
||||
|
||||
it 'should generate valid requests' do
|
||||
request = @client.generate_request(
|
||||
request = client.generate_request(
|
||||
:api_method => @prediction.training.insert,
|
||||
:parameters => {'data' => '12345'}
|
||||
)
|
||||
|
@ -190,7 +188,7 @@ describe Google::APIClient do
|
|||
end
|
||||
|
||||
it 'should generate valid requests when repeated parameters are passed' do
|
||||
request = @client.generate_request(
|
||||
request = client.generate_request(
|
||||
:api_method => @prediction.training.insert,
|
||||
:parameters => [['data', '1'], ['data','2']]
|
||||
)
|
||||
|
@ -200,7 +198,7 @@ describe Google::APIClient do
|
|||
end
|
||||
|
||||
it 'should generate requests against the correct URIs' do
|
||||
request = @client.generate_request(
|
||||
request = client.generate_request(
|
||||
:api_method => @prediction.training.insert,
|
||||
:parameters => {'data' => '12345'}
|
||||
)
|
||||
|
@ -209,7 +207,7 @@ describe Google::APIClient do
|
|||
end
|
||||
|
||||
it 'should generate requests against the correct URIs' do
|
||||
request = @client.generate_request(
|
||||
request = client.generate_request(
|
||||
:api_method => @prediction.training.insert,
|
||||
:parameters => {'data' => '12345'}
|
||||
)
|
||||
|
@ -218,10 +216,10 @@ describe Google::APIClient do
|
|||
end
|
||||
|
||||
it 'should allow modification to the base URIs for testing purposes' do
|
||||
prediction = @client.discovered_api('prediction', 'v1.2')
|
||||
prediction = client.discovered_api('prediction', 'v1.2')
|
||||
prediction.method_base =
|
||||
'https://testing-domain.googleapis.com/prediction/v1.2/'
|
||||
request = @client.generate_request(
|
||||
request = client.generate_request(
|
||||
:api_method => prediction.training.insert,
|
||||
:parameters => {'data' => '123'}
|
||||
)
|
||||
|
@ -232,10 +230,10 @@ describe Google::APIClient do
|
|||
end
|
||||
|
||||
it 'should generate OAuth 1 requests' do
|
||||
@client.authorization = :oauth_1
|
||||
@client.authorization.token_credential_key = '12345'
|
||||
@client.authorization.token_credential_secret = '12345'
|
||||
request = @client.generate_request(
|
||||
client.authorization = :oauth_1
|
||||
client.authorization.token_credential_key = '12345'
|
||||
client.authorization.token_credential_secret = '12345'
|
||||
request = client.generate_request(
|
||||
:api_method => @prediction.training.insert,
|
||||
:parameters => {'data' => '12345'}
|
||||
)
|
||||
|
@ -244,9 +242,9 @@ describe Google::APIClient do
|
|||
end
|
||||
|
||||
it 'should generate OAuth 2 requests' do
|
||||
@client.authorization = :oauth_2
|
||||
@client.authorization.access_token = '12345'
|
||||
request = @client.generate_request(
|
||||
client.authorization = :oauth_2
|
||||
client.authorization.access_token = '12345'
|
||||
request = client.generate_request(
|
||||
:api_method => @prediction.training.insert,
|
||||
:parameters => {'data' => '12345'}
|
||||
)
|
||||
|
@ -255,10 +253,10 @@ describe Google::APIClient do
|
|||
end
|
||||
|
||||
it 'should not be able to execute improperly authorized requests' do
|
||||
@client.authorization = :oauth_1
|
||||
@client.authorization.token_credential_key = '12345'
|
||||
@client.authorization.token_credential_secret = '12345'
|
||||
result = @client.execute(
|
||||
client.authorization = :oauth_1
|
||||
client.authorization.token_credential_key = '12345'
|
||||
client.authorization.token_credential_secret = '12345'
|
||||
result = client.execute(
|
||||
@prediction.training.insert,
|
||||
{'data' => '12345'}
|
||||
)
|
||||
|
@ -266,9 +264,9 @@ describe Google::APIClient do
|
|||
end
|
||||
|
||||
it 'should not be able to execute improperly authorized requests' do
|
||||
@client.authorization = :oauth_2
|
||||
@client.authorization.access_token = '12345'
|
||||
result = @client.execute(
|
||||
client.authorization = :oauth_2
|
||||
client.authorization.access_token = '12345'
|
||||
result = client.execute(
|
||||
@prediction.training.insert,
|
||||
{'data' => '12345'}
|
||||
)
|
||||
|
@ -277,10 +275,10 @@ describe Google::APIClient do
|
|||
|
||||
it 'should not be able to execute improperly authorized requests' do
|
||||
(lambda do
|
||||
@client.authorization = :oauth_1
|
||||
@client.authorization.token_credential_key = '12345'
|
||||
@client.authorization.token_credential_secret = '12345'
|
||||
result = @client.execute!(
|
||||
client.authorization = :oauth_1
|
||||
client.authorization.token_credential_key = '12345'
|
||||
client.authorization.token_credential_secret = '12345'
|
||||
result = client.execute!(
|
||||
@prediction.training.insert,
|
||||
{'data' => '12345'}
|
||||
)
|
||||
|
@ -289,9 +287,9 @@ describe Google::APIClient do
|
|||
|
||||
it 'should not be able to execute improperly authorized requests' do
|
||||
(lambda do
|
||||
@client.authorization = :oauth_2
|
||||
@client.authorization.access_token = '12345'
|
||||
result = @client.execute!(
|
||||
client.authorization = :oauth_2
|
||||
client.authorization.access_token = '12345'
|
||||
result = client.execute!(
|
||||
@prediction.training.insert,
|
||||
{'data' => '12345'}
|
||||
)
|
||||
|
@ -299,9 +297,9 @@ describe Google::APIClient do
|
|||
end
|
||||
|
||||
it 'should correctly handle unnamed parameters' do
|
||||
@client.authorization = :oauth_2
|
||||
@client.authorization.access_token = '12345'
|
||||
result = @client.execute(
|
||||
client.authorization = :oauth_2
|
||||
client.authorization.access_token = '12345'
|
||||
result = client.execute(
|
||||
@prediction.training.insert,
|
||||
{},
|
||||
MultiJson.dump({"id" => "bucket/object"}),
|
||||
|
@ -313,41 +311,41 @@ describe Google::APIClient do
|
|||
|
||||
describe 'with the plus API' do
|
||||
before do
|
||||
@client.authorization = nil
|
||||
@plus = @client.discovered_api('plus')
|
||||
client.authorization = nil
|
||||
@plus = client.discovered_api('plus')
|
||||
end
|
||||
|
||||
it 'should correctly determine the discovery URI' do
|
||||
@client.discovery_uri('plus').should ===
|
||||
client.discovery_uri('plus').should ===
|
||||
'https://www.googleapis.com/discovery/v1/apis/plus/v1/rest'
|
||||
end
|
||||
|
||||
it 'should find APIs that are in the discovery document' do
|
||||
@client.discovered_api('plus').name.should == 'plus'
|
||||
@client.discovered_api('plus').version.should == 'v1'
|
||||
@client.discovered_api(:plus).name.should == 'plus'
|
||||
@client.discovered_api(:plus).version.should == 'v1'
|
||||
client.discovered_api('plus').name.should == 'plus'
|
||||
client.discovered_api('plus').version.should == 'v1'
|
||||
client.discovered_api(:plus).name.should == 'plus'
|
||||
client.discovered_api(:plus).version.should == 'v1'
|
||||
end
|
||||
|
||||
it 'should find methods that are in the discovery document' do
|
||||
# TODO(bobaman) Fix this when the RPC names are correct
|
||||
@client.discovered_method(
|
||||
client.discovered_method(
|
||||
'plus.activities.list', 'plus'
|
||||
).name.should == 'list'
|
||||
end
|
||||
|
||||
it 'should define the origin API in discovered methods' do
|
||||
@client.discovered_method(
|
||||
client.discovered_method(
|
||||
'plus.activities.list', 'plus'
|
||||
).api.name.should == 'plus'
|
||||
end
|
||||
|
||||
it 'should not find methods that are not in the discovery document' do
|
||||
@client.discovered_method('plus.bogus', 'plus').should == nil
|
||||
client.discovered_method('plus.bogus', 'plus').should == nil
|
||||
end
|
||||
|
||||
it 'should generate requests against the correct URIs' do
|
||||
request = @client.generate_request(
|
||||
request = client.generate_request(
|
||||
:api_method => @plus.activities.list,
|
||||
:parameters => {
|
||||
'userId' => '107807692475771887386', 'collection' => 'public'
|
||||
|
@ -362,7 +360,7 @@ describe Google::APIClient do
|
|||
|
||||
it 'should correctly validate parameters' do
|
||||
(lambda do
|
||||
@client.generate_request(
|
||||
client.generate_request(
|
||||
:api_method => @plus.activities.list,
|
||||
:parameters => {'alt' => 'json'},
|
||||
:authenticated => false
|
||||
|
@ -372,7 +370,7 @@ describe Google::APIClient do
|
|||
|
||||
it 'should correctly validate parameters' do
|
||||
(lambda do
|
||||
@client.generate_request(
|
||||
client.generate_request(
|
||||
:api_method => @plus.activities.list,
|
||||
:parameters => {
|
||||
'userId' => '107807692475771887386', 'collection' => 'bogus'
|
||||
|
@ -385,42 +383,42 @@ describe Google::APIClient do
|
|||
|
||||
describe 'with the latitude API' do
|
||||
before do
|
||||
@client.authorization = nil
|
||||
@latitude = @client.discovered_api('latitude')
|
||||
client.authorization = nil
|
||||
@latitude = client.discovered_api('latitude')
|
||||
end
|
||||
|
||||
it 'should correctly determine the discovery URI' do
|
||||
@client.discovery_uri('latitude').should ===
|
||||
client.discovery_uri('latitude').should ===
|
||||
'https://www.googleapis.com/discovery/v1/apis/latitude/v1/rest'
|
||||
end
|
||||
|
||||
it 'should find APIs that are in the discovery document' do
|
||||
@client.discovered_api('latitude').name.should == 'latitude'
|
||||
@client.discovered_api('latitude').version.should == 'v1'
|
||||
client.discovered_api('latitude').name.should == 'latitude'
|
||||
client.discovered_api('latitude').version.should == 'v1'
|
||||
end
|
||||
|
||||
it 'should return a batch path' do
|
||||
@client.discovered_api('latitude').batch_path.should_not be_nil
|
||||
client.discovered_api('latitude').batch_path.should_not be_nil
|
||||
end
|
||||
|
||||
it 'should find methods that are in the discovery document' do
|
||||
@client.discovered_method(
|
||||
client.discovered_method(
|
||||
'latitude.currentLocation.get', 'latitude'
|
||||
).name.should == 'get'
|
||||
end
|
||||
|
||||
it 'should define the origin API in discovered methods' do
|
||||
@client.discovered_method(
|
||||
client.discovered_method(
|
||||
'latitude.currentLocation.get', 'latitude'
|
||||
).api.name.should == 'latitude'
|
||||
end
|
||||
|
||||
it 'should not find methods that are not in the discovery document' do
|
||||
@client.discovered_method('latitude.bogus', 'latitude').should == nil
|
||||
client.discovered_method('latitude.bogus', 'latitude').should == nil
|
||||
end
|
||||
|
||||
it 'should generate requests against the correct URIs' do
|
||||
request = @client.generate_request(
|
||||
request = client.generate_request(
|
||||
:api_method => 'latitude.currentLocation.get',
|
||||
:authenticated => false
|
||||
)
|
||||
|
@ -429,7 +427,7 @@ describe Google::APIClient do
|
|||
end
|
||||
|
||||
it 'should generate requests against the correct URIs' do
|
||||
request = @client.generate_request(
|
||||
request = client.generate_request(
|
||||
:api_method => @latitude.current_location.get,
|
||||
:authenticated => false
|
||||
)
|
||||
|
@ -438,7 +436,7 @@ describe Google::APIClient do
|
|||
end
|
||||
|
||||
it 'should not be able to execute requests without authorization' do
|
||||
result = @client.execute(
|
||||
result = client.execute(
|
||||
:api_method => 'latitude.currentLocation.get',
|
||||
:authenticated => false
|
||||
)
|
||||
|
@ -448,42 +446,42 @@ describe Google::APIClient do
|
|||
|
||||
describe 'with the moderator API' do
|
||||
before do
|
||||
@client.authorization = nil
|
||||
@moderator = @client.discovered_api('moderator')
|
||||
client.authorization = nil
|
||||
@moderator = client.discovered_api('moderator')
|
||||
end
|
||||
|
||||
it 'should correctly determine the discovery URI' do
|
||||
@client.discovery_uri('moderator').should ===
|
||||
client.discovery_uri('moderator').should ===
|
||||
'https://www.googleapis.com/discovery/v1/apis/moderator/v1/rest'
|
||||
end
|
||||
|
||||
it 'should find APIs that are in the discovery document' do
|
||||
@client.discovered_api('moderator').name.should == 'moderator'
|
||||
@client.discovered_api('moderator').version.should == 'v1'
|
||||
client.discovered_api('moderator').name.should == 'moderator'
|
||||
client.discovered_api('moderator').version.should == 'v1'
|
||||
end
|
||||
|
||||
it 'should find methods that are in the discovery document' do
|
||||
@client.discovered_method(
|
||||
client.discovered_method(
|
||||
'moderator.profiles.get', 'moderator'
|
||||
).name.should == 'get'
|
||||
end
|
||||
|
||||
it 'should define the origin API in discovered methods' do
|
||||
@client.discovered_method(
|
||||
client.discovered_method(
|
||||
'moderator.profiles.get', 'moderator'
|
||||
).api.name.should == 'moderator'
|
||||
end
|
||||
|
||||
it 'should not find methods that are not in the discovery document' do
|
||||
@client.discovered_method('moderator.bogus', 'moderator').should == nil
|
||||
client.discovered_method('moderator.bogus', 'moderator').should == nil
|
||||
end
|
||||
|
||||
it 'should return a batch path' do
|
||||
@client.discovered_api('moderator').batch_path.should_not be_nil
|
||||
client.discovered_api('moderator').batch_path.should_not be_nil
|
||||
end
|
||||
|
||||
it 'should generate requests against the correct URIs' do
|
||||
request = @client.generate_request(
|
||||
request = client.generate_request(
|
||||
:api_method => 'moderator.profiles.get',
|
||||
:authenticated => false
|
||||
)
|
||||
|
@ -492,7 +490,7 @@ describe Google::APIClient do
|
|||
end
|
||||
|
||||
it 'should generate requests against the correct URIs' do
|
||||
request = @client.generate_request(
|
||||
request = client.generate_request(
|
||||
:api_method => @moderator.profiles.get,
|
||||
:authenticated => false
|
||||
)
|
||||
|
@ -501,7 +499,7 @@ describe Google::APIClient do
|
|||
end
|
||||
|
||||
it 'should not be able to execute requests without authorization' do
|
||||
result = @client.execute(
|
||||
result = client.execute(
|
||||
'moderator.profiles.get',
|
||||
{},
|
||||
'',
|
||||
|
@ -514,36 +512,36 @@ describe Google::APIClient do
|
|||
|
||||
describe 'with the adsense API' do
|
||||
before do
|
||||
@client.authorization = nil
|
||||
@adsense = @client.discovered_api('adsense', 'v1')
|
||||
client.authorization = nil
|
||||
@adsense = client.discovered_api('adsense', 'v1')
|
||||
end
|
||||
|
||||
it 'should correctly determine the discovery URI' do
|
||||
@client.discovery_uri('adsense').should ===
|
||||
client.discovery_uri('adsense').should ===
|
||||
'https://www.googleapis.com/discovery/v1/apis/adsense/v1/rest'
|
||||
end
|
||||
|
||||
it 'should find APIs that are in the discovery document' do
|
||||
@client.discovered_api('adsense').name.should == 'adsense'
|
||||
@client.discovered_api('adsense').version.should == 'v1'
|
||||
client.discovered_api('adsense').name.should == 'adsense'
|
||||
client.discovered_api('adsense').version.should == 'v1'
|
||||
end
|
||||
|
||||
it 'should return a batch path' do
|
||||
@client.discovered_api('adsense').batch_path.should_not be_nil
|
||||
client.discovered_api('adsense').batch_path.should_not be_nil
|
||||
end
|
||||
|
||||
it 'should find methods that are in the discovery document' do
|
||||
@client.discovered_method(
|
||||
client.discovered_method(
|
||||
'adsense.reports.generate', 'adsense'
|
||||
).name.should == 'generate'
|
||||
end
|
||||
|
||||
it 'should not find methods that are not in the discovery document' do
|
||||
@client.discovered_method('adsense.bogus', 'adsense').should == nil
|
||||
client.discovered_method('adsense.bogus', 'adsense').should == nil
|
||||
end
|
||||
|
||||
it 'should generate requests against the correct URIs' do
|
||||
request = @client.generate_request(
|
||||
request = client.generate_request(
|
||||
:api_method => 'adsense.adclients.list',
|
||||
:authenticated => false
|
||||
)
|
||||
|
@ -552,7 +550,7 @@ describe Google::APIClient do
|
|||
end
|
||||
|
||||
it 'should generate requests against the correct URIs' do
|
||||
request = @client.generate_request(
|
||||
request = client.generate_request(
|
||||
:api_method => @adsense.adclients.list,
|
||||
:authenticated => false
|
||||
)
|
||||
|
@ -561,7 +559,7 @@ describe Google::APIClient do
|
|||
end
|
||||
|
||||
it 'should not be able to execute requests without authorization' do
|
||||
result = @client.execute(
|
||||
result = client.execute(
|
||||
:api_method => 'adsense.adclients.list',
|
||||
:authenticated => false
|
||||
)
|
||||
|
@ -570,7 +568,7 @@ describe Google::APIClient do
|
|||
|
||||
it 'should fail when validating missing required parameters' do
|
||||
(lambda do
|
||||
@client.generate_request(
|
||||
client.generate_request(
|
||||
:api_method => @adsense.reports.generate,
|
||||
:authenticated => false
|
||||
)
|
||||
|
@ -579,7 +577,7 @@ describe Google::APIClient do
|
|||
|
||||
it 'should succeed when validating parameters in a correct call' do
|
||||
(lambda do
|
||||
@client.generate_request(
|
||||
client.generate_request(
|
||||
:api_method => @adsense.reports.generate,
|
||||
:parameters => {
|
||||
'startDate' => '2000-01-01',
|
||||
|
@ -594,7 +592,7 @@ describe Google::APIClient do
|
|||
|
||||
it 'should fail when validating parameters with invalid values' do
|
||||
(lambda do
|
||||
@client.generate_request(
|
||||
client.generate_request(
|
||||
:api_method => @adsense.reports.generate,
|
||||
:parameters => {
|
||||
'startDate' => '2000-01-01',
|
||||
|
@ -609,7 +607,7 @@ describe Google::APIClient do
|
|||
|
||||
it 'should succeed when validating repeated parameters in a correct call' do
|
||||
(lambda do
|
||||
@client.generate_request(
|
||||
client.generate_request(
|
||||
:api_method => @adsense.reports.generate,
|
||||
:parameters => {
|
||||
'startDate' => '2000-01-01',
|
||||
|
@ -624,7 +622,7 @@ describe Google::APIClient do
|
|||
|
||||
it 'should fail when validating incorrect repeated parameters' do
|
||||
(lambda do
|
||||
@client.generate_request(
|
||||
client.generate_request(
|
||||
:api_method => @adsense.reports.generate,
|
||||
:parameters => {
|
||||
'startDate' => '2000-01-01',
|
||||
|
@ -637,25 +635,25 @@ describe Google::APIClient do
|
|||
end).should raise_error(ArgumentError)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
describe 'with the Drive API' do
|
||||
before do
|
||||
@client.authorization = nil
|
||||
@drive = @client.discovered_api('drive', 'v1')
|
||||
client.authorization = nil
|
||||
@drive = client.discovered_api('drive', 'v1')
|
||||
end
|
||||
|
||||
|
||||
it 'should include media upload info methods' do
|
||||
@drive.files.insert.media_upload.should_not == nil
|
||||
end
|
||||
|
||||
|
||||
it 'should include accepted media types' do
|
||||
@drive.files.insert.media_upload.accepted_types.should_not be_empty
|
||||
end
|
||||
|
||||
|
||||
it 'should have an upload path' do
|
||||
@drive.files.insert.media_upload.uri_template.should_not == nil
|
||||
end
|
||||
|
||||
|
||||
it 'should have a max file size' do
|
||||
@drive.files.insert.media_upload.max_size.should_not == nil
|
||||
end
|
||||
|
|
|
@ -25,22 +25,22 @@ describe Google::APIClient::UploadIO do
|
|||
media = Google::APIClient::UploadIO.new('doesnotexist', 'text/plain')
|
||||
end).should raise_error
|
||||
end
|
||||
|
||||
|
||||
describe 'with a file' do
|
||||
before do
|
||||
@file = File.expand_path('files/sample.txt', fixtures_path)
|
||||
@media = Google::APIClient::UploadIO.new(@file, 'text/plain')
|
||||
end
|
||||
|
||||
|
||||
it 'should report the correct file length' do
|
||||
@media.length.should == File.size(@file)
|
||||
end
|
||||
|
||||
|
||||
it 'should have a mime type' do
|
||||
@media.content_type.should == 'text/plain'
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
describe 'with StringIO' do
|
||||
before do
|
||||
@content = "hello world"
|
||||
|
@ -50,7 +50,7 @@ describe Google::APIClient::UploadIO do
|
|||
it 'should report the correct file length' do
|
||||
@media.length.should == @content.length
|
||||
end
|
||||
|
||||
|
||||
it 'should have a mime type' do
|
||||
@media.content_type.should == 'text/plain'
|
||||
end
|
||||
|
@ -58,9 +58,10 @@ describe Google::APIClient::UploadIO do
|
|||
end
|
||||
|
||||
describe Google::APIClient::ResumableUpload do
|
||||
let(:client) { Google::APIClient.new }
|
||||
|
||||
before do
|
||||
@client = Google::APIClient.new
|
||||
@drive = @client.discovered_api('drive', 'v1')
|
||||
@drive = client.discovered_api('drive', 'v1')
|
||||
@file = File.expand_path('files/sample.txt', fixtures_path)
|
||||
@media = Google::APIClient::UploadIO.new(@file, 'text/plain')
|
||||
@uploader = Google::APIClient::ResumableUpload.new(
|
||||
|
@ -68,7 +69,7 @@ describe Google::APIClient::ResumableUpload do
|
|||
@media,
|
||||
'https://www.googleapis.com/upload/drive/v1/files/12345')
|
||||
end
|
||||
|
||||
|
||||
it 'should consider 20x status as complete' do
|
||||
api_client = stub('api', :execute => mock_result(200))
|
||||
@uploader.send_chunk(api_client)
|
||||
|
@ -93,8 +94,8 @@ describe Google::APIClient::ResumableUpload do
|
|||
@uploader.send_chunk(api_client)
|
||||
@uploader.location.should == 'https://www.googleapis.com/upload/drive/v1/files/abcdef'
|
||||
end
|
||||
|
||||
it 'should resume from the saved range reported by the server' do
|
||||
|
||||
it 'should resume from the saved range reported by the server' do
|
||||
api_client = mock('api')
|
||||
api_client.should_receive(:execute).and_return(mock_result(308, 'range' => '0-99'))
|
||||
api_client.should_receive(:execute).with(
|
||||
|
@ -107,7 +108,7 @@ describe Google::APIClient::ResumableUpload do
|
|||
@uploader.send_chunk(api_client) # Send bytes 0-199, only 0-99 saved
|
||||
@uploader.send_chunk(api_client) # Send bytes 100-299
|
||||
end
|
||||
|
||||
|
||||
it 'should resync the offset after 5xx errors' do
|
||||
api_client = mock('api')
|
||||
api_client.should_receive(:execute).and_return(mock_result(500))
|
||||
|
@ -132,5 +133,5 @@ describe Google::APIClient::ResumableUpload do
|
|||
reference = Google::APIClient::Reference.new(:api_method => @drive.files.insert)
|
||||
stub('result', :status => status, :headers => headers, :reference => reference)
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
|
|
@ -18,14 +18,12 @@ require 'google/api_client'
|
|||
require 'google/api_client/version'
|
||||
|
||||
describe Google::APIClient::Result do
|
||||
before do
|
||||
@client = Google::APIClient.new
|
||||
end
|
||||
let(:client) { Google::APIClient.new }
|
||||
|
||||
describe 'with the plus API' do
|
||||
before do
|
||||
@client.authorization = nil
|
||||
@plus = @client.discovered_api('plus', 'v1')
|
||||
client.authorization = nil
|
||||
@plus = client.discovered_api('plus', 'v1')
|
||||
@reference = Google::APIClient::Reference.new({
|
||||
:api_method => @plus.activities.list,
|
||||
:parameters => {
|
||||
|
@ -77,10 +75,10 @@ describe Google::APIClient::Result do
|
|||
|
||||
it 'should escape the next page token when calling next_page' do
|
||||
reference = @result.next_page
|
||||
reference.parameters.should include('pageToken')
|
||||
reference.parameters['pageToken'].should == 'NEXT+PAGE+TOKEN'
|
||||
path = reference.to_request.path.to_s
|
||||
path.should include 'pageToken=NEXT%2BPAGE%2BTOKEN'
|
||||
Hash[reference.parameters].should include('pageToken')
|
||||
Hash[reference.parameters]['pageToken'].should == 'NEXT+PAGE+TOKEN'
|
||||
url = reference.to_request.to_env(Faraday.default_connection)[:url]
|
||||
url.to_s.should include('pageToken=NEXT%2BPAGE%2BTOKEN')
|
||||
end
|
||||
|
||||
it 'should return content type correctly' do
|
||||
|
|
|
@ -17,21 +17,21 @@ require 'spec_helper'
|
|||
require 'google/api_client'
|
||||
|
||||
describe Google::APIClient::JWTAsserter do
|
||||
|
||||
|
||||
before do
|
||||
@key = OpenSSL::PKey::RSA.new 2048
|
||||
end
|
||||
|
||||
|
||||
it 'should generate valid JWTs' do
|
||||
asserter = Google::APIClient::JWTAsserter.new('client1', 'scope1 scope2', @key)
|
||||
jwt = asserter.to_jwt
|
||||
jwt.should_not == nil
|
||||
|
||||
jwt.should_not == nil
|
||||
|
||||
claim = JWT.decode(jwt, @key.public_key, true)
|
||||
claim["iss"].should == 'client1'
|
||||
claim["scope"].should == 'scope1 scope2'
|
||||
end
|
||||
|
||||
|
||||
it 'should send valid access token request' do
|
||||
stubs = Faraday::Adapter::Test::Stubs.new do |stub|
|
||||
stub.post('/o/oauth2/token') do |env|
|
||||
|
@ -48,7 +48,7 @@ describe Google::APIClient::JWTAsserter do
|
|||
connection = Faraday.new(:url => 'https://accounts.google.com') do |builder|
|
||||
builder.adapter(:test, stubs)
|
||||
end
|
||||
|
||||
|
||||
asserter = Google::APIClient::JWTAsserter.new('client1', 'scope1 scope2', @key)
|
||||
auth = asserter.authorize(nil, { :connection => connection})
|
||||
auth.should_not == nil?
|
||||
|
|
|
@ -26,26 +26,26 @@ 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'
|
||||
client.user_agent = 'Custom User Agent/1.2.3'
|
||||
request = Faraday::Request.new(:get) do |req|
|
||||
req.url('http://www.google.com/')
|
||||
end
|
||||
|
@ -53,48 +53,46 @@ shared_examples_for 'configurable user agent' do
|
|||
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)
|
||||
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 +100,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 +109,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 +121,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)
|
||||
|
|
Loading…
Reference in New Issue