13
13
#import " CCPackageConstants.h"
14
14
#import " AppDelegate.h"
15
15
16
+
17
+
18
+ @interface CCPackageTestURLProtocol : NSURLProtocol
19
+
20
+ @end
21
+
22
+
23
+ @implementation CCPackageTestURLProtocol
24
+
25
+ + (BOOL )canInitWithRequest : (NSURLRequest *)theRequest
26
+ {
27
+ return [theRequest.URL.scheme caseInsensitiveCompare: @" http" ] == NSOrderedSame;
28
+ }
29
+
30
+ + (NSURLRequest *)canonicalRequestForRequest : (NSURLRequest *)theRequest
31
+ {
32
+ return theRequest;
33
+ }
34
+
35
+ - (void )startLoading
36
+ {
37
+ NSString *fileName = [self .request.URL lastPathComponent ];
38
+
39
+ NSString *pathToPackage = [[NSBundle mainBundle ] pathForResource: [NSString stringWithFormat: @" Resources-shared/Packages/%@ " , fileName] ofType: nil ];
40
+ NSData *data = [NSData dataWithContentsOfFile: pathToPackage];
41
+
42
+ NSHTTPURLResponse *response;
43
+ if (pathToPackage)
44
+ {
45
+ response = [[NSHTTPURLResponse alloc ] initWithURL: self .request.URL
46
+ statusCode: 200
47
+ HTTPVersion: @" HTTP/1.1"
48
+ headerFields: nil ];
49
+ }
50
+ else
51
+ {
52
+ response = [[NSHTTPURLResponse alloc ] initWithURL: self .request.URL
53
+ statusCode: 404
54
+ HTTPVersion: @" HTTP/1.1"
55
+ headerFields: nil ];
56
+ }
57
+
58
+
59
+ id <NSURLProtocolClient > client = [self client ];
60
+ [client URLProtocol: self didLoadData: data];
61
+ [client URLProtocol: self didReceiveResponse: response cacheStoragePolicy: NSURLCacheStorageNotAllowed];
62
+ [client URLProtocolDidFinishLoading: self ];
63
+ }
64
+
65
+ - (void )stopLoading
66
+ {
67
+ NSLog (@" Package test: Something went wrong." );
68
+ }
69
+
70
+ @end
71
+
72
+
73
+ #pragma mark - Test class
74
+
16
75
@interface CCPackageTest : TestBase <CCPackageManagerDelegate>
17
76
18
77
@property (nonatomic , strong ) CCPackage *package;
@@ -24,10 +83,11 @@ @implementation CCPackageTest
24
83
25
84
- (void ) setupPackageTest
26
85
{
86
+ [self setupLocalHTTPRequests ];
87
+
27
88
[self .contentNode removeAllChildren ];
28
89
29
- [[NSUserDefaults standardUserDefaults ] removeObjectForKey: PACKAGE_STORAGE_USERDEFAULTS_KEY];
30
- [[NSUserDefaults standardUserDefaults ] synchronize ];
90
+ [self removePersistedPackages ];
31
91
32
92
[self removeAllPackages ];
33
93
@@ -41,10 +101,21 @@ - (void) setupPackageTest
41
101
42
102
self.package = [[CCPackageManager sharedManager ] downloadPackageWithName: @" testpackage"
43
103
resolution: @" phonehd"
44
- remoteURL: [NSURL URLWithString: @" https ://github.com/NickyWeber/cocos2d_test_resources/raw/master/ testpackage-iOS-phonehd.zip?raw=true " ]
104
+ remoteURL: [NSURL URLWithString: @" http ://package.request.fake/ testpackage-iOS-phonehd.zip" ]
45
105
enableAfterDownload: YES ];
46
106
}
47
107
108
+ - (void )setupLocalHTTPRequests
109
+ {
110
+ [NSURLProtocol registerClass: [CCPackageTestURLProtocol class ]];
111
+ }
112
+
113
+ - (void )removePersistedPackages
114
+ {
115
+ [[NSUserDefaults standardUserDefaults ] removeObjectForKey: PACKAGE_STORAGE_USERDEFAULTS_KEY];
116
+ [[NSUserDefaults standardUserDefaults ] synchronize ];
117
+ }
118
+
48
119
- (void )addLabels
49
120
{
50
121
CGSize winSize = [CCDirector sharedDirector ].viewSize ;
@@ -138,26 +209,31 @@ - (void)packageInstallationFinished:(CCPackage *)package
138
209
- (void )packageInstallationFailed : (CCPackage *)package error : (NSError *)error
139
210
{
140
211
self.subTitle = [NSString stringWithFormat: @" Test failed: installation failed." ];
212
+ [NSURLProtocol unregisterClass: [CCPackageTestURLProtocol class ]];
141
213
}
142
214
143
215
- (void )packageDownloadFinished : (CCPackage *)package
144
216
{
145
217
self.subTitle = [NSString stringWithFormat: @" Download finished" ];
218
+ [NSURLProtocol unregisterClass: [CCPackageTestURLProtocol class ]];
146
219
}
147
220
148
221
- (void )packageDownloadFailed : (CCPackage *)package error : (NSError *)error
149
222
{
150
223
self.subTitle = [NSString stringWithFormat: @" Test failed: download failed." ];
224
+ [NSURLProtocol unregisterClass: [CCPackageTestURLProtocol class ]];
151
225
}
152
226
153
227
- (void )packageUnzippingFinished : (CCPackage *)package
154
228
{
155
229
self.subTitle = [NSString stringWithFormat: @" Unzip finished" ];
230
+ [NSURLProtocol unregisterClass: [CCPackageTestURLProtocol class ]];
156
231
}
157
232
158
233
- (void )packageUnzippingFailed : (CCPackage *)package error : (NSError *)error
159
234
{
160
235
self.subTitle = [NSString stringWithFormat: @" Test failed: unzipping failed." ];
236
+ [NSURLProtocol unregisterClass: [CCPackageTestURLProtocol class ]];
161
237
}
162
238
163
239
- (void )packageDownloadProgress : (CCPackage *)package downloadedBytes : (NSUInteger )downloadedBytes totalBytes : (NSUInteger )totalBytes
@@ -170,5 +246,4 @@ - (void)packageUnzippingProgress:(CCPackage *)package unzippedBytes:(NSUInteger)
170
246
NSLog (@" unzipping... %u / %u " , unzippedBytes, totalBytes);
171
247
}
172
248
173
-
174
249
@end
0 commit comments