Ben Copsey

Fix various issues with cookie stuff, expiry dates should be working now

@@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
14 { 14 {
15 NSString *prop = [property lowercaseString]; 15 NSString *prop = [property lowercaseString];
16 if ([prop isEqualToString:@"expires"]) { 16 if ([prop isEqualToString:@"expires"]) {
17 - //[self setExpires:[NSDate dateFrom 17 + [self setExpires:[NSDate dateWithNaturalLanguageString:newValue]];
18 return; 18 return;
19 } else if ([prop isEqualToString:@"domain"]) { 19 } else if ([prop isEqualToString:@"domain"]) {
20 [self setDomain:newValue]; 20 [self setDomain:newValue];
@@ -24,102 +24,120 @@ More tests needed for: @@ -24,102 +24,120 @@ More tests needed for:
24 - Session persistence 24 - Session persistence
25 */ 25 */
26 26
27 -//- (void)testBasicDownload 27 +- (void)testBasicDownload
28 -//{ 28 +{
29 -// //Grab data 29 + //Grab data
30 -// NSURL *url = [[[NSURL alloc] initWithString:@"http://allseeing-i.com"] autorelease]; 30 + NSURL *url = [[[NSURL alloc] initWithString:@"http://allseeing-i.com"] autorelease];
31 -// ASIHTTPRequest *request = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease]; 31 + ASIHTTPRequest *request = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease];
32 -// [request start]; 32 + [request start];
33 -// NSString *html = [request dataString]; 33 + NSString *html = [request dataString];
34 -// STAssertNotNil(html,@"Basic synchronous request failed"); 34 + STAssertNotNil(html,@"Basic synchronous request failed");
35 -// 35 +
36 -// //Check we're getting the correct response headers 36 + //Check we're getting the correct response headers
37 -// NSString *pingBackHeader = [[request responseHeaders] objectForKey:@"X-Pingback"]; 37 + NSString *pingBackHeader = [[request responseHeaders] objectForKey:@"X-Pingback"];
38 -// BOOL success = [pingBackHeader isEqualToString:@"http://allseeing-i.com/Ping-Back"]; 38 + BOOL success = [pingBackHeader isEqualToString:@"http://allseeing-i.com/Ping-Back"];
39 -// STAssertTrue(success,@"Failed to populate response headers"); 39 + STAssertTrue(success,@"Failed to populate response headers");
40 -// 40 +
41 -// //Check we're getting back the correct status code 41 + //Check we're getting back the correct status code
42 -// url = [[[NSURL alloc] initWithString:@"http://allseeing-i.com/a-page-that-does-not-exist"] autorelease]; 42 + url = [[[NSURL alloc] initWithString:@"http://allseeing-i.com/a-page-that-does-not-exist"] autorelease];
43 -// request = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease]; 43 + request = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease];
44 -// [request start]; 44 + [request start];
45 -// success = ([request responseStatusCode] == 404); 45 + success = ([request responseStatusCode] == 404);
46 -// STAssertTrue(success,@"Didn't get correct status code"); 46 + STAssertTrue(success,@"Didn't get correct status code");
47 -// 47 +
48 -// //Check data 48 + //Check data
49 -// NSRange notFound = NSMakeRange(NSNotFound, 0); 49 + NSRange notFound = NSMakeRange(NSNotFound, 0);
50 -// success = !NSEqualRanges([html rangeOfString:@"All-Seeing Interactive"],notFound); 50 + success = !NSEqualRanges([html rangeOfString:@"All-Seeing Interactive"],notFound);
51 -// STAssertTrue(success,@"Failed to download the correct data"); 51 + STAssertTrue(success,@"Failed to download the correct data");
52 -// 52 +
53 -// //Attempt to grab from bad url (astonishingly, there is a website at http://aaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com !) 53 + //Attempt to grab from bad url (astonishingly, there is a website at http://aaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com !)
54 -// url = [[[NSURL alloc] initWithString:@"http://aaaaaaaaaaaaaaaaaaaaaaaaaaaaab.com"] autorelease]; 54 + url = [[[NSURL alloc] initWithString:@"http://aaaaaaaaaaaaaaaaaaaaaaaaaaaaab.com"] autorelease];
55 -// request = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease]; 55 + request = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease];
56 -// [request start]; 56 + [request start];
57 -// NSError *error = [request error]; 57 + NSError *error = [request error];
58 -// STAssertNotNil(error,@"Failed to generate an error for a bad host - this test may fail when your DNS server redirects you to another page when it can't find a domain name (eg OpenDNS)"); 58 + STAssertNotNil(error,@"Failed to generate an error for a bad host - this test may fail when your DNS server redirects you to another page when it can't find a domain name (eg OpenDNS)");
59 -//} 59 +}
60 -// 60 +
61 -//- (void)testOperationQueue 61 +- (void)testOperationQueue
62 -//{ 62 +{
63 -// NSOperationQueue *queue = [[[NSOperationQueue alloc] init] autorelease]; 63 + NSOperationQueue *queue = [[[NSOperationQueue alloc] init] autorelease];
64 -// 64 +
65 -// NSURL *url; 65 + NSURL *url;
66 -// url = [[[NSURL alloc] initWithString:@"http://allseeing-i.com/asi-http-request/tests/first"] autorelease]; 66 + url = [[[NSURL alloc] initWithString:@"http://allseeing-i.com/asi-http-request/tests/first"] autorelease];
67 -// ASIHTTPRequest *request1 = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease]; 67 + ASIHTTPRequest *request1 = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease];
68 -// [queue addOperation:request1]; 68 + [queue addOperation:request1];
69 -// 69 +
70 -// url = [[[NSURL alloc] initWithString:@"http://allseeing-i.com/asi-http-request/tests/second"] autorelease]; 70 + url = [[[NSURL alloc] initWithString:@"http://allseeing-i.com/asi-http-request/tests/second"] autorelease];
71 -// ASIHTTPRequest *request2 = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease]; 71 + ASIHTTPRequest *request2 = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease];
72 -// [queue addOperation:request2]; 72 + [queue addOperation:request2];
73 -// 73 +
74 -// url = [[[NSURL alloc] initWithString:@"http://allseeing-i.com/asi-http-request/tests/third"] autorelease]; 74 + url = [[[NSURL alloc] initWithString:@"http://allseeing-i.com/asi-http-request/tests/third"] autorelease];
75 -// ASIHTTPRequest *request3 = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease]; 75 + ASIHTTPRequest *request3 = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease];
76 -// [queue addOperation:request3]; 76 + [queue addOperation:request3];
77 -// 77 +
78 -// url = [[[NSURL alloc] initWithString:@"http://aaaaaaaaaaaaaaaaaaaaaaaaaaaaab.com"] autorelease]; 78 + url = [[[NSURL alloc] initWithString:@"http://aaaaaaaaaaaaaaaaaaaaaaaaaaaaab.com"] autorelease];
79 -// ASIHTTPRequest *request4 = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease]; 79 + ASIHTTPRequest *request4 = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease];
80 -// [queue addOperation:request4]; 80 + [queue addOperation:request4];
81 -// 81 +
82 -// url = [[[NSURL alloc] initWithString:@"http://allseeing-i.com/asi-http-request/tests/broken"] autorelease]; 82 + url = [[[NSURL alloc] initWithString:@"http://allseeing-i.com/asi-http-request/tests/broken"] autorelease];
83 -// ASIHTTPRequest *request5 = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease]; 83 + ASIHTTPRequest *request5 = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease];
84 -// [queue addOperation:request5]; 84 + [queue addOperation:request5];
85 -// 85 +
86 -// [queue waitUntilAllOperationsAreFinished]; 86 + [queue waitUntilAllOperationsAreFinished];
87 -// 87 +
88 -// BOOL success; 88 + BOOL success;
89 -// 89 +
90 -// success = ([request1 error] == nil); 90 + success = ([request1 error] == nil);
91 -// STAssertTrue(success,@"Request 1 failed"); 91 + STAssertTrue(success,@"Request 1 failed");
92 -// 92 +
93 -// success = [[request1 dataString] isEqualToString:@"This is the expected content for the first string"]; 93 + success = [[request1 dataString] isEqualToString:@"This is the expected content for the first string"];
94 -// STAssertTrue(success,@"Failed to download the correct data for request 1"); 94 + STAssertTrue(success,@"Failed to download the correct data for request 1");
95 -// 95 +
96 -// success = ([request2 error] == nil); 96 + success = ([request2 error] == nil);
97 -// STAssertTrue(success,@"Request 2 failed"); 97 + STAssertTrue(success,@"Request 2 failed");
98 -// 98 +
99 -// success = [[request2 dataString] isEqualToString:@"This is the expected content for the second string"]; 99 + success = [[request2 dataString] isEqualToString:@"This is the expected content for the second string"];
100 -// STAssertTrue(success,@"Failed to download the correct data for request 2"); 100 + STAssertTrue(success,@"Failed to download the correct data for request 2");
101 -// 101 +
102 -// success = ([request3 error] == nil); 102 + success = ([request3 error] == nil);
103 -// STAssertTrue(success,@"Request 3 failed"); 103 + STAssertTrue(success,@"Request 3 failed");
104 -// 104 +
105 -// success = [[request3 dataString] isEqualToString:@"This is the expected content for the third string"]; 105 + success = [[request3 dataString] isEqualToString:@"This is the expected content for the third string"];
106 -// STAssertTrue(success,@"Failed to download the correct data for request 3"); 106 + STAssertTrue(success,@"Failed to download the correct data for request 3");
107 -// 107 +
108 -// success = ([request4 error] != nil); 108 + success = ([request4 error] != nil);
109 -// STAssertTrue(success,@"Request 4 succeed when it should have failed - this test may fail when your DNS server redirects you to another page when it can't find a domain name (eg OpenDNS)"); 109 + STAssertTrue(success,@"Request 4 succeed when it should have failed - this test may fail when your DNS server redirects you to another page when it can't find a domain name (eg OpenDNS)");
110 -// 110 +
111 -// success = ([request5 error] == nil); 111 + success = ([request5 error] == nil);
112 -// STAssertTrue(success,@"Request 5 failed"); 112 + STAssertTrue(success,@"Request 5 failed");
113 -// 113 +
114 -// success = ([request5 responseStatusCode] == 404); 114 + success = ([request5 responseStatusCode] == 404);
115 -// STAssertTrue(success,@"Failed to obtain the correct status code for request 5"); 115 + STAssertTrue(success,@"Failed to obtain the correct status code for request 5");
116 -// 116 +
117 -//} 117 +}
118 118
119 - (void)testCookies 119 - (void)testCookies
120 { 120 {
121 BOOL success; 121 BOOL success;
122 122
  123 + //Firstly, let's make sure cocoa still parses cookie dates correctly using the three examples at http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3
  124 + NSString *dte = @"Sun, 06 Nov 1994 08:49:37 GMT";
  125 +
  126 + NSDate *date = [NSDate dateWithNaturalLanguageString:dte];
  127 + NSDate *referenceDate = [NSDate dateWithString:@"1994-11-06 08:49:37 +0000"];
  128 + success = [date isEqualToDate:referenceDate];
  129 + STAssertTrue(success,@"Date parse 1 failed");
  130 +
  131 + dte = @"Sunday, 06-Nov-94 08:49:37 GMT";
  132 + date = [NSDate dateWithNaturalLanguageString:dte];
  133 + success = [date isEqualToDate:referenceDate];
  134 + STAssertTrue(success,@"Date parse 2 failed");
  135 +
  136 + dte = @"Sun Nov 6 08:49:37 1994";
  137 + date = [NSDate dateWithNaturalLanguageString:dte];
  138 + success = [date isEqualToDate:referenceDate];
  139 + STAssertTrue(success,@"Date parse 3 failed");
  140 +
123 NSURL *url = [[[NSURL alloc] initWithString:@"http://asi/asi-http-request/tests/set_cookie"] autorelease]; 141 NSURL *url = [[[NSURL alloc] initWithString:@"http://asi/asi-http-request/tests/set_cookie"] autorelease];
124 ASIHTTPRequest *request = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease]; 142 ASIHTTPRequest *request = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease];
125 [request setUseCookiePersistance:YES]; 143 [request setUseCookiePersistance:YES];
@@ -197,48 +197,7 @@ @@ -197,48 +197,7 @@
197 <key>Notifications</key> 197 <key>Notifications</key>
198 <array/> 198 <array/>
199 <key>OpenEditors</key> 199 <key>OpenEditors</key>
200 - <array> 200 + <array/>
201 - <dict>  
202 - <key>Content</key>  
203 - <dict>  
204 - <key>PBXProjectModuleGUID</key>  
205 - <string>B5B3BD2C0E6331590071D39F</string>  
206 - <key>PBXProjectModuleLabel</key>  
207 - <string>ASIHTTPRequestTests.m</string>  
208 - <key>PBXSplitModuleInNavigatorKey</key>  
209 - <dict>  
210 - <key>Split0</key>  
211 - <dict>  
212 - <key>PBXProjectModuleGUID</key>  
213 - <string>B5B3BD2D0E6331590071D39F</string>  
214 - <key>PBXProjectModuleLabel</key>  
215 - <string>ASIHTTPRequestTests.m</string>  
216 - <key>_historyCapacity</key>  
217 - <integer>0</integer>  
218 - <key>bookmark</key>  
219 - <string>B5B3BF0C0E6345DB0071D39F</string>  
220 - <key>history</key>  
221 - <array>  
222 - <string>B5B3BD2A0E6331480071D39F</string>  
223 - </array>  
224 - </dict>  
225 - <key>SplitCount</key>  
226 - <string>1</string>  
227 - </dict>  
228 - <key>StatusBarVisibility</key>  
229 - <true/>  
230 - </dict>  
231 - <key>Geometry</key>  
232 - <dict>  
233 - <key>Frame</key>  
234 - <string>{{0, 20}, {1485, 777}}</string>  
235 - <key>PBXModuleWindowStatusBarHidden2</key>  
236 - <false/>  
237 - <key>RubberWindowFrame</key>  
238 - <string>64 -59 1485 818 0 0 1920 1178 </string>  
239 - </dict>  
240 - </dict>  
241 - </array>  
242 <key>PerspectiveWidths</key> 201 <key>PerspectiveWidths</key>
243 <array> 202 <array>
244 <integer>-1</integer> 203 <integer>-1</integer>
@@ -272,6 +231,8 @@ @@ -272,6 +231,8 @@
272 <key>Layout</key> 231 <key>Layout</key>
273 <array> 232 <array>
274 <dict> 233 <dict>
  234 + <key>BecomeActive</key>
  235 + <true/>
275 <key>ContentConfiguration</key> 236 <key>ContentConfiguration</key>
276 <dict> 237 <dict>
277 <key>PBXBottomSmartGroupGIDs</key> 238 <key>PBXBottomSmartGroupGIDs</key>
@@ -345,7 +306,7 @@ @@ -345,7 +306,7 @@
345 <real>312</real> 306 <real>312</real>
346 </array> 307 </array>
347 <key>RubberWindowFrame</key> 308 <key>RubberWindowFrame</key>
348 - <string>156 103 1647 920 0 0 1920 1178 </string> 309 + <string>120 130 1647 920 0 0 1920 1178 </string>
349 </dict> 310 </dict>
350 <key>Module</key> 311 <key>Module</key>
351 <string>PBXSmartGroupTreeModule</string> 312 <string>PBXSmartGroupTreeModule</string>
@@ -356,8 +317,6 @@ @@ -356,8 +317,6 @@
356 <key>Dock</key> 317 <key>Dock</key>
357 <array> 318 <array>
358 <dict> 319 <dict>
359 - <key>BecomeActive</key>  
360 - <true/>  
361 <key>ContentConfiguration</key> 320 <key>ContentConfiguration</key>
362 <dict> 321 <dict>
363 <key>PBXProjectModuleGUID</key> 322 <key>PBXProjectModuleGUID</key>
@@ -375,26 +334,26 @@ @@ -375,26 +334,26 @@
375 <key>_historyCapacity</key> 334 <key>_historyCapacity</key>
376 <integer>0</integer> 335 <integer>0</integer>
377 <key>bookmark</key> 336 <key>bookmark</key>
378 - <string>B5B3BF0B0E6345DB0071D39F</string> 337 + <string>B500B57B0E635B5500744D82</string>
379 <key>history</key> 338 <key>history</key>
380 <array> 339 <array>
381 <string>B5731B8B0E4310180008024F</string> 340 <string>B5731B8B0E4310180008024F</string>
382 <string>B5731BBE0E4319180008024F</string> 341 <string>B5731BBE0E4319180008024F</string>
383 <string>B5731BEE0E431A050008024F</string> 342 <string>B5731BEE0E431A050008024F</string>
384 <string>B5731BEF0E431A050008024F</string> 343 <string>B5731BEF0E431A050008024F</string>
385 - <string>B5731E180E43424A0008024F</string>  
386 <string>B5F3B7370E43683600E001FD</string> 344 <string>B5F3B7370E43683600E001FD</string>
387 - <string>B5F3B74C0E4378FA00E001FD</string>  
388 <string>B567EF5C0E4EE4FC001E238F</string> 345 <string>B567EF5C0E4EE4FC001E238F</string>
389 <string>B567EF5D0E4EE4FC001E238F</string> 346 <string>B567EF5D0E4EE4FC001E238F</string>
390 - <string>B5B3BE530E633CEE0071D39F</string> 347 + <string>B5B3BF120E63470F0071D39F</string>
391 - <string>B5B3BE950E63407D0071D39F</string> 348 + <string>B5B3BF150E63470F0071D39F</string>
392 - <string>B5B3BEA90E6342110071D39F</string> 349 + <string>B5B3BF190E63470F0071D39F</string>
393 - <string>B5B3BEC50E6342C30071D39F</string> 350 + <string>B5B3BF3A0E634AB90071D39F</string>
394 - <string>B5B3BEC60E6342C30071D39F</string> 351 + <string>B5B3BF4F0E634B0C0071D39F</string>
395 - <string>B5B3BEC70E6342C30071D39F</string> 352 + <string>B5B3BF5D0E634B5D0071D39F</string>
396 - <string>B5B3BF070E6345DB0071D39F</string> 353 + <string>B500B54C0E635A3200744D82</string>
397 - <string>B5B3BF080E6345DB0071D39F</string> 354 + <string>B500B5740E635B5500744D82</string>
  355 + <string>B500B5750E635B5500744D82</string>
  356 + <string>B500B5760E635B5500744D82</string>
398 </array> 357 </array>
399 <key>prevStack</key> 358 <key>prevStack</key>
400 <array> 359 <array>
@@ -413,139 +372,17 @@ @@ -413,139 +372,17 @@
413 <string>B5731D9B0E433A750008024F</string> 372 <string>B5731D9B0E433A750008024F</string>
414 <string>B5F3B7390E43683600E001FD</string> 373 <string>B5F3B7390E43683600E001FD</string>
415 <string>B567EF630E4EE4FC001E238F</string> 374 <string>B567EF630E4EE4FC001E238F</string>
416 - <string>B5B3BC680E62DA0E0071D39F</string>  
417 <string>B5B3BC690E62DA0E0071D39F</string> 375 <string>B5B3BC690E62DA0E0071D39F</string>
418 - <string>B5B3BC6A0E62DA0E0071D39F</string>  
419 - <string>B5B3BC6B0E62DA0E0071D39F</string>  
420 <string>B5B3BC6C0E62DA0E0071D39F</string> 376 <string>B5B3BC6C0E62DA0E0071D39F</string>
421 - <string>B5B3BC6D0E62DA0E0071D39F</string> 377 + <string>B500B54E0E635A3200744D82</string>
422 - <string>B5B3BC6E0E62DA0E0071D39F</string> 378 + <string>B500B54F0E635A3200744D82</string>
423 - <string>B5B3BC6F0E62DA0E0071D39F</string> 379 + <string>B500B5500E635A3200744D82</string>
424 - <string>B5B3BC700E62DA0E0071D39F</string> 380 + <string>B500B5510E635A3200744D82</string>
425 - <string>B5B3BC710E62DA0E0071D39F</string> 381 + <string>B500B56D0E635B1C00744D82</string>
426 - <string>B5B3BC720E62DA0E0071D39F</string> 382 + <string>B500B5770E635B5500744D82</string>
427 - <string>B5B3BC730E62DA0E0071D39F</string> 383 + <string>B500B5780E635B5500744D82</string>
428 - <string>B5B3BC740E62DA0E0071D39F</string> 384 + <string>B500B5790E635B5500744D82</string>
429 - <string>B5B3BC750E62DA0E0071D39F</string> 385 + <string>B500B57A0E635B5500744D82</string>
430 - <string>B5B3BC760E62DA0E0071D39F</string>  
431 - <string>B5B3BC770E62DA0E0071D39F</string>  
432 - <string>B5B3BC780E62DA0E0071D39F</string>  
433 - <string>B5B3BC790E62DA0E0071D39F</string>  
434 - <string>B5B3BC7A0E62DA0E0071D39F</string>  
435 - <string>B5B3BC7B0E62DA0E0071D39F</string>  
436 - <string>B5B3BC7C0E62DA0E0071D39F</string>  
437 - <string>B5B3BC7D0E62DA0E0071D39F</string>  
438 - <string>B5B3BC7E0E62DA0E0071D39F</string>  
439 - <string>B5B3BC7F0E62DA0E0071D39F</string>  
440 - <string>B5B3BC920E6315CD0071D39F</string>  
441 - <string>B5B3BC930E6315CD0071D39F</string>  
442 - <string>B5B3BC940E6315CD0071D39F</string>  
443 - <string>B5B3BC950E6315CD0071D39F</string>  
444 - <string>B5B3BC960E6315CD0071D39F</string>  
445 - <string>B5B3BCA60E6321C20071D39F</string>  
446 - <string>B5B3BCA70E6321C20071D39F</string>  
447 - <string>B5B3BCAE0E6325820071D39F</string>  
448 - <string>B5B3BCB60E6325E00071D39F</string>  
449 - <string>B5B3BCB70E6325E00071D39F</string>  
450 - <string>B5B3BCB80E6325E00071D39F</string>  
451 - <string>B5B3BCB90E6325E00071D39F</string>  
452 - <string>B5B3BCBA0E6325E00071D39F</string>  
453 - <string>B5B3BCBB0E6325E00071D39F</string>  
454 - <string>B5B3BCCB0E6329C00071D39F</string>  
455 - <string>B5B3BCCC0E6329C00071D39F</string>  
456 - <string>B5B3BCCD0E6329C00071D39F</string>  
457 - <string>B5B3BCCE0E6329C00071D39F</string>  
458 - <string>B5B3BCCF0E6329C00071D39F</string>  
459 - <string>B5B3BCD00E6329C00071D39F</string>  
460 - <string>B5B3BCD10E6329C00071D39F</string>  
461 - <string>B5B3BCD20E6329C00071D39F</string>  
462 - <string>B5B3BCD30E6329C00071D39F</string>  
463 - <string>B5B3BCD40E6329C00071D39F</string>  
464 - <string>B5B3BCE00E632DEB0071D39F</string>  
465 - <string>B5B3BD060E632F3C0071D39F</string>  
466 - <string>B5B3BD070E632F3C0071D39F</string>  
467 - <string>B5B3BD190E63306D0071D39F</string>  
468 - <string>B5B3BD250E6331470071D39F</string>  
469 - <string>B5B3BD260E6331470071D39F</string>  
470 - <string>B5B3BD270E6331470071D39F</string>  
471 - <string>B5B3BD3F0E6331CF0071D39F</string>  
472 - <string>B5B3BD470E6332B70071D39F</string>  
473 - <string>B5B3BD4D0E6332CB0071D39F</string>  
474 - <string>B5B3BD570E6333180071D39F</string>  
475 - <string>B5B3BD630E63333D0071D39F</string>  
476 - <string>B5B3BD640E63333D0071D39F</string>  
477 - <string>B5B3BD650E63333D0071D39F</string>  
478 - <string>B5B3BD660E63333D0071D39F</string>  
479 - <string>B5B3BDCF0E6336640071D39F</string>  
480 - <string>B5B3BDD00E6336640071D39F</string>  
481 - <string>B5B3BDD10E6336640071D39F</string>  
482 - <string>B5B3BDD20E6336640071D39F</string>  
483 - <string>B5B3BDD30E6336640071D39F</string>  
484 - <string>B5B3BDD40E6336640071D39F</string>  
485 - <string>B5B3BDD50E6336640071D39F</string>  
486 - <string>B5B3BDDE0E6336920071D39F</string>  
487 - <string>B5B3BDDF0E6336920071D39F</string>  
488 - <string>B5B3BDE00E6336920071D39F</string>  
489 - <string>B5B3BDEA0E6336A70071D39F</string>  
490 - <string>B5B3BDEB0E6336A70071D39F</string>  
491 - <string>B5B3BDF80E63370C0071D39F</string>  
492 - <string>B5B3BDF90E63370C0071D39F</string>  
493 - <string>B5B3BDFA0E63370C0071D39F</string>  
494 - <string>B5B3BDFB0E63370C0071D39F</string>  
495 - <string>B5B3BDFC0E63370C0071D39F</string>  
496 - <string>B5B3BDFD0E63370C0071D39F</string>  
497 - <string>B5B3BDFE0E63370C0071D39F</string>  
498 - <string>B5B3BE200E63389F0071D39F</string>  
499 - <string>B5B3BE210E63389F0071D39F</string>  
500 - <string>B5B3BE220E63389F0071D39F</string>  
501 - <string>B5B3BE2E0E6338E60071D39F</string>  
502 - <string>B5B3BE550E633CEE0071D39F</string>  
503 - <string>B5B3BE560E633CEE0071D39F</string>  
504 - <string>B5B3BE570E633CEE0071D39F</string>  
505 - <string>B5B3BE580E633CEE0071D39F</string>  
506 - <string>B5B3BE590E633CEE0071D39F</string>  
507 - <string>B5B3BE5A0E633CEE0071D39F</string>  
508 - <string>B5B3BE5B0E633CEE0071D39F</string>  
509 - <string>B5B3BE5C0E633CEE0071D39F</string>  
510 - <string>B5B3BE5D0E633CEE0071D39F</string>  
511 - <string>B5B3BE5E0E633CEE0071D39F</string>  
512 - <string>B5B3BE5F0E633CEE0071D39F</string>  
513 - <string>B5B3BE740E633FA50071D39F</string>  
514 - <string>B5B3BE750E633FA50071D39F</string>  
515 - <string>B5B3BE760E633FA50071D39F</string>  
516 - <string>B5B3BE770E633FA50071D39F</string>  
517 - <string>B5B3BE780E633FA50071D39F</string>  
518 - <string>B5B3BE790E633FA50071D39F</string>  
519 - <string>B5B3BE7A0E633FA50071D39F</string>  
520 - <string>B5B3BE7B0E633FA50071D39F</string>  
521 - <string>B5B3BE980E63407D0071D39F</string>  
522 - <string>B5B3BE990E63407D0071D39F</string>  
523 - <string>B5B3BE9A0E63407D0071D39F</string>  
524 - <string>B5B3BE9B0E63407D0071D39F</string>  
525 - <string>B5B3BE9C0E63407D0071D39F</string>  
526 - <string>B5B3BEAD0E6342110071D39F</string>  
527 - <string>B5B3BEAE0E6342110071D39F</string>  
528 - <string>B5B3BEAF0E6342110071D39F</string>  
529 - <string>B5B3BEB00E6342110071D39F</string>  
530 - <string>B5B3BEB10E6342110071D39F</string>  
531 - <string>B5B3BEB20E6342110071D39F</string>  
532 - <string>B5B3BEB30E6342110071D39F</string>  
533 - <string>B5B3BEBA0E6342730071D39F</string>  
534 - <string>B5B3BECA0E6342C30071D39F</string>  
535 - <string>B5B3BECB0E6342C30071D39F</string>  
536 - <string>B5B3BECC0E6342C30071D39F</string>  
537 - <string>B5B3BECD0E6342C30071D39F</string>  
538 - <string>B5B3BECE0E6342C30071D39F</string>  
539 - <string>B5B3BECF0E6342C30071D39F</string>  
540 - <string>B5B3BED00E6342C30071D39F</string>  
541 - <string>B5B3BED10E6342C30071D39F</string>  
542 - <string>B5B3BED90E63431A0071D39F</string>  
543 - <string>B5B3BEEC0E6344FC0071D39F</string>  
544 - <string>B5B3BEF40E6345140071D39F</string>  
545 - <string>B5B3BF000E63459A0071D39F</string>  
546 - <string>B5B3BF010E63459A0071D39F</string>  
547 - <string>B5B3BF090E6345DB0071D39F</string>  
548 - <string>B5B3BF0A0E6345DB0071D39F</string>  
549 </array> 386 </array>
550 </dict> 387 </dict>
551 <key>SplitCount</key> 388 <key>SplitCount</key>
@@ -559,7 +396,7 @@ @@ -559,7 +396,7 @@
559 <key>Frame</key> 396 <key>Frame</key>
560 <string>{{0, 0}, {1313, 780}}</string> 397 <string>{{0, 0}, {1313, 780}}</string>
561 <key>RubberWindowFrame</key> 398 <key>RubberWindowFrame</key>
562 - <string>156 103 1647 920 0 0 1920 1178 </string> 399 + <string>120 130 1647 920 0 0 1920 1178 </string>
563 </dict> 400 </dict>
564 <key>Module</key> 401 <key>Module</key>
565 <string>PBXNavigatorGroup</string> 402 <string>PBXNavigatorGroup</string>
@@ -579,7 +416,7 @@ @@ -579,7 +416,7 @@
579 <key>Frame</key> 416 <key>Frame</key>
580 <string>{{0, 785}, {1313, 94}}</string> 417 <string>{{0, 785}, {1313, 94}}</string>
581 <key>RubberWindowFrame</key> 418 <key>RubberWindowFrame</key>
582 - <string>156 103 1647 920 0 0 1920 1178 </string> 419 + <string>120 130 1647 920 0 0 1920 1178 </string>
583 </dict> 420 </dict>
584 <key>Module</key> 421 <key>Module</key>
585 <string>XCDetailModule</string> 422 <string>XCDetailModule</string>
@@ -603,9 +440,9 @@ @@ -603,9 +440,9 @@
603 </array> 440 </array>
604 <key>TableOfContents</key> 441 <key>TableOfContents</key>
605 <array> 442 <array>
606 - <string>B5B3BC400E62D2810071D39F</string> 443 + <string>B500B5530E635A3200744D82</string>
607 <string>1CE0B1FE06471DED0097A5F4</string> 444 <string>1CE0B1FE06471DED0097A5F4</string>
608 - <string>B5B3BC410E62D2810071D39F</string> 445 + <string>B500B5540E635A3200744D82</string>
609 <string>1CE0B20306471E060097A5F4</string> 446 <string>1CE0B20306471E060097A5F4</string>
610 <string>1CE0B20506471E060097A5F4</string> 447 <string>1CE0B20506471E060097A5F4</string>
611 </array> 448 </array>
@@ -739,18 +576,16 @@ @@ -739,18 +576,16 @@
739 <integer>5</integer> 576 <integer>5</integer>
740 <key>WindowOrderList</key> 577 <key>WindowOrderList</key>
741 <array> 578 <array>
742 - <string>B5B3BF0D0E6345DB0071D39F</string> 579 + <string>B500B57C0E635B5500744D82</string>
743 - <string>1C530D57069F1CE1000CFCEE</string> 580 + <string>B500B5570E635A3200744D82</string>
744 - <string>B5B3BCD60E6329C00071D39F</string> 581 + <string>B500B5580E635A3200744D82</string>
745 - <string>B5B3BCD70E6329C00071D39F</string> 582 + <string>1CD10A99069EF8BA00B06720</string>
746 <string>B5ABC8410E24CDE70072F422</string> 583 <string>B5ABC8410E24CDE70072F422</string>
747 - <string>B5B3BD2C0E6331590071D39F</string>  
748 <string>1C78EAAD065D492600B07095</string> 584 <string>1C78EAAD065D492600B07095</string>
749 - <string>1CD10A99069EF8BA00B06720</string>  
750 <string>/Users/ben/asi-http-request/asi-http-request.xcodeproj</string> 585 <string>/Users/ben/asi-http-request/asi-http-request.xcodeproj</string>
751 </array> 586 </array>
752 <key>WindowString</key> 587 <key>WindowString</key>
753 - <string>156 103 1647 920 0 0 1920 1178 </string> 588 + <string>120 130 1647 920 0 0 1920 1178 </string>
754 <key>WindowToolsV3</key> 589 <key>WindowToolsV3</key>
755 <array> 590 <array>
756 <dict> 591 <dict>
@@ -780,7 +615,7 @@ @@ -780,7 +615,7 @@
780 <key>Frame</key> 615 <key>Frame</key>
781 <string>{{0, 0}, {1440, 536}}</string> 616 <string>{{0, 0}, {1440, 536}}</string>
782 <key>RubberWindowFrame</key> 617 <key>RubberWindowFrame</key>
783 - <string>283 203 1440 818 0 0 1920 1178 </string> 618 + <string>276 -189 1440 818 0 0 1920 1178 </string>
784 </dict> 619 </dict>
785 <key>Module</key> 620 <key>Module</key>
786 <string>PBXNavigatorGroup</string> 621 <string>PBXNavigatorGroup</string>
@@ -806,7 +641,7 @@ @@ -806,7 +641,7 @@
806 <key>Frame</key> 641 <key>Frame</key>
807 <string>{{0, 541}, {1440, 236}}</string> 642 <string>{{0, 541}, {1440, 236}}</string>
808 <key>RubberWindowFrame</key> 643 <key>RubberWindowFrame</key>
809 - <string>283 203 1440 818 0 0 1920 1178 </string> 644 + <string>276 -189 1440 818 0 0 1920 1178 </string>
810 </dict> 645 </dict>
811 <key>Module</key> 646 <key>Module</key>
812 <string>PBXBuildResultsModule</string> 647 <string>PBXBuildResultsModule</string>
@@ -829,18 +664,18 @@ @@ -829,18 +664,18 @@
829 <key>TableOfContents</key> 664 <key>TableOfContents</key>
830 <array> 665 <array>
831 <string>B5ABC8410E24CDE70072F422</string> 666 <string>B5ABC8410E24CDE70072F422</string>
832 - <string>B5B3BC500E62D8FB0071D39F</string> 667 + <string>B500B5420E635A0700744D82</string>
833 <string>1CD0528F0623707200166675</string> 668 <string>1CD0528F0623707200166675</string>
834 <string>XCMainBuildResultsModuleGUID</string> 669 <string>XCMainBuildResultsModuleGUID</string>
835 </array> 670 </array>
836 <key>ToolbarConfiguration</key> 671 <key>ToolbarConfiguration</key>
837 <string>xcode.toolbar.config.buildV3</string> 672 <string>xcode.toolbar.config.buildV3</string>
838 <key>WindowString</key> 673 <key>WindowString</key>
839 - <string>283 203 1440 818 0 0 1920 1178 </string> 674 + <string>276 -189 1440 818 0 0 1920 1178 </string>
840 <key>WindowToolGUID</key> 675 <key>WindowToolGUID</key>
841 <string>B5ABC8410E24CDE70072F422</string> 676 <string>B5ABC8410E24CDE70072F422</string>
842 <key>WindowToolIsVisible</key> 677 <key>WindowToolIsVisible</key>
843 - <false/> 678 + <true/>
844 </dict> 679 </dict>
845 <dict> 680 <dict>
846 <key>FirstTimeWindowDisplayed</key> 681 <key>FirstTimeWindowDisplayed</key>
@@ -923,10 +758,10 @@ @@ -923,10 +758,10 @@
923 <key>Frame</key> 758 <key>Frame</key>
924 <string>{{713, 0}, {851, 339}}</string> 759 <string>{{713, 0}, {851, 339}}</string>
925 <key>RubberWindowFrame</key> 760 <key>RubberWindowFrame</key>
926 - <string>231 251 1564 676 0 0 1920 1178 </string> 761 + <string>60 308 1564 676 0 0 1920 1178 </string>
927 </dict> 762 </dict>
928 <key>RubberWindowFrame</key> 763 <key>RubberWindowFrame</key>
929 - <string>231 251 1564 676 0 0 1920 1178 </string> 764 + <string>60 308 1564 676 0 0 1920 1178 </string>
930 </dict> 765 </dict>
931 <key>Module</key> 766 <key>Module</key>
932 <string>PBXDebugSessionModule</string> 767 <string>PBXDebugSessionModule</string>
@@ -949,18 +784,18 @@ @@ -949,18 +784,18 @@
949 <key>TableOfContents</key> 784 <key>TableOfContents</key>
950 <array> 785 <array>
951 <string>1CD10A99069EF8BA00B06720</string> 786 <string>1CD10A99069EF8BA00B06720</string>
952 - <string>B5B3BC510E62D8FB0071D39F</string> 787 + <string>B500B5430E635A0700744D82</string>
953 <string>1C162984064C10D400B95A72</string> 788 <string>1C162984064C10D400B95A72</string>
954 - <string>B5B3BC520E62D8FB0071D39F</string> 789 + <string>B500B5440E635A0700744D82</string>
955 - <string>B5B3BC530E62D8FB0071D39F</string> 790 + <string>B500B5450E635A0700744D82</string>
956 - <string>B5B3BC540E62D8FB0071D39F</string> 791 + <string>B500B5460E635A0700744D82</string>
957 - <string>B5B3BC550E62D8FB0071D39F</string> 792 + <string>B500B5470E635A0700744D82</string>
958 - <string>B5B3BC560E62D8FB0071D39F</string> 793 + <string>B500B5480E635A0700744D82</string>
959 </array> 794 </array>
960 <key>ToolbarConfiguration</key> 795 <key>ToolbarConfiguration</key>
961 <string>xcode.toolbar.config.debugV3</string> 796 <string>xcode.toolbar.config.debugV3</string>
962 <key>WindowString</key> 797 <key>WindowString</key>
963 - <string>231 251 1564 676 0 0 1920 1178 </string> 798 + <string>60 308 1564 676 0 0 1920 1178 </string>
964 <key>WindowToolGUID</key> 799 <key>WindowToolGUID</key>
965 <string>1CD10A99069EF8BA00B06720</string> 800 <string>1CD10A99069EF8BA00B06720</string>
966 <key>WindowToolIsVisible</key> 801 <key>WindowToolIsVisible</key>
@@ -1111,7 +946,7 @@ @@ -1111,7 +946,7 @@
1111 <key>TableOfContents</key> 946 <key>TableOfContents</key>
1112 <array> 947 <array>
1113 <string>1C78EAAD065D492600B07095</string> 948 <string>1C78EAAD065D492600B07095</string>
1114 - <string>B5B3BC810E62DA0E0071D39F</string> 949 + <string>B500B5550E635A3200744D82</string>
1115 <string>1C78EAAC065D492600B07095</string> 950 <string>1C78EAAC065D492600B07095</string>
1116 </array> 951 </array>
1117 <key>ToolbarConfiguration</key> 952 <key>ToolbarConfiguration</key>
This diff could not be displayed because it is too large.