Showing
11 changed files
with
225 additions
and
291 deletions
ASIHTTPCookie.h
deleted
100644 → 0
1 | -// | ||
2 | -// ASIHTTPCookie.h | ||
3 | -// asi-http-request | ||
4 | -// | ||
5 | -// Created by Ben Copsey on 25/08/2008. | ||
6 | -// Copyright 2008 All-Seeing Interactive. All rights reserved. | ||
7 | -// | ||
8 | - | ||
9 | -#import <Cocoa/Cocoa.h> | ||
10 | - | ||
11 | - | ||
12 | -@interface ASIHTTPCookie : NSObject { | ||
13 | - NSString *name; | ||
14 | - NSString *value; | ||
15 | - NSDate *expires; | ||
16 | - NSString *path; | ||
17 | - NSString *domain; | ||
18 | - BOOL requiresHTTPS; | ||
19 | -} | ||
20 | - | ||
21 | -- (void)setValue:(NSString *)newValue forProperty:(NSString *)property; | ||
22 | - | ||
23 | -+ (NSMutableArray *)cookiesFromHeader:(NSString *)header; | ||
24 | -+ (NSString *)urlEncodedValue:(NSString *)string; | ||
25 | -+ (NSString *)urlDecodedValue:(NSString *)string; | ||
26 | - | ||
27 | -@property (retain) NSString *name; | ||
28 | -@property (retain) NSString *value; | ||
29 | -@property (retain) NSDate *expires; | ||
30 | -@property (retain) NSString *path; | ||
31 | -@property (retain) NSString *domain; | ||
32 | -@property (assign) BOOL requiresHTTPS; | ||
33 | - | ||
34 | -@end |
ASIHTTPCookie.m
deleted
100644 → 0
1 | -// | ||
2 | -// ASIHTTPCookie.m | ||
3 | -// asi-http-request | ||
4 | -// | ||
5 | -// Created by Ben Copsey on 25/08/2008. | ||
6 | -// Copyright 2008 All-Seeing Interactive. All rights reserved. | ||
7 | -// | ||
8 | - | ||
9 | -#import "ASIHTTPCookie.h" | ||
10 | - | ||
11 | -@implementation ASIHTTPCookie | ||
12 | - | ||
13 | -- (void)setValue:(NSString *)newValue forProperty:(NSString *)property | ||
14 | -{ | ||
15 | - NSString *prop = [property lowercaseString]; | ||
16 | - if ([prop isEqualToString:@"expires"]) { | ||
17 | - [self setExpires:[NSDate dateWithNaturalLanguageString:newValue]]; | ||
18 | - return; | ||
19 | - } else if ([prop isEqualToString:@"domain"]) { | ||
20 | - [self setDomain:newValue]; | ||
21 | - return; | ||
22 | - } else if ([prop isEqualToString:@"path"]) { | ||
23 | - [self setPath:newValue]; | ||
24 | - return; | ||
25 | - } else if ([prop isEqualToString:@"secure"]) { | ||
26 | - [self setRequiresHTTPS:[newValue isEqualToString:@"1"]]; | ||
27 | - return; | ||
28 | - } | ||
29 | - if (![self name] && ![self value]) { | ||
30 | - [self setName:property]; | ||
31 | - [self setValue:newValue]; | ||
32 | - } | ||
33 | -} | ||
34 | - | ||
35 | - | ||
36 | -// I know this looks like a really ugly way to parse the Set-Cookie header, but I'd guess this is probably one of the simplest methods! | ||
37 | -// You can't rely on a comma being a cookie delimeter, since it's quite likely that the expiry date for a cookie will contain a comma | ||
38 | - | ||
39 | - | ||
40 | -+ (NSMutableArray *)cookiesFromHeader:(NSString *)header | ||
41 | -{ | ||
42 | - NSMutableArray *cookies = [[[NSMutableArray alloc] init] autorelease]; | ||
43 | - ASIHTTPCookie *cookie = [[[ASIHTTPCookie alloc] init] autorelease]; | ||
44 | - | ||
45 | - NSArray *parts = [header componentsSeparatedByString:@"="]; | ||
46 | - int i; | ||
47 | - NSString *name; | ||
48 | - NSString *value; | ||
49 | - NSArray *components; | ||
50 | - NSString *newKey; | ||
51 | - NSString *terminator; | ||
52 | - for (i=0; i<[parts count]; i++) { | ||
53 | - NSString *part = [parts objectAtIndex:i]; | ||
54 | - if (i == 0) { | ||
55 | - name = part; | ||
56 | - continue; | ||
57 | - } else if (i == [parts count]-1) { | ||
58 | - [cookie setValue:[ASIHTTPCookie urlDecodedValue:part] forProperty:name]; | ||
59 | - [cookies addObject:cookie]; | ||
60 | - continue; | ||
61 | - } | ||
62 | - components = [part componentsSeparatedByString:@" "]; | ||
63 | - newKey = [components lastObject]; | ||
64 | - value = [part substringWithRange:NSMakeRange(0,[part length]-[newKey length]-2)]; | ||
65 | - [cookie setValue:[ASIHTTPCookie urlDecodedValue:value] forProperty:name]; | ||
66 | - | ||
67 | - terminator = [part substringWithRange:NSMakeRange([part length]-[newKey length]-2,1)]; | ||
68 | - if ([terminator isEqualToString:@","]) { | ||
69 | - [cookies addObject:cookie]; | ||
70 | - cookie = [[[ASIHTTPCookie alloc] init] autorelease]; | ||
71 | - } | ||
72 | - name = newKey; | ||
73 | - } | ||
74 | - | ||
75 | - return cookies; | ||
76 | - | ||
77 | -} | ||
78 | - | ||
79 | -+ (NSString *)urlDecodedValue:(NSString *)string | ||
80 | -{ | ||
81 | - NSMutableString *s = [NSMutableString stringWithString:[string stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; | ||
82 | - //Also swap plus signs for spaces | ||
83 | - [s replaceOccurrencesOfString:@"+" withString:@" " options:NSLiteralSearch range:NSMakeRange(0, [s length])]; | ||
84 | - return [NSString stringWithString:s]; | ||
85 | -} | ||
86 | - | ||
87 | -+ (NSString *)urlEncodedValue:(NSString *)string | ||
88 | -{ | ||
89 | - return [string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; | ||
90 | -} | ||
91 | - | ||
92 | -@synthesize name; | ||
93 | -@synthesize value; | ||
94 | -@synthesize expires; | ||
95 | -@synthesize path; | ||
96 | -@synthesize domain; | ||
97 | -@synthesize requiresHTTPS; | ||
98 | -@end | ||
99 | - | ||
100 | - |
@@ -39,7 +39,7 @@ | @@ -39,7 +39,7 @@ | ||
39 | NSMutableArray *requestCookies; | 39 | NSMutableArray *requestCookies; |
40 | 40 | ||
41 | //Will be populated with Cookies | 41 | //Will be populated with Cookies |
42 | - NSMutableArray *responseCookies; | 42 | + NSArray *responseCookies; |
43 | 43 | ||
44 | //If use cokie persistance is true, network requests will present valid cookies from previous requests | 44 | //If use cokie persistance is true, network requests will present valid cookies from previous requests |
45 | BOOL useCookiePersistance; | 45 | BOOL useCookiePersistance; |
@@ -224,17 +224,13 @@ | @@ -224,17 +224,13 @@ | ||
224 | // Remove credentials from the keychain | 224 | // Remove credentials from the keychain |
225 | + (void)removeCredentialsForHost:(NSString *)host port:(int)port protocol:(NSString *)protocol realm:(NSString *)realm; | 225 | + (void)removeCredentialsForHost:(NSString *)host port:(int)port protocol:(NSString *)protocol realm:(NSString *)realm; |
226 | 226 | ||
227 | -// Store cookies for a particular request in the session | 227 | +// We keep track of any cookies we accept, so that we can remove them from the persistent store later |
228 | -+ (void)recordCookiesInSessionForRequest:(ASIHTTPRequest *)request; | ||
229 | - | ||
230 | + (void)setSessionCookies:(NSMutableArray *)newSessionCookies; | 228 | + (void)setSessionCookies:(NSMutableArray *)newSessionCookies; |
231 | + (NSMutableArray *)sessionCookies; | 229 | + (NSMutableArray *)sessionCookies; |
232 | 230 | ||
233 | // Dump all session data (authentication and cookies) | 231 | // Dump all session data (authentication and cookies) |
234 | + (void)clearSession; | 232 | + (void)clearSession; |
235 | 233 | ||
236 | - | ||
237 | - | ||
238 | @property (retain) NSString *username; | 234 | @property (retain) NSString *username; |
239 | @property (retain) NSString *password; | 235 | @property (retain) NSString *password; |
240 | @property (retain) NSString *domain; | 236 | @property (retain) NSString *domain; |
@@ -253,7 +249,7 @@ | @@ -253,7 +249,7 @@ | ||
253 | @property (assign,readonly) BOOL complete; | 249 | @property (assign,readonly) BOOL complete; |
254 | @property (retain) NSDictionary *responseHeaders; | 250 | @property (retain) NSDictionary *responseHeaders; |
255 | @property (retain) NSMutableArray *requestCookies; | 251 | @property (retain) NSMutableArray *requestCookies; |
256 | -@property (retain) NSMutableArray *responseCookies; | 252 | +@property (retain) NSArray *responseCookies; |
257 | @property (assign) BOOL useCookiePersistance; | 253 | @property (assign) BOOL useCookiePersistance; |
258 | @property (retain) NSDictionary *requestCredentials; | 254 | @property (retain) NSDictionary *requestCredentials; |
259 | @property (assign) int responseStatusCode; | 255 | @property (assign) int responseStatusCode; |
@@ -11,7 +11,7 @@ | @@ -11,7 +11,7 @@ | ||
11 | // See: http://developer.apple.com/samplecode/ImageClient/listing37.html | 11 | // See: http://developer.apple.com/samplecode/ImageClient/listing37.html |
12 | 12 | ||
13 | #import "ASIHTTPRequest.h" | 13 | #import "ASIHTTPRequest.h" |
14 | -#import "ASIHTTPCookie.h" | 14 | +#import "NSHTTPCookieAdditions.h" |
15 | 15 | ||
16 | static NSString *NetworkRequestErrorDomain = @"com.Your-Company.Your-Product.NetworkError."; | 16 | static NSString *NetworkRequestErrorDomain = @"com.Your-Company.Your-Product.NetworkError."; |
17 | 17 | ||
@@ -168,47 +168,23 @@ static void ReadStreamClientCallBack(CFReadStreamRef readStream, CFStreamEventTy | @@ -168,47 +168,23 @@ static void ReadStreamClientCallBack(CFReadStreamRef readStream, CFStreamEventTy | ||
168 | //Set your own boundary string only if really obsessive. We don't bother to check if post data contains the boundary, since it's pretty unlikely that it does. | 168 | //Set your own boundary string only if really obsessive. We don't bother to check if post data contains the boundary, since it's pretty unlikely that it does. |
169 | NSString *stringBoundary = @"0xKhTmLbOuNdArY"; | 169 | NSString *stringBoundary = @"0xKhTmLbOuNdArY"; |
170 | 170 | ||
171 | - //Add cookies from session | 171 | + //Add cookies from the persistant (mac os global) store |
172 | - if (useCookiePersistance && [[ASIHTTPRequest sessionCookies] count] > 0) { | 172 | + if (useCookiePersistance) { |
173 | - ASIHTTPCookie *requestCookie; | 173 | + NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:url]; |
174 | - ASIHTTPCookie *storedCookie; | 174 | + if (cookies) { |
175 | - for (storedCookie in sessionCookies) { | 175 | + [requestCookies addObjectsFromArray:cookies]; |
176 | - BOOL foundExistingCookie = NO; | ||
177 | - //Look for existing cookies in the request - these will always take precedence over session stored cookies | ||
178 | - for (requestCookie in requestCookies) { | ||
179 | - if ([[requestCookie domain] isEqualToString:[storedCookie domain]]) { | ||
180 | - if ([[requestCookie path] isEqualToString:[storedCookie path]] || (![requestCookie path] && ![storedCookie path])) { | ||
181 | - if ([[requestCookie name] isEqualToString:[storedCookie name]]) { | ||
182 | - foundExistingCookie = YES; | ||
183 | - break; | ||
184 | - } | ||
185 | - } | ||
186 | - } | ||
187 | - } | ||
188 | - if (!foundExistingCookie) { | ||
189 | - [requestCookies addObject:storedCookie]; | ||
190 | - } | ||
191 | } | 176 | } |
192 | } | 177 | } |
193 | 178 | ||
194 | //Apply request cookies | 179 | //Apply request cookies |
195 | if ([requestCookies count] > 0) { | 180 | if ([requestCookies count] > 0) { |
196 | - ASIHTTPCookie *cookie; | 181 | + NSHTTPCookie *cookie; |
197 | NSString *cookieHeader = nil; | 182 | NSString *cookieHeader = nil; |
198 | for (cookie in requestCookies) { | 183 | for (cookie in requestCookies) { |
199 | - //Ensure the cookie is valid for this request | ||
200 | - if ([[[url host] substringWithRange:NSMakeRange([[url host] length]-[[cookie domain] length],[[cookie domain] length])] isEqualToString:[cookie domain]]) { | ||
201 | - if ([[[url path] substringWithRange:NSMakeRange(0,[[cookie path] length])] isEqualToString:[cookie path]]) { | ||
202 | - if (![cookie requiresHTTPS] || [[url port] intValue] == 443) { | ||
203 | - if (![cookie expires] || [[cookie expires] timeIntervalSinceNow] > 0) { | ||
204 | if (!cookieHeader) { | 184 | if (!cookieHeader) { |
205 | - cookieHeader = [NSString stringWithFormat: @"%@=%@",[cookie name],[ASIHTTPCookie urlEncodedValue:[cookie value]]]; | 185 | + cookieHeader = [NSString stringWithFormat: @"%@=%@",[cookie name],[cookie encodedValue]]; |
206 | } else { | 186 | } else { |
207 | - cookieHeader = [NSString stringWithFormat: @"%@; %@=%@",cookieHeader,[cookie name],[ASIHTTPCookie urlEncodedValue:[cookie value]]]; | 187 | + cookieHeader = [NSString stringWithFormat: @"%@; %@=%@",cookieHeader,[cookie name],[cookie encodedValue]]; |
208 | - } | ||
209 | - } | ||
210 | - } | ||
211 | - } | ||
212 | } | 188 | } |
213 | } | 189 | } |
214 | if (cookieHeader) { | 190 | if (cookieHeader) { |
@@ -475,11 +451,20 @@ static void ReadStreamClientCallBack(CFReadStreamRef readStream, CFStreamEventTy | @@ -475,11 +451,20 @@ static void ReadStreamClientCallBack(CFReadStreamRef readStream, CFStreamEventTy | ||
475 | } | 451 | } |
476 | 452 | ||
477 | //Handle cookies | 453 | //Handle cookies |
478 | - NSString *cookieHeader = [responseHeaders valueForKey:@"Set-Cookie"]; | 454 | + NSArray *cookies = [NSHTTPCookie cookiesWithResponseHeaderFields:responseHeaders forURL:url]; |
479 | - if (cookieHeader) { | 455 | + [self setResponseCookies:cookies]; |
480 | - [self setResponseCookies:[ASIHTTPCookie cookiesFromHeader:cookieHeader]]; | 456 | + |
481 | if (useCookiePersistance) { | 457 | if (useCookiePersistance) { |
482 | - [ASIHTTPRequest recordCookiesInSessionForRequest:self]; | 458 | + //Store cookies in global persistent store |
459 | + [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookies:cookies forURL:url mainDocumentURL:nil]; | ||
460 | + | ||
461 | + //We also keep any cookies in the sessionCookies array, so that we have a reference to them if we need to remove them later | ||
462 | + if (!sessionCookies) { | ||
463 | + [ASIHTTPRequest setSessionCookies:[[[NSMutableArray alloc] init] autorelease]]; | ||
464 | + NSHTTPCookie *cookie; | ||
465 | + for (cookie in cookies) { | ||
466 | + [[ASIHTTPRequest sessionCookies] addObject:cookie]; | ||
467 | + } | ||
483 | } | 468 | } |
484 | } | 469 | } |
485 | 470 | ||
@@ -829,37 +814,6 @@ static void ReadStreamClientCallBack(CFReadStreamRef readStream, CFStreamEventTy | @@ -829,37 +814,6 @@ static void ReadStreamClientCallBack(CFReadStreamRef readStream, CFStreamEventTy | ||
829 | 814 | ||
830 | } | 815 | } |
831 | 816 | ||
832 | -+ (void)recordCookiesInSessionForRequest:(ASIHTTPRequest *)request | ||
833 | -{ | ||
834 | - if (!sessionCookies) { | ||
835 | - [self setSessionCookies:[[[NSMutableArray alloc] init] autorelease]]; | ||
836 | - } | ||
837 | - ASIHTTPCookie *newCookie; | ||
838 | - ASIHTTPCookie *storedCookie; | ||
839 | - for (newCookie in [request responseCookies]) { | ||
840 | - //If we didn't get a domain for the cookie, let's add the one from this request, so we aren't sending cookies from the wrong server later on | ||
841 | - if (![newCookie domain]) { | ||
842 | - [newCookie setDomain:[[request url] host]]; | ||
843 | - } | ||
844 | - int i = 0; | ||
845 | - BOOL foundExistingCookie = NO; | ||
846 | - for (storedCookie in sessionCookies) { | ||
847 | - if ([[storedCookie domain] isEqualToString:[newCookie domain]]) { | ||
848 | - if ([[storedCookie path] isEqualToString:[newCookie path]] || (![storedCookie path] && ![newCookie path])) { | ||
849 | - if ([[storedCookie name] isEqualToString:[newCookie name]]) { | ||
850 | - foundExistingCookie = YES; | ||
851 | - [sessionCookies replaceObjectAtIndex:i withObject:newCookie]; | ||
852 | - break; | ||
853 | - } | ||
854 | - } | ||
855 | - } | ||
856 | - i++; | ||
857 | - } | ||
858 | - if (!foundExistingCookie) { | ||
859 | - [sessionCookies addObject:newCookie]; | ||
860 | - } | ||
861 | - } | ||
862 | -} | ||
863 | 817 | ||
864 | + (NSMutableArray *)sessionCookies | 818 | + (NSMutableArray *)sessionCookies |
865 | { | 819 | { |
@@ -868,6 +822,11 @@ static void ReadStreamClientCallBack(CFReadStreamRef readStream, CFStreamEventTy | @@ -868,6 +822,11 @@ static void ReadStreamClientCallBack(CFReadStreamRef readStream, CFStreamEventTy | ||
868 | 822 | ||
869 | + (void)setSessionCookies:(NSMutableArray *)newSessionCookies | 823 | + (void)setSessionCookies:(NSMutableArray *)newSessionCookies |
870 | { | 824 | { |
825 | + //Remove existing cookies from the persistent store | ||
826 | + NSHTTPCookie *cookie; | ||
827 | + for (cookie in newSessionCookies) { | ||
828 | + [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie]; | ||
829 | + } | ||
871 | [sessionCookies release]; | 830 | [sessionCookies release]; |
872 | sessionCookies = [newSessionCookies retain]; | 831 | sessionCookies = [newSessionCookies retain]; |
873 | } | 832 | } |
@@ -881,6 +840,7 @@ static void ReadStreamClientCallBack(CFReadStreamRef readStream, CFStreamEventTy | @@ -881,6 +840,7 @@ static void ReadStreamClientCallBack(CFReadStreamRef readStream, CFStreamEventTy | ||
881 | } | 840 | } |
882 | 841 | ||
883 | 842 | ||
843 | + | ||
884 | @synthesize username; | 844 | @synthesize username; |
885 | @synthesize password; | 845 | @synthesize password; |
886 | @synthesize domain; | 846 | @synthesize domain; |
@@ -8,7 +8,7 @@ | @@ -8,7 +8,7 @@ | ||
8 | 8 | ||
9 | #import "ASIHTTPRequestTests.h" | 9 | #import "ASIHTTPRequestTests.h" |
10 | #import "ASIHTTPRequest.h" | 10 | #import "ASIHTTPRequest.h" |
11 | -#import "ASIHTTPCookie.h" | 11 | +#import "NSHTTPCookieAdditions.h" |
12 | 12 | ||
13 | @implementation ASIHTTPRequestTests | 13 | @implementation ASIHTTPRequestTests |
14 | 14 | ||
@@ -120,24 +120,6 @@ More tests needed for: | @@ -120,24 +120,6 @@ More tests needed for: | ||
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 | - | ||
141 | NSURL *url = [[[NSURL alloc] initWithString:@"http://allseeing-i.com/asi-http-request/tests/set_cookie"] autorelease]; | 123 | NSURL *url = [[[NSURL alloc] initWithString:@"http://allseeing-i.com/asi-http-request/tests/set_cookie"] autorelease]; |
142 | ASIHTTPRequest *request = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease]; | 124 | ASIHTTPRequest *request = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease]; |
143 | [request setUseCookiePersistance:YES]; | 125 | [request setUseCookiePersistance:YES]; |
@@ -149,14 +131,15 @@ More tests needed for: | @@ -149,14 +131,15 @@ More tests needed for: | ||
149 | NSArray *cookies = [request responseCookies]; | 131 | NSArray *cookies = [request responseCookies]; |
150 | STAssertNotNil(cookies,@"Failed to store cookie data in responseCookies"); | 132 | STAssertNotNil(cookies,@"Failed to store cookie data in responseCookies"); |
151 | 133 | ||
152 | - ASIHTTPCookie *cookie = nil; | 134 | + NSHTTPCookie *cookie = nil; |
153 | BOOL foundCookie = NO; | 135 | BOOL foundCookie = NO; |
154 | for (cookie in cookies) { | 136 | for (cookie in cookies) { |
155 | if ([[cookie name] isEqualToString:@"ASIHTTPRequestTestCookie"]) { | 137 | if ([[cookie name] isEqualToString:@"ASIHTTPRequestTestCookie"]) { |
156 | foundCookie = YES; | 138 | foundCookie = YES; |
157 | - success = [[cookie value] isEqualToString:@"This is the value"]; | 139 | + NSLog(@"%@",cookie); |
140 | + success = [[cookie decodedValue] isEqualToString:@"This is the value"]; | ||
158 | STAssertTrue(success,@"Failed to store the correct value for a cookie"); | 141 | STAssertTrue(success,@"Failed to store the correct value for a cookie"); |
159 | - success = [[cookie domain] isEqualToString:@"allseeing-i.com"]; | 142 | + success = [[cookie domain] isEqualToString:@".allseeing-i.com"]; |
160 | STAssertTrue(success,@"Failed to store the correct domain for a cookie"); | 143 | STAssertTrue(success,@"Failed to store the correct domain for a cookie"); |
161 | success = [[cookie path] isEqualToString:@"/asi-http-request/tests"]; | 144 | success = [[cookie path] isEqualToString:@"/asi-http-request/tests"]; |
162 | STAssertTrue(success,@"Failed to store the correct path for a cookie"); | 145 | STAssertTrue(success,@"Failed to store the correct path for a cookie"); |
@@ -26,7 +26,7 @@ | @@ -26,7 +26,7 @@ | ||
26 | 26 | ||
27 | - (IBAction)simpleURLFetch:(id)sender | 27 | - (IBAction)simpleURLFetch:(id)sender |
28 | { | 28 | { |
29 | - ASIHTTPRequest *request = [[[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:@"http://allseeing-i.com"]] autorelease]; | 29 | + ASIHTTPRequest *request = [[[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:@"http://asi/"]] autorelease]; |
30 | 30 | ||
31 | //Customise our user agent, for no real reason | 31 | //Customise our user agent, for no real reason |
32 | [request addRequestHeader:@"User-Agent" value:@"ASIHTTPRequest"]; | 32 | [request addRequestHeader:@"User-Agent" value:@"ASIHTTPRequest"]; |
NSHTTPCookieAdditions.h
0 → 100644
1 | +// | ||
2 | +// NSHTTPCookieAdditions.h | ||
3 | +// asi-http-request | ||
4 | +// | ||
5 | +// Created by Ben Copsey on 12/09/2008. | ||
6 | +// Copyright 2008 All-Seeing Interactive. All rights reserved. | ||
7 | +// | ||
8 | + | ||
9 | +#import <Cocoa/Cocoa.h> | ||
10 | + | ||
11 | +@interface NSHTTPCookie (ValueEncodingAdditions) | ||
12 | + | ||
13 | +- (NSString *)encodedValue; | ||
14 | +- (NSString *)decodedValue; | ||
15 | + | ||
16 | +@end |
NSHTTPCookieAdditions.m
0 → 100644
1 | +// | ||
2 | +// NSHTTPCookieAdditions.m | ||
3 | +// asi-http-request | ||
4 | +// | ||
5 | +// Created by Ben Copsey on 12/09/2008. | ||
6 | +// Copyright 2008 All-Seeing Interactive. All rights reserved. | ||
7 | +// | ||
8 | + | ||
9 | +#import "NSHTTPCookieAdditions.h" | ||
10 | + | ||
11 | +@implementation NSHTTPCookie (ValueEncodingAdditions) | ||
12 | + | ||
13 | +- (NSString *)decodedValue | ||
14 | +{ | ||
15 | + NSMutableString *s = [NSMutableString stringWithString:[[self value] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; | ||
16 | + //Also swap plus signs for spaces | ||
17 | + [s replaceOccurrencesOfString:@"+" withString:@" " options:NSLiteralSearch range:NSMakeRange(0, [s length])]; | ||
18 | + return [NSString stringWithString:s]; | ||
19 | +} | ||
20 | + | ||
21 | +- (NSString *)encodedValue | ||
22 | +{ | ||
23 | + return [[self value] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; | ||
24 | +} | ||
25 | + | ||
26 | +@end | ||
27 | + | ||
28 | + |
@@ -279,13 +279,13 @@ | @@ -279,13 +279,13 @@ | ||
279 | <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> | 279 | <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> |
280 | <array> | 280 | <array> |
281 | <array> | 281 | <array> |
282 | - <integer>4</integer> | 282 | + <integer>11</integer> |
283 | - <integer>2</integer> | 283 | + <integer>5</integer> |
284 | <integer>0</integer> | 284 | <integer>0</integer> |
285 | </array> | 285 | </array> |
286 | </array> | 286 | </array> |
287 | <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> | 287 | <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> |
288 | - <string>{{0, 0}, {312, 861}}</string> | 288 | + <string>{{0, 0}, {312, 917}}</string> |
289 | </dict> | 289 | </dict> |
290 | <key>PBXTopSmartGroupGIDs</key> | 290 | <key>PBXTopSmartGroupGIDs</key> |
291 | <array/> | 291 | <array/> |
@@ -297,14 +297,14 @@ | @@ -297,14 +297,14 @@ | ||
297 | <key>GeometryConfiguration</key> | 297 | <key>GeometryConfiguration</key> |
298 | <dict> | 298 | <dict> |
299 | <key>Frame</key> | 299 | <key>Frame</key> |
300 | - <string>{{0, 0}, {329, 879}}</string> | 300 | + <string>{{0, 0}, {329, 935}}</string> |
301 | <key>GroupTreeTableConfiguration</key> | 301 | <key>GroupTreeTableConfiguration</key> |
302 | <array> | 302 | <array> |
303 | <string>MainColumn</string> | 303 | <string>MainColumn</string> |
304 | <real>312</real> | 304 | <real>312</real> |
305 | </array> | 305 | </array> |
306 | <key>RubberWindowFrame</key> | 306 | <key>RubberWindowFrame</key> |
307 | - <string>120 130 1647 920 0 0 1920 1178 </string> | 307 | + <string>224 81 1432 976 0 0 1920 1178 </string> |
308 | </dict> | 308 | </dict> |
309 | <key>Module</key> | 309 | <key>Module</key> |
310 | <string>PBXSmartGroupTreeModule</string> | 310 | <string>PBXSmartGroupTreeModule</string> |
@@ -322,7 +322,7 @@ | @@ -322,7 +322,7 @@ | ||
322 | <key>PBXProjectModuleGUID</key> | 322 | <key>PBXProjectModuleGUID</key> |
323 | <string>1CE0B20306471E060097A5F4</string> | 323 | <string>1CE0B20306471E060097A5F4</string> |
324 | <key>PBXProjectModuleLabel</key> | 324 | <key>PBXProjectModuleLabel</key> |
325 | - <string>ASIHTTPRequestTests.m</string> | 325 | + <string>ASIHTTPRequest.m</string> |
326 | <key>PBXSplitModuleInNavigatorKey</key> | 326 | <key>PBXSplitModuleInNavigatorKey</key> |
327 | <dict> | 327 | <dict> |
328 | <key>Split0</key> | 328 | <key>Split0</key> |
@@ -330,11 +330,11 @@ | @@ -330,11 +330,11 @@ | ||
330 | <key>PBXProjectModuleGUID</key> | 330 | <key>PBXProjectModuleGUID</key> |
331 | <string>1CE0B20406471E060097A5F4</string> | 331 | <string>1CE0B20406471E060097A5F4</string> |
332 | <key>PBXProjectModuleLabel</key> | 332 | <key>PBXProjectModuleLabel</key> |
333 | - <string>ASIHTTPRequestTests.m</string> | 333 | + <string>ASIHTTPRequest.m</string> |
334 | <key>_historyCapacity</key> | 334 | <key>_historyCapacity</key> |
335 | <integer>0</integer> | 335 | <integer>0</integer> |
336 | <key>bookmark</key> | 336 | <key>bookmark</key> |
337 | - <string>B500B5BA0E635E0E00744D82</string> | 337 | + <string>B5CF37350E7A8D040050CBA7</string> |
338 | <key>history</key> | 338 | <key>history</key> |
339 | <array> | 339 | <array> |
340 | <string>B5731B8B0E4310180008024F</string> | 340 | <string>B5731B8B0E4310180008024F</string> |
@@ -344,16 +344,17 @@ | @@ -344,16 +344,17 @@ | ||
344 | <string>B5F3B7370E43683600E001FD</string> | 344 | <string>B5F3B7370E43683600E001FD</string> |
345 | <string>B567EF5C0E4EE4FC001E238F</string> | 345 | <string>B567EF5C0E4EE4FC001E238F</string> |
346 | <string>B567EF5D0E4EE4FC001E238F</string> | 346 | <string>B567EF5D0E4EE4FC001E238F</string> |
347 | - <string>B5B3BF120E63470F0071D39F</string> | ||
348 | - <string>B5B3BF150E63470F0071D39F</string> | ||
349 | - <string>B5B3BF190E63470F0071D39F</string> | ||
350 | - <string>B5B3BF5D0E634B5D0071D39F</string> | ||
351 | <string>B500B54C0E635A3200744D82</string> | 347 | <string>B500B54C0E635A3200744D82</string> |
352 | - <string>B500B57E0E635BC700744D82</string> | 348 | + <string>B5CF35640E7A7B2C0050CBA7</string> |
353 | - <string>B500B57F0E635BC700744D82</string> | 349 | + <string>B5CF36FC0E7A8C380050CBA7</string> |
354 | - <string>B500B5800E635BC700744D82</string> | 350 | + <string>B5CF36FE0E7A8C380050CBA7</string> |
355 | - <string>B500B5810E635BC700744D82</string> | 351 | + <string>B5CF36FF0E7A8C380050CBA7</string> |
356 | - <string>B500B5910E635CE900744D82</string> | 352 | + <string>B5CF37000E7A8C380050CBA7</string> |
353 | + <string>B5CF37010E7A8C380050CBA7</string> | ||
354 | + <string>B5CF37100E7A8C7F0050CBA7</string> | ||
355 | + <string>B5CF37110E7A8C7F0050CBA7</string> | ||
356 | + <string>B5CF37120E7A8C7F0050CBA7</string> | ||
357 | + <string>B5CF36FB0E7A8C380050CBA7</string> | ||
357 | </array> | 358 | </array> |
358 | <key>prevStack</key> | 359 | <key>prevStack</key> |
359 | <array> | 360 | <array> |
@@ -374,6 +375,87 @@ | @@ -374,6 +375,87 @@ | ||
374 | <string>B567EF630E4EE4FC001E238F</string> | 375 | <string>B567EF630E4EE4FC001E238F</string> |
375 | <string>B5B3BC690E62DA0E0071D39F</string> | 376 | <string>B5B3BC690E62DA0E0071D39F</string> |
376 | <string>B5B3BC6C0E62DA0E0071D39F</string> | 377 | <string>B5B3BC6C0E62DA0E0071D39F</string> |
378 | + <string>B5CF35450E7A73EC0050CBA7</string> | ||
379 | + <string>B5CF35460E7A73EC0050CBA7</string> | ||
380 | + <string>B5CF35470E7A73EC0050CBA7</string> | ||
381 | + <string>B5CF35680E7A7B2C0050CBA7</string> | ||
382 | + <string>B5CF35690E7A7B2C0050CBA7</string> | ||
383 | + <string>B5CF356A0E7A7B2C0050CBA7</string> | ||
384 | + <string>B5CF356B0E7A7B2C0050CBA7</string> | ||
385 | + <string>B5CF356C0E7A7B2C0050CBA7</string> | ||
386 | + <string>B5CF356D0E7A7B2C0050CBA7</string> | ||
387 | + <string>B5CF356F0E7A7B2C0050CBA7</string> | ||
388 | + <string>B5CF35700E7A7B2C0050CBA7</string> | ||
389 | + <string>B5CF357D0E7A7C790050CBA7</string> | ||
390 | + <string>B5CF358E0E7A7F470050CBA7</string> | ||
391 | + <string>B5CF35A90E7A84A00050CBA7</string> | ||
392 | + <string>B5CF35AA0E7A84A00050CBA7</string> | ||
393 | + <string>B5CF35AB0E7A84A00050CBA7</string> | ||
394 | + <string>B5CF35AC0E7A84A00050CBA7</string> | ||
395 | + <string>B5CF35AD0E7A84A00050CBA7</string> | ||
396 | + <string>B5CF35AE0E7A84A00050CBA7</string> | ||
397 | + <string>B5CF35AF0E7A84A00050CBA7</string> | ||
398 | + <string>B5CF35B00E7A84A00050CBA7</string> | ||
399 | + <string>B5CF35B10E7A84A00050CBA7</string> | ||
400 | + <string>B5CF35B20E7A84A00050CBA7</string> | ||
401 | + <string>B5CF35B30E7A84A00050CBA7</string> | ||
402 | + <string>B5CF35B40E7A84A00050CBA7</string> | ||
403 | + <string>B5CF35B50E7A84A00050CBA7</string> | ||
404 | + <string>B5CF35B60E7A84A00050CBA7</string> | ||
405 | + <string>B5CF35B70E7A84A00050CBA7</string> | ||
406 | + <string>B5CF35B80E7A84A00050CBA7</string> | ||
407 | + <string>B5CF35B90E7A84A00050CBA7</string> | ||
408 | + <string>B5CF35CC0E7A85360050CBA7</string> | ||
409 | + <string>B5CF35CD0E7A85360050CBA7</string> | ||
410 | + <string>B5CF35CE0E7A85360050CBA7</string> | ||
411 | + <string>B5CF35E20E7A85A50050CBA7</string> | ||
412 | + <string>B5CF35EC0E7A85E00050CBA7</string> | ||
413 | + <string>B5CF36770E7A88A60050CBA7</string> | ||
414 | + <string>B5CF36780E7A88A60050CBA7</string> | ||
415 | + <string>B5CF36790E7A88A60050CBA7</string> | ||
416 | + <string>B5CF367A0E7A88A60050CBA7</string> | ||
417 | + <string>B5CF367B0E7A88A60050CBA7</string> | ||
418 | + <string>B5CF367C0E7A88A60050CBA7</string> | ||
419 | + <string>B5CF367D0E7A88A60050CBA7</string> | ||
420 | + <string>B5CF367E0E7A88A60050CBA7</string> | ||
421 | + <string>B5CF367F0E7A88A60050CBA7</string> | ||
422 | + <string>B5CF36800E7A88A60050CBA7</string> | ||
423 | + <string>B5CF36810E7A88A60050CBA7</string> | ||
424 | + <string>B5CF36820E7A88A60050CBA7</string> | ||
425 | + <string>B5CF36830E7A88A60050CBA7</string> | ||
426 | + <string>B5CF36840E7A88A60050CBA7</string> | ||
427 | + <string>B5CF36850E7A88A60050CBA7</string> | ||
428 | + <string>B5CF36860E7A88A60050CBA7</string> | ||
429 | + <string>B5CF36870E7A88A60050CBA7</string> | ||
430 | + <string>B5CF36880E7A88A60050CBA7</string> | ||
431 | + <string>B5CF36890E7A88A60050CBA7</string> | ||
432 | + <string>B5CF368A0E7A88A60050CBA7</string> | ||
433 | + <string>B5CF368B0E7A88A60050CBA7</string> | ||
434 | + <string>B5CF368C0E7A88A60050CBA7</string> | ||
435 | + <string>B5CF368D0E7A88A60050CBA7</string> | ||
436 | + <string>B5CF368E0E7A88A60050CBA7</string> | ||
437 | + <string>B5CF368F0E7A88A60050CBA7</string> | ||
438 | + <string>B5CF36900E7A88A60050CBA7</string> | ||
439 | + <string>B5CF36910E7A88A60050CBA7</string> | ||
440 | + <string>B5CF36BE0E7A89F10050CBA7</string> | ||
441 | + <string>B5CF36BF0E7A89F10050CBA7</string> | ||
442 | + <string>B5CF36C80E7A8A610050CBA7</string> | ||
443 | + <string>B5CF36EC0E7A8B440050CBA7</string> | ||
444 | + <string>B5CF37030E7A8C380050CBA7</string> | ||
445 | + <string>B5CF37040E7A8C380050CBA7</string> | ||
446 | + <string>B5CF37050E7A8C380050CBA7</string> | ||
447 | + <string>B5CF37060E7A8C380050CBA7</string> | ||
448 | + <string>B5CF37070E7A8C380050CBA7</string> | ||
449 | + <string>B5CF37080E7A8C380050CBA7</string> | ||
450 | + <string>B5CF37090E7A8C380050CBA7</string> | ||
451 | + <string>B5CF370A0E7A8C380050CBA7</string> | ||
452 | + <string>B5CF370B0E7A8C380050CBA7</string> | ||
453 | + <string>B5CF370C0E7A8C380050CBA7</string> | ||
454 | + <string>B5CF370D0E7A8C380050CBA7</string> | ||
455 | + <string>B5CF370E0E7A8C380050CBA7</string> | ||
456 | + <string>B5CF37130E7A8C7F0050CBA7</string> | ||
457 | + <string>B5CF37140E7A8C7F0050CBA7</string> | ||
458 | + <string>B5CF37150E7A8C7F0050CBA7</string> | ||
377 | </array> | 459 | </array> |
378 | </dict> | 460 | </dict> |
379 | <key>SplitCount</key> | 461 | <key>SplitCount</key> |
@@ -385,14 +467,14 @@ | @@ -385,14 +467,14 @@ | ||
385 | <key>GeometryConfiguration</key> | 467 | <key>GeometryConfiguration</key> |
386 | <dict> | 468 | <dict> |
387 | <key>Frame</key> | 469 | <key>Frame</key> |
388 | - <string>{{0, 0}, {1313, 780}}</string> | 470 | + <string>{{0, 0}, {1098, 836}}</string> |
389 | <key>RubberWindowFrame</key> | 471 | <key>RubberWindowFrame</key> |
390 | - <string>120 130 1647 920 0 0 1920 1178 </string> | 472 | + <string>224 81 1432 976 0 0 1920 1178 </string> |
391 | </dict> | 473 | </dict> |
392 | <key>Module</key> | 474 | <key>Module</key> |
393 | <string>PBXNavigatorGroup</string> | 475 | <string>PBXNavigatorGroup</string> |
394 | <key>Proportion</key> | 476 | <key>Proportion</key> |
395 | - <string>780pt</string> | 477 | + <string>836pt</string> |
396 | </dict> | 478 | </dict> |
397 | <dict> | 479 | <dict> |
398 | <key>ContentConfiguration</key> | 480 | <key>ContentConfiguration</key> |
@@ -405,9 +487,9 @@ | @@ -405,9 +487,9 @@ | ||
405 | <key>GeometryConfiguration</key> | 487 | <key>GeometryConfiguration</key> |
406 | <dict> | 488 | <dict> |
407 | <key>Frame</key> | 489 | <key>Frame</key> |
408 | - <string>{{0, 785}, {1313, 94}}</string> | 490 | + <string>{{0, 841}, {1098, 94}}</string> |
409 | <key>RubberWindowFrame</key> | 491 | <key>RubberWindowFrame</key> |
410 | - <string>120 130 1647 920 0 0 1920 1178 </string> | 492 | + <string>224 81 1432 976 0 0 1920 1178 </string> |
411 | </dict> | 493 | </dict> |
412 | <key>Module</key> | 494 | <key>Module</key> |
413 | <string>XCDetailModule</string> | 495 | <string>XCDetailModule</string> |
@@ -416,7 +498,7 @@ | @@ -416,7 +498,7 @@ | ||
416 | </dict> | 498 | </dict> |
417 | </array> | 499 | </array> |
418 | <key>Proportion</key> | 500 | <key>Proportion</key> |
419 | - <string>1313pt</string> | 501 | + <string>1098pt</string> |
420 | </dict> | 502 | </dict> |
421 | </array> | 503 | </array> |
422 | <key>Name</key> | 504 | <key>Name</key> |
@@ -431,9 +513,9 @@ | @@ -431,9 +513,9 @@ | ||
431 | </array> | 513 | </array> |
432 | <key>TableOfContents</key> | 514 | <key>TableOfContents</key> |
433 | <array> | 515 | <array> |
434 | - <string>B500B5930E635CE900744D82</string> | 516 | + <string>B5CF35490E7A73EC0050CBA7</string> |
435 | <string>1CE0B1FE06471DED0097A5F4</string> | 517 | <string>1CE0B1FE06471DED0097A5F4</string> |
436 | - <string>B500B5940E635CE900744D82</string> | 518 | + <string>B5CF354A0E7A73EC0050CBA7</string> |
437 | <string>1CE0B20306471E060097A5F4</string> | 519 | <string>1CE0B20306471E060097A5F4</string> |
438 | <string>1CE0B20506471E060097A5F4</string> | 520 | <string>1CE0B20506471E060097A5F4</string> |
439 | </array> | 521 | </array> |
@@ -567,15 +649,16 @@ | @@ -567,15 +649,16 @@ | ||
567 | <integer>5</integer> | 649 | <integer>5</integer> |
568 | <key>WindowOrderList</key> | 650 | <key>WindowOrderList</key> |
569 | <array> | 651 | <array> |
570 | - <string>B500B5A20E635CFE00744D82</string> | 652 | + <string>1C530D57069F1CE1000CFCEE</string> |
571 | - <string>B500B5A30E635CFE00744D82</string> | 653 | + <string>B5CF35540E7A73EC0050CBA7</string> |
654 | + <string>B5CF35550E7A73EC0050CBA7</string> | ||
572 | <string>B5ABC8410E24CDE70072F422</string> | 655 | <string>B5ABC8410E24CDE70072F422</string> |
573 | - <string>1CD10A99069EF8BA00B06720</string> | ||
574 | <string>1C78EAAD065D492600B07095</string> | 656 | <string>1C78EAAD065D492600B07095</string> |
657 | + <string>1CD10A99069EF8BA00B06720</string> | ||
575 | <string>/Users/ben/asi-http-request/asi-http-request.xcodeproj</string> | 658 | <string>/Users/ben/asi-http-request/asi-http-request.xcodeproj</string> |
576 | </array> | 659 | </array> |
577 | <key>WindowString</key> | 660 | <key>WindowString</key> |
578 | - <string>120 130 1647 920 0 0 1920 1178 </string> | 661 | + <string>224 81 1432 976 0 0 1920 1178 </string> |
579 | <key>WindowToolsV3</key> | 662 | <key>WindowToolsV3</key> |
580 | <array> | 663 | <array> |
581 | <dict> | 664 | <dict> |
@@ -591,6 +674,8 @@ | @@ -591,6 +674,8 @@ | ||
591 | <key>Dock</key> | 674 | <key>Dock</key> |
592 | <array> | 675 | <array> |
593 | <dict> | 676 | <dict> |
677 | + <key>BecomeActive</key> | ||
678 | + <true/> | ||
594 | <key>ContentConfiguration</key> | 679 | <key>ContentConfiguration</key> |
595 | <dict> | 680 | <dict> |
596 | <key>PBXProjectModuleGUID</key> | 681 | <key>PBXProjectModuleGUID</key> |
@@ -603,18 +688,16 @@ | @@ -603,18 +688,16 @@ | ||
603 | <key>GeometryConfiguration</key> | 688 | <key>GeometryConfiguration</key> |
604 | <dict> | 689 | <dict> |
605 | <key>Frame</key> | 690 | <key>Frame</key> |
606 | - <string>{{0, 0}, {1440, 536}}</string> | 691 | + <string>{{0, 0}, {1279, 533}}</string> |
607 | <key>RubberWindowFrame</key> | 692 | <key>RubberWindowFrame</key> |
608 | - <string>259 150 1440 818 0 0 1920 1178 </string> | 693 | + <string>329 218 1279 815 0 0 1920 1178 </string> |
609 | </dict> | 694 | </dict> |
610 | <key>Module</key> | 695 | <key>Module</key> |
611 | <string>PBXNavigatorGroup</string> | 696 | <string>PBXNavigatorGroup</string> |
612 | <key>Proportion</key> | 697 | <key>Proportion</key> |
613 | - <string>536pt</string> | 698 | + <string>533pt</string> |
614 | </dict> | 699 | </dict> |
615 | <dict> | 700 | <dict> |
616 | - <key>BecomeActive</key> | ||
617 | - <true/> | ||
618 | <key>ContentConfiguration</key> | 701 | <key>ContentConfiguration</key> |
619 | <dict> | 702 | <dict> |
620 | <key>PBXProjectModuleGUID</key> | 703 | <key>PBXProjectModuleGUID</key> |
@@ -629,9 +712,9 @@ | @@ -629,9 +712,9 @@ | ||
629 | <key>GeometryConfiguration</key> | 712 | <key>GeometryConfiguration</key> |
630 | <dict> | 713 | <dict> |
631 | <key>Frame</key> | 714 | <key>Frame</key> |
632 | - <string>{{0, 541}, {1440, 236}}</string> | 715 | + <string>{{0, 538}, {1279, 236}}</string> |
633 | <key>RubberWindowFrame</key> | 716 | <key>RubberWindowFrame</key> |
634 | - <string>259 150 1440 818 0 0 1920 1178 </string> | 717 | + <string>329 218 1279 815 0 0 1920 1178 </string> |
635 | </dict> | 718 | </dict> |
636 | <key>Module</key> | 719 | <key>Module</key> |
637 | <string>PBXBuildResultsModule</string> | 720 | <string>PBXBuildResultsModule</string> |
@@ -640,7 +723,7 @@ | @@ -640,7 +723,7 @@ | ||
640 | </dict> | 723 | </dict> |
641 | </array> | 724 | </array> |
642 | <key>Proportion</key> | 725 | <key>Proportion</key> |
643 | - <string>777pt</string> | 726 | + <string>774pt</string> |
644 | </dict> | 727 | </dict> |
645 | </array> | 728 | </array> |
646 | <key>Name</key> | 729 | <key>Name</key> |
@@ -654,14 +737,14 @@ | @@ -654,14 +737,14 @@ | ||
654 | <key>TableOfContents</key> | 737 | <key>TableOfContents</key> |
655 | <array> | 738 | <array> |
656 | <string>B5ABC8410E24CDE70072F422</string> | 739 | <string>B5ABC8410E24CDE70072F422</string> |
657 | - <string>B500B5950E635CE900744D82</string> | 740 | + <string>B5CF354B0E7A73EC0050CBA7</string> |
658 | <string>1CD0528F0623707200166675</string> | 741 | <string>1CD0528F0623707200166675</string> |
659 | <string>XCMainBuildResultsModuleGUID</string> | 742 | <string>XCMainBuildResultsModuleGUID</string> |
660 | </array> | 743 | </array> |
661 | <key>ToolbarConfiguration</key> | 744 | <key>ToolbarConfiguration</key> |
662 | <string>xcode.toolbar.config.buildV3</string> | 745 | <string>xcode.toolbar.config.buildV3</string> |
663 | <key>WindowString</key> | 746 | <key>WindowString</key> |
664 | - <string>259 150 1440 818 0 0 1920 1178 </string> | 747 | + <string>329 218 1279 815 0 0 1920 1178 </string> |
665 | <key>WindowToolGUID</key> | 748 | <key>WindowToolGUID</key> |
666 | <string>B5ABC8410E24CDE70072F422</string> | 749 | <string>B5ABC8410E24CDE70072F422</string> |
667 | <key>WindowToolIsVisible</key> | 750 | <key>WindowToolIsVisible</key> |
@@ -740,6 +823,8 @@ | @@ -740,6 +823,8 @@ | ||
740 | <array> | 823 | <array> |
741 | <string>Name</string> | 824 | <string>Name</string> |
742 | <real>151</real> | 825 | <real>151</real> |
826 | + <string>Type</string> | ||
827 | + <real>84</real> | ||
743 | <string>Value</string> | 828 | <string>Value</string> |
744 | <real>85</real> | 829 | <real>85</real> |
745 | <string>Summary</string> | 830 | <string>Summary</string> |
@@ -748,10 +833,10 @@ | @@ -748,10 +833,10 @@ | ||
748 | <key>Frame</key> | 833 | <key>Frame</key> |
749 | <string>{{713, 0}, {851, 339}}</string> | 834 | <string>{{713, 0}, {851, 339}}</string> |
750 | <key>RubberWindowFrame</key> | 835 | <key>RubberWindowFrame</key> |
751 | - <string>60 308 1564 676 0 0 1920 1178 </string> | 836 | + <string>179 278 1564 676 0 0 1920 1178 </string> |
752 | </dict> | 837 | </dict> |
753 | <key>RubberWindowFrame</key> | 838 | <key>RubberWindowFrame</key> |
754 | - <string>60 308 1564 676 0 0 1920 1178 </string> | 839 | + <string>179 278 1564 676 0 0 1920 1178 </string> |
755 | </dict> | 840 | </dict> |
756 | <key>Module</key> | 841 | <key>Module</key> |
757 | <string>PBXDebugSessionModule</string> | 842 | <string>PBXDebugSessionModule</string> |
@@ -774,18 +859,18 @@ | @@ -774,18 +859,18 @@ | ||
774 | <key>TableOfContents</key> | 859 | <key>TableOfContents</key> |
775 | <array> | 860 | <array> |
776 | <string>1CD10A99069EF8BA00B06720</string> | 861 | <string>1CD10A99069EF8BA00B06720</string> |
777 | - <string>B500B5960E635CE900744D82</string> | 862 | + <string>B5CF354C0E7A73EC0050CBA7</string> |
778 | <string>1C162984064C10D400B95A72</string> | 863 | <string>1C162984064C10D400B95A72</string> |
779 | - <string>B500B5970E635CE900744D82</string> | 864 | + <string>B5CF354D0E7A73EC0050CBA7</string> |
780 | - <string>B500B5980E635CE900744D82</string> | 865 | + <string>B5CF354E0E7A73EC0050CBA7</string> |
781 | - <string>B500B5990E635CE900744D82</string> | 866 | + <string>B5CF354F0E7A73EC0050CBA7</string> |
782 | - <string>B500B59A0E635CE900744D82</string> | 867 | + <string>B5CF35500E7A73EC0050CBA7</string> |
783 | - <string>B500B59B0E635CE900744D82</string> | 868 | + <string>B5CF35510E7A73EC0050CBA7</string> |
784 | </array> | 869 | </array> |
785 | <key>ToolbarConfiguration</key> | 870 | <key>ToolbarConfiguration</key> |
786 | <string>xcode.toolbar.config.debugV3</string> | 871 | <string>xcode.toolbar.config.debugV3</string> |
787 | <key>WindowString</key> | 872 | <key>WindowString</key> |
788 | - <string>60 308 1564 676 0 0 1920 1178 </string> | 873 | + <string>179 278 1564 676 0 0 1920 1178 </string> |
789 | <key>WindowToolGUID</key> | 874 | <key>WindowToolGUID</key> |
790 | <string>1CD10A99069EF8BA00B06720</string> | 875 | <string>1CD10A99069EF8BA00B06720</string> |
791 | <key>WindowToolIsVisible</key> | 876 | <key>WindowToolIsVisible</key> |
@@ -807,14 +892,12 @@ | @@ -807,14 +892,12 @@ | ||
807 | <key>Dock</key> | 892 | <key>Dock</key> |
808 | <array> | 893 | <array> |
809 | <dict> | 894 | <dict> |
810 | - <key>BecomeActive</key> | ||
811 | - <true/> | ||
812 | <key>ContentConfiguration</key> | 895 | <key>ContentConfiguration</key> |
813 | <dict> | 896 | <dict> |
814 | <key>PBXProjectModuleGUID</key> | 897 | <key>PBXProjectModuleGUID</key> |
815 | <string>1CDD528C0622207200134675</string> | 898 | <string>1CDD528C0622207200134675</string> |
816 | <key>PBXProjectModuleLabel</key> | 899 | <key>PBXProjectModuleLabel</key> |
817 | - <string>ASIHTTPCookie.m</string> | 900 | + <string></string> |
818 | <key>StatusBarVisibility</key> | 901 | <key>StatusBarVisibility</key> |
819 | <true/> | 902 | <true/> |
820 | </dict> | 903 | </dict> |
@@ -835,6 +918,8 @@ | @@ -835,6 +918,8 @@ | ||
835 | <string>212pt</string> | 918 | <string>212pt</string> |
836 | </dict> | 919 | </dict> |
837 | <dict> | 920 | <dict> |
921 | + <key>BecomeActive</key> | ||
922 | + <true/> | ||
838 | <key>ContentConfiguration</key> | 923 | <key>ContentConfiguration</key> |
839 | <dict> | 924 | <dict> |
840 | <key>PBXProjectModuleGUID</key> | 925 | <key>PBXProjectModuleGUID</key> |
@@ -870,8 +955,8 @@ | @@ -870,8 +955,8 @@ | ||
870 | <key>TableOfContents</key> | 955 | <key>TableOfContents</key> |
871 | <array> | 956 | <array> |
872 | <string>1C530D57069F1CE1000CFCEE</string> | 957 | <string>1C530D57069F1CE1000CFCEE</string> |
873 | - <string>B5B3BE4F0E633CE50071D39F</string> | 958 | + <string>B5CF35C20E7A84E30050CBA7</string> |
874 | - <string>B5B3BE500E633CE50071D39F</string> | 959 | + <string>B5CF35C30E7A84E30050CBA7</string> |
875 | <string>1CDD528C0622207200134675</string> | 960 | <string>1CDD528C0622207200134675</string> |
876 | <string>1CD0528E0623707200166675</string> | 961 | <string>1CD0528E0623707200166675</string> |
877 | </array> | 962 | </array> |
@@ -911,18 +996,18 @@ | @@ -911,18 +996,18 @@ | ||
911 | <key>GeometryConfiguration</key> | 996 | <key>GeometryConfiguration</key> |
912 | <dict> | 997 | <dict> |
913 | <key>Frame</key> | 998 | <key>Frame</key> |
914 | - <string>{{0, 0}, {985, 866}}</string> | 999 | + <string>{{0, 0}, {1211, 827}}</string> |
915 | <key>RubberWindowFrame</key> | 1000 | <key>RubberWindowFrame</key> |
916 | - <string>433 271 985 907 0 0 1920 1178 </string> | 1001 | + <string>562 242 1211 868 0 0 1920 1178 </string> |
917 | </dict> | 1002 | </dict> |
918 | <key>Module</key> | 1003 | <key>Module</key> |
919 | <string>PBXDebugCLIModule</string> | 1004 | <string>PBXDebugCLIModule</string> |
920 | <key>Proportion</key> | 1005 | <key>Proportion</key> |
921 | - <string>866pt</string> | 1006 | + <string>827pt</string> |
922 | </dict> | 1007 | </dict> |
923 | </array> | 1008 | </array> |
924 | <key>Proportion</key> | 1009 | <key>Proportion</key> |
925 | - <string>866pt</string> | 1010 | + <string>827pt</string> |
926 | </dict> | 1011 | </dict> |
927 | </array> | 1012 | </array> |
928 | <key>Name</key> | 1013 | <key>Name</key> |
@@ -936,13 +1021,13 @@ | @@ -936,13 +1021,13 @@ | ||
936 | <key>TableOfContents</key> | 1021 | <key>TableOfContents</key> |
937 | <array> | 1022 | <array> |
938 | <string>1C78EAAD065D492600B07095</string> | 1023 | <string>1C78EAAD065D492600B07095</string> |
939 | - <string>B500B5A00E635CFE00744D82</string> | 1024 | + <string>B5CF35520E7A73EC0050CBA7</string> |
940 | <string>1C78EAAC065D492600B07095</string> | 1025 | <string>1C78EAAC065D492600B07095</string> |
941 | </array> | 1026 | </array> |
942 | <key>ToolbarConfiguration</key> | 1027 | <key>ToolbarConfiguration</key> |
943 | <string>xcode.toolbar.config.consoleV3</string> | 1028 | <string>xcode.toolbar.config.consoleV3</string> |
944 | <key>WindowString</key> | 1029 | <key>WindowString</key> |
945 | - <string>433 271 985 907 0 0 1920 1178 </string> | 1030 | + <string>562 242 1211 868 0 0 1920 1178 </string> |
946 | <key>WindowToolGUID</key> | 1031 | <key>WindowToolGUID</key> |
947 | <string>1C78EAAD065D492600B07095</string> | 1032 | <string>1C78EAAD065D492600B07095</string> |
948 | <key>WindowToolIsVisible</key> | 1033 | <key>WindowToolIsVisible</key> |
This diff could not be displayed because it is too large.
This diff was suppressed by a .gitattributes entry.
-
Please register or login to post a comment