| // |
| // GTMURLBuilderTest.m |
| // |
| // 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. |
| // |
| |
| #import "GTMURLBuilder.h" |
| |
| #import "GTMSenTestCase.h" |
| |
| @interface GTMURLBuilderTest : GTMTestCase |
| @end |
| |
| @implementation GTMURLBuilderTest |
| |
| - (void)testParseURL { |
| GTMURLBuilder *URLBuilder = [[[GTMURLBuilder alloc] |
| initWithString:@"http://google.com:8080/pathA/pathB?param=val"] |
| autorelease]; |
| XCTAssertEqualStrings(@"http://google.com:8080/pathA/pathB?param=val", |
| [URLBuilder URLString]); |
| XCTAssertEqualStrings(@"val", [URLBuilder valueForParameter:@"param"]); |
| URLBuilder = [GTMURLBuilder builderWithString: |
| @"http://google.com:8080/pathA/pathB?param=val"]; |
| XCTAssertEqualStrings(@"http://google.com:8080/pathA/pathB?param=val", |
| [URLBuilder URLString]); |
| XCTAssertEqualStrings(@"val", [URLBuilder valueForParameter:@"param"]); |
| |
| URLBuilder = [GTMURLBuilder builderWithString: |
| @"http://google.com:8080/path%3AA/pathB?param=val"]; |
| XCTAssertEqualStrings(@"http://google.com:8080/path%3AA/pathB?param=val", |
| [URLBuilder URLString]); |
| XCTAssertEqualStrings(@"val", [URLBuilder valueForParameter:@"param"]); |
| |
| URLBuilder = [GTMURLBuilder builderWithString: |
| @"http://google.com:8080/pathA/pathB%2F?param=val"]; |
| XCTAssertEqualStrings(@"http://google.com:8080/pathA/pathB%2F?param=val", |
| [URLBuilder URLString]); |
| XCTAssertEqualStrings(@"val", [URLBuilder valueForParameter:@"param"]); |
| } |
| |
| - (void)testMailToHandling { |
| GTMURLBuilder *URLBuilder = |
| [GTMURLBuilder builderWithString:@"mailto:ytmapp-ios@google.com"]; |
| [URLBuilder setValue:@"blah" forParameter:@"subject"]; |
| XCTAssertEqualStrings(@"mailto:ytmapp-ios@google.com?subject=blah", |
| [URLBuilder URLString]); |
| } |
| |
| - (void)testIsEqualTo { |
| GTMURLBuilder *URLBuilderA = [GTMURLBuilder |
| builderWithString:@"http://google.com/pathA/pathB?a=b&c=d"]; |
| GTMURLBuilder *URLBuilderB = |
| [GTMURLBuilder builderWithString:@"http://google.com/pathA/pathB"]; |
| [URLBuilderB setValue:@"d" forParameter:@"c"]; |
| [URLBuilderB setValue:@"b" forParameter:@"a"]; |
| XCTAssertTrue([URLBuilderA isEqual:URLBuilderB]); |
| [URLBuilderB setValue:@"c" forParameter:@"a"]; |
| XCTAssertFalse([URLBuilderA isEqual:URLBuilderB]); |
| [URLBuilderB setValue:@"b" forParameter:@"a"]; |
| [URLBuilderB setValue:@"f" forParameter:@"e"]; |
| XCTAssertFalse([URLBuilderA isEqual:URLBuilderB]); |
| } |
| |
| - (void)testSetParameters { |
| GTMURLBuilder *URLBuilderA = |
| [GTMURLBuilder builderWithString:@"http://google.com/"]; |
| GTMURLBuilder *URLBuilderB = |
| [GTMURLBuilder builderWithString:@"http://google.com/?p1=x&p2=b"]; |
| NSDictionary *params = |
| [NSDictionary dictionaryWithObjectsAndKeys:@"a", @"p1", @"b", @"p2", nil]; |
| [URLBuilderA setParameters:params]; |
| [URLBuilderA setValue:@"x" forParameter:@"p1"]; |
| XCTAssertTrue([URLBuilderA isEqual:URLBuilderB]); |
| } |
| |
| - (void)testReplaceParameters { |
| GTMURLBuilder *URLBuilderA = |
| [GTMURLBuilder builderWithString:@"http://google.com/?p1=y"]; |
| GTMURLBuilder *URLBuilderB = |
| [GTMURLBuilder builderWithString:@"http://google.com/?p1=x&p2=b"]; |
| NSDictionary *params = |
| [NSDictionary dictionaryWithObjectsAndKeys:@"a", @"p1", @"b", @"p2", nil]; |
| [URLBuilderA setParameters:params]; |
| [URLBuilderA setValue:@"x" forParameter:@"p1"]; |
| XCTAssertTrue([URLBuilderA isEqual:URLBuilderB]); |
| } |
| |
| - (void)testURLPathParsing { |
| GTMURLBuilder *URLBuilder = |
| [GTMURLBuilder builderWithString:@"http://google.com/"]; |
| XCTAssertEqualStrings(@"http://google.com/", [URLBuilder URLString]); |
| URLBuilder = [GTMURLBuilder builderWithString:@"http://google.com/pA/pB"]; |
| XCTAssertEqualStrings(@"http://google.com/pA/pB", [URLBuilder URLString]); |
| URLBuilder = [GTMURLBuilder builderWithString:@"http://google.com/p%3AA/pB"]; |
| XCTAssertEqualStrings(@"http://google.com/p%3AA/pB", [URLBuilder URLString]); |
| } |
| |
| @end |