1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
//
// 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
|