Added spec to ensure next page tokens are escaped.
This commit is contained in:
parent
c651d69674
commit
5626cb4a6e
|
@ -0,0 +1,82 @@
|
|||
# Copyright 2012 Google Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
require 'google/api_client'
|
||||
require 'google/api_client/version'
|
||||
|
||||
describe Google::APIClient::Result do
|
||||
before do
|
||||
@client = Google::APIClient.new
|
||||
end
|
||||
|
||||
describe 'with the plus API' do
|
||||
before do
|
||||
@client.authorization = nil
|
||||
@plus = @client.discovered_api('plus', 'v1')
|
||||
@reference = Google::APIClient::Reference.new({
|
||||
:api_method => @plus.activities.list,
|
||||
:parameters => {
|
||||
'userId' => 'me',
|
||||
'collection' => 'public',
|
||||
'maxResults' => 20
|
||||
}
|
||||
})
|
||||
@request = @reference.to_request
|
||||
|
||||
# Response stub
|
||||
@response = stub("response")
|
||||
@response.stub(:status).and_return(200)
|
||||
@response.stub(:headers).and_return({
|
||||
'etag' => '12345',
|
||||
'x-google-apiary-auth-scopes' =>
|
||||
'https://www.googleapis.com/auth/plus.me',
|
||||
'content-type' => 'application/json; charset=UTF-8',
|
||||
'date' => 'Mon, 23 Apr 2012 00:00:00 GMT',
|
||||
'cache-control' => 'private, max-age=0, must-revalidate, no-transform',
|
||||
'server' => 'GSE',
|
||||
'connection' => 'close'
|
||||
})
|
||||
@response.stub(:body).and_return(
|
||||
<<-END_OF_STRING
|
||||
{
|
||||
"kind": "plus#activityFeed",
|
||||
"etag": "FOO",
|
||||
"nextPageToken": "NEXT+PAGE+TOKEN",
|
||||
"selfLink": "https://www.googleapis.com/plus/v1/people/foo/activities/public?",
|
||||
"nextLink": "https://www.googleapis.com/plus/v1/people/foo/activities/public?maxResults=20&pageToken=NEXT%2BPAGE%2BTOKEN",
|
||||
"title": "Plus Public Activity Feed for ",
|
||||
"updated": "2012-04-23T00:00:00.000Z",
|
||||
"id": "tag:google.com,2010:/plus/people/foo/activities/public",
|
||||
"items": []
|
||||
}
|
||||
END_OF_STRING
|
||||
)
|
||||
@result = Google::APIClient::Result.new(@reference, @request, @response)
|
||||
end
|
||||
|
||||
it 'should return the correct next page token' do
|
||||
@result.next_page_token.should == 'NEXT+PAGE+TOKEN'
|
||||
end
|
||||
|
||||
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'
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue