diff options
Diffstat (limited to 'Foundation')
-rw-r--r-- | Foundation/GTMURLBuilder.m | 9 | ||||
-rw-r--r-- | Foundation/GTMURLBuilderTest.m | 14 |
2 files changed, 17 insertions, 6 deletions
diff --git a/Foundation/GTMURLBuilder.m b/Foundation/GTMURLBuilder.m index 0956755..52ee12a 100644 --- a/Foundation/GTMURLBuilder.m +++ b/Foundation/GTMURLBuilder.m @@ -53,15 +53,12 @@ // NSURL does not work with ports. baseURLString_ = [URL absoluteString]; - if ([URL path]) { + if ([URL query]) { NSRange pathRange = - [baseURLString_ rangeOfString:[URL path] options:NSBackwardsSearch]; + [baseURLString_ rangeOfString:[URL query] options:NSBackwardsSearch]; if (pathRange.location != NSNotFound) { - baseURLString_ = [baseURLString_ substringToIndex:pathRange.location]; + baseURLString_ = [baseURLString_ substringToIndex:pathRange.location-1]; } - - baseURLString_ = - [NSString stringWithFormat:@"%@%@", baseURLString_, [URL path]]; } [baseURLString_ retain]; params_ = [[NSDictionary gtm_dictionaryWithHttpArgumentsString:[URL query]] diff --git a/Foundation/GTMURLBuilderTest.m b/Foundation/GTMURLBuilderTest.m index f6eb829..4c0f128 100644 --- a/Foundation/GTMURLBuilderTest.m +++ b/Foundation/GTMURLBuilderTest.m @@ -37,6 +37,18 @@ STAssertEqualStrings(@"http://google.com:8080/pathA/pathB?param=val", [URLBuilder URLString], nil); STAssertEqualStrings(@"val", [URLBuilder valueForParameter:@"param"], nil); + + URLBuilder = [GTMURLBuilder builderWithString: + @"http://google.com:8080/path%3AA/pathB?param=val"]; + STAssertEqualStrings(@"http://google.com:8080/path%3AA/pathB?param=val", + [URLBuilder URLString], nil); + STAssertEqualStrings(@"val", [URLBuilder valueForParameter:@"param"], nil); + + URLBuilder = [GTMURLBuilder builderWithString: + @"http://google.com:8080/pathA/pathB%2F?param=val"]; + STAssertEqualStrings(@"http://google.com:8080/pathA/pathB%2F?param=val", + [URLBuilder URLString], nil); + STAssertEqualStrings(@"val", [URLBuilder valueForParameter:@"param"], nil); } - (void)testMailToHandling { @@ -92,6 +104,8 @@ STAssertEqualStrings(@"http://google.com/", [URLBuilder URLString], nil); URLBuilder = [GTMURLBuilder builderWithString:@"http://google.com/pA/pB"]; STAssertEqualStrings(@"http://google.com/pA/pB", [URLBuilder URLString], nil); + URLBuilder = [GTMURLBuilder builderWithString:@"http://google.com/p%3AA/pB"]; + STAssertEqualStrings(@"http://google.com/p%3AA/pB", [URLBuilder URLString], nil); } @end |