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