18
18
#import " AppDelegate.h"
19
19
#import " CCPackageCocos2dEnabler.h"
20
20
#import " CCPackageManager_private.h"
21
- #import " CCPackagesTestFixtures.h"
21
+ #import " CCPackagesTestFixturesAndHelpers.h"
22
+ #import " CCPackageDownloadManager.h"
22
23
23
24
24
25
static NSString *const PACKAGE_BASE_URL = @" http://manager.test" ;
@@ -113,6 +114,7 @@ - (void)setUp
113
114
[CCFileUtils sharedFileUtils ].searchResolutionsOrder = [@[CCFileUtilsSuffixiPhoneHD] mutableCopy ];
114
115
115
116
[[NSUserDefaults standardUserDefaults ] setObject: nil forKey: PACKAGE_STORAGE_USERDEFAULTS_KEY];
117
+ [[NSUserDefaults standardUserDefaults ] synchronize ];
116
118
117
119
[NSURLProtocol registerClass: [CCPackageManagerTestURLProtocol class ]];
118
120
}
@@ -274,7 +276,7 @@ - (void)testDownloadOfPackageWithDifferentInstallPath
274
276
275
277
_packageManager.installedPackagesPath = customInstallPath;
276
278
277
- CCPackage *package = [CCPackagesTestFixtures testPackageWithInstallFolderPath: _packageManager.installedPackagesPath ];
279
+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageInitial ];
278
280
279
281
[_packageManager downloadPackage: package enableAfterDownload: NO ];
280
282
@@ -287,7 +289,7 @@ - (void)testDownloadOfPackageWithDifferentInstallPath
287
289
288
290
- (void )testEnablePackage
289
291
{
290
- CCPackage *package = [CCPackagesTestFixtures testPackageWithInstallFolderPath: _packageManager.installedPackagesPath ];
292
+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageInitial ];
291
293
292
294
NSString *pathToPackage = [[[NSBundle mainBundle ] bundlePath ] stringByAppendingPathComponent: @" Resources-shared/Packages/testpackage-iOS-phonehd_unzipped" ];
293
295
package.installURL = [[NSURL fileURLWithPath: pathToPackage] URLByAppendingPathComponent: @" testpackage-iOS-phonehd" ];
@@ -304,7 +306,8 @@ - (void)testEnablePackage
304
306
305
307
- (void )testEnableNonDisabledPackage
306
308
{
307
- CCPackage *package = [CCPackagesTestFixtures testPackageWithStatus: CCPackageStatusInitial installFolderPath: _packageManager.installedPackagesPath];
309
+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageWithStatus: CCPackageStatusInitial installFolderPath: _packageManager
310
+ .installedPackagesPath];
308
311
309
312
NSError *error;
310
313
BOOL success = [_packageManager enablePackage: package error: &error];
@@ -317,7 +320,8 @@ - (void)testEnableNonDisabledPackage
317
320
318
321
- (void )testDisablePackage
319
322
{
320
- CCPackage *package = [CCPackagesTestFixtures testPackageWithStatus: CCPackageStatusInstalledEnabled installFolderPath: _packageManager.installedPackagesPath];
323
+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageWithStatus: CCPackageStatusInstalledEnabled installFolderPath: _packageManager
324
+ .installedPackagesPath];
321
325
322
326
NSError *error;
323
327
BOOL success = [_packageManager disablePackage: package error: &error];
@@ -330,7 +334,8 @@ - (void)testDisablePackage
330
334
331
335
- (void )testDisableNonEnabledPackage
332
336
{
333
- CCPackage *package = [CCPackagesTestFixtures testPackageWithStatus: CCPackageStatusInitial installFolderPath: _packageManager.installedPackagesPath];
337
+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageWithStatus: CCPackageStatusInitial installFolderPath: _packageManager
338
+ .installedPackagesPath];
334
339
335
340
NSError *error;
336
341
BOOL success = [_packageManager disablePackage: package error: &error];
@@ -343,7 +348,8 @@ - (void)testDisableNonEnabledPackage
343
348
344
349
- (void )testDeleteInstalledPackage
345
350
{
346
- CCPackage *package = [CCPackagesTestFixtures testPackageWithStatus: CCPackageStatusInstalledEnabled installFolderPath: _packageManager.installedPackagesPath];
351
+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageWithStatus: CCPackageStatusInstalledEnabled installFolderPath: _packageManager
352
+ .installedPackagesPath];
347
353
[_packageManager.packages addObject: package];
348
354
349
355
NSArray *urls = [self copyOfURLsOfPackage: package];
@@ -353,16 +359,7 @@ - (void)testDeleteInstalledPackage
353
359
354
360
XCTAssertTrue (success);
355
361
356
- BOOL isInSearchPath = NO ;
357
- for (NSString *aSearchPath in [CCFileUtils sharedFileUtils ].searchPath )
358
- {
359
- if ([aSearchPath isEqualToString: package.installURL.path])
360
- {
361
- isInSearchPath = YES ;
362
- }
363
- }
364
-
365
- XCTAssertFalse (isInSearchPath);
362
+ XCTAssertFalse ([CCPackagesTestFixturesAndHelpers isURLInCocos2dSearchPath: package.installURL]);
366
363
367
364
NSFileManager *fileManager = [NSFileManager defaultManager ];
368
365
XCTAssertFalse ([fileManager fileExistsAtPath: package.installURL.path]);
@@ -374,7 +371,8 @@ - (void)testDeleteInstalledPackage
374
371
375
372
- (void )testDeleteUnzippedPackage
376
373
{
377
- CCPackage *package = [CCPackagesTestFixtures testPackageWithStatus: CCPackageStatusUnzipped installFolderPath: _packageManager.installedPackagesPath];
374
+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageWithStatus: CCPackageStatusUnzipped installFolderPath: _packageManager
375
+ .installedPackagesPath];
378
376
[_packageManager.packages addObject: package];
379
377
380
378
NSArray *urls = [self copyOfURLsOfPackage: package];
@@ -391,7 +389,8 @@ - (void)testDeleteUnzippedPackage
391
389
392
390
- (void )testDeleteDownloadedPackage
393
391
{
394
- CCPackage *package = [CCPackagesTestFixtures testPackageWithStatus: CCPackageStatusDownloaded installFolderPath: _packageManager.installedPackagesPath];
392
+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageWithStatus: CCPackageStatusDownloaded installFolderPath: _packageManager
393
+ .installedPackagesPath];
395
394
[_packageManager.packages addObject: package];
396
395
397
396
NSArray *urls = [self copyOfURLsOfPackage: package];
@@ -416,7 +415,7 @@ - (void)assertURLsAreNilledStatusIsDeleted:(CCPackage *)package
416
415
417
416
- (void )testDeleteUnzippingPackage
418
417
{
419
- CCPackage *package = [CCPackagesTestFixtures testPackageWithInstallFolderPath: _packageManager.installedPackagesPath ];
418
+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageInitial ];
420
419
package.status = CCPackageStatusUnzipping;
421
420
package.localDownloadURL = [NSURL fileURLWithPath: @" /Foo" ];
422
421
package.unzipURL = [NSURL fileURLWithPath: @" /Baa" ];
@@ -436,17 +435,31 @@ - (void)testDeleteUnzippingPackage
436
435
XCTAssertEqual (package.status , CCPackageStatusUnzipping);
437
436
}
438
437
439
- /*
440
438
- (void )testCancelDownload
441
439
{
442
- XCTFail(@"Not implemented yet.");
440
+ _packageManager.baseURL = [NSURL URLWithString: PACKAGE_BASE_URL];
441
+ CCPackage *package = [_packageManager downloadPackageWithName: @" testpackage" enableAfterDownload: YES ];
442
+
443
+ [_packageManager cancelDownloadOfPackage: package];
444
+
445
+ NSFileManager *fileManager = [NSFileManager defaultManager ];
446
+ NSArray *filesInDownloadFolder = [fileManager contentsOfDirectoryAtPath: _packageManager.downloadManager.downloadPath error: nil ];
447
+
448
+ XCTAssertEqual (filesInDownloadFolder.count , 0 );
449
+ XCTAssertEqual (_packageManager.downloadManager .allDownloads .count , 0 );
450
+ XCTAssertEqual (package.status , CCPackageStatusInitial);
451
+ XCTAssertEqual (_packageManager.allPackages .count , 1 );
443
452
}
444
453
445
- - (void)testLoadPackages
454
+ - (void )testCancelDownloadOfPackageThatIsInstalled
446
455
{
447
- XCTFail(@"Not implemented yet.");
456
+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageWithStatus: CCPackageStatusInstalledDisabled installFolderPath: _packageManager
457
+ .installedPackagesPath];
458
+
459
+ [_packageManager cancelDownloadOfPackage: package];
460
+
461
+ XCTAssertEqual (package.status , CCPackageStatusInstalledDisabled);
448
462
}
449
- */
450
463
451
464
- (void )testAllOtherDownloadRelatedMethods
452
465
{
@@ -459,6 +472,67 @@ - (void)testAllOtherDownloadRelatedMethods
459
472
*/
460
473
}
461
474
475
+ - (void )testLoadPackagesReEnable
476
+ {
477
+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageWithStatus: CCPackageStatusInstalledDisabled installFolderPath: _packageManager.installedPackagesPath];
478
+ // To simulate the loadPackages we need an installed but not actually enabled package just the status has to state it is enabled.
479
+ package.status = CCPackageStatusInstalledEnabled;
480
+
481
+ CCPackage *package2 = [CCPackagesTestFixturesAndHelpers testPackageInitial ];
482
+
483
+ NSArray *packages = @[[package toDictionary ], [package2 toDictionary ]];
484
+
485
+ [[NSUserDefaults standardUserDefaults ] setValue: packages forKey: PACKAGE_STORAGE_USERDEFAULTS_KEY];
486
+ [[NSUserDefaults standardUserDefaults ] synchronize ];
487
+
488
+ [_packageManager loadPackages ];
489
+
490
+ XCTAssertEqual (_packageManager.allPackages .count , 2 );
491
+ XCTAssertTrue ([CCPackagesTestFixturesAndHelpers isURLInCocos2dSearchPath: package.installURL]);
492
+ }
493
+
494
+ - (void )testLoadPackagesResumeDownloads
495
+ {
496
+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageInitial ];
497
+ package.status = CCPackageStatusDownloadPaused;
498
+ package.enableOnDownload = NO ;
499
+
500
+ NSString *fileName = [NSString stringWithFormat: @" %@ .zip" , [package standardIdentifier ]];
501
+ package.localDownloadURL = [NSURL fileURLWithPath: [_packageManager.downloadManager.downloadPath stringByAppendingPathComponent: fileName]];
502
+
503
+ NSArray *packages = @[[package toDictionary ]];
504
+
505
+ [[NSUserDefaults standardUserDefaults ] setValue: packages forKey: PACKAGE_STORAGE_USERDEFAULTS_KEY];
506
+ [[NSUserDefaults standardUserDefaults ] synchronize ];
507
+
508
+ [_packageManager loadPackages ];
509
+
510
+ [self waitForDelegateToReturn ];
511
+
512
+ XCTAssertTrue (_managerReturnedSuccessfully);
513
+ CCPackage *loadedPackage = _packageManager.allPackages [0 ];
514
+ XCTAssertEqual (loadedPackage.status , CCPackageStatusInstalledDisabled);
515
+ }
516
+
517
+ - (void )testLoadPackagesRestartUnzipping
518
+ {
519
+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageWithStatus: CCPackageStatusDownloaded installFolderPath: _packageManager.installedPackagesPath];
520
+ package.enableOnDownload = NO ;
521
+
522
+ NSArray *packages = @[[package toDictionary ]];
523
+
524
+ [[NSUserDefaults standardUserDefaults ] setValue: packages forKey: PACKAGE_STORAGE_USERDEFAULTS_KEY];
525
+ [[NSUserDefaults standardUserDefaults ] synchronize ];
526
+
527
+ [_packageManager loadPackages ];
528
+
529
+ [self waitForDelegateToReturn ];
530
+
531
+ XCTAssertTrue (_managerReturnedSuccessfully);
532
+ CCPackage *loadedPackage = _packageManager.allPackages [0 ];
533
+ XCTAssertEqual (loadedPackage.status , CCPackageStatusInstalledDisabled);
534
+ }
535
+
462
536
463
537
#pragma mark - CCPackageManagerDelegate
464
538
@@ -505,7 +579,7 @@ - (NSString *)customFolderName:(CCPackage *)package packageContents:(NSArray *)p
505
579
506
580
- (void )waitForDelegateToReturn
507
581
{
508
- [CCPackagesTestFixtures waitForCondition: ^bool {
582
+ [CCPackagesTestFixturesAndHelpers waitForCondition: ^bool {
509
583
return !_managerReturnedFailed && !_managerReturnedSuccessfully;
510
584
}];
511
585
}
0 commit comments