aboutsummaryrefslogtreecommitdiff
path: root/Foundation/GTMURLBuilderTest.m
diff options
context:
space:
mode:
authorGravatar gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2012-03-01 17:00:20 +0000
committerGravatar gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2012-03-01 17:00:20 +0000
commit32654998f055c85d9a70b6f415abf79dd81c601e (patch)
tree6d5ecf98880ccbd2c0ad55036f730eee4e6fa871 /Foundation/GTMURLBuilderTest.m
parent4f85e00accda833f7fd0ef1a40018818ae090495 (diff)
[Author: msenesi]
Flexible builder for URLs. R=altse,dmaclach,thomasvl APPROVED=dmaclach
Diffstat (limited to 'Foundation/GTMURLBuilderTest.m')
-rw-r--r--Foundation/GTMURLBuilderTest.m108
1 files changed, 108 insertions, 0 deletions
diff --git a/Foundation/GTMURLBuilderTest.m b/Foundation/GTMURLBuilderTest.m
new file mode 100644
index 0000000..096c09b
--- /dev/null
+++ b/Foundation/GTMURLBuilderTest.m
@@ -0,0 +1,108 @@
+//
+// 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];
+ 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/pathA/pathB?param=val"];
+ STAssertEqualStrings(@"http://google.com:8080/pathA/pathB?param=val",
+ [URLBuilder URLString], nil);
+ STAssertEqualStrings(@"val", [URLBuilder valueForParameter:@"param"], nil);
+}
+
+- (void)testMailToHandling {
+ GTMURLBuilder *URLBuilder =
+ [GTMURLBuilder builderWithString:@"mailto:ytmapp-ios@google.com"];
+ [URLBuilder setValue:@"blah" forParameter:@"subject"];
+ STAssertEqualStrings(@"mailto:ytmapp-ios@google.com?subject=blah",
+ [URLBuilder URLString], nil);
+}
+
+- (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"];
+ STAssertTrue([URLBuilderA isEqual:URLBuilderB], nil);
+ [URLBuilderB setValue:@"c" forParameter:@"a"];
+ STAssertFalse([URLBuilderA isEqual:URLBuilderB], nil);
+ [URLBuilderB setValue:@"b" forParameter:@"a"];
+ [URLBuilderB setValue:@"f" forParameter:@"e"];
+ STAssertFalse([URLBuilderA isEqual:URLBuilderB], nil);
+}
+
+- (void)testURLWithString {
+ STAssertEqualStrings(@";/?:@&=+$,",
+ [[GTMURLBuilder URLWithString:@";/?:@&=+$,"]
+ absoluteString],
+ nil);
+ STAssertEqualStrings(@"a%20b%20&%20c%20-%20URL=http://test.com/",
+ [[GTMURLBuilder URLWithString:
+ @"a b & c - URL=http://test.com/"] absoluteString],
+ nil);
+}
+
+- (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"];
+ STAssertTrue([URLBuilderA isEqual:URLBuilderB], nil);
+}
+
+- (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"];
+ STAssertTrue([URLBuilderA isEqual:URLBuilderB], nil);
+}
+
+- (void)testURLPathParsing {
+ GTMURLBuilder *URLBuilder =
+ [GTMURLBuilder builderWithString:@"http://google.com/"];
+ STAssertEqualStrings(@"http://google.com/", [URLBuilder URLString], nil);
+ URLBuilder = [GTMURLBuilder builderWithString:@"http://google.com/pA/pB"];
+ STAssertEqualStrings(@"http://google.com/pA/pB", [URLBuilder URLString], nil);
+}
+
+@end