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];
This diff is collapsed. Click to expand it.
This diff could not be displayed because it is too large.