1818#import " AppDelegate.h"
1919#import " CCPackageCocos2dEnabler.h"
2020#import " CCPackageManager_private.h"
21- #import " CCPackagesTestFixtures.h"
21+ #import " CCPackagesTestFixturesAndHelpers.h"
22+ #import " CCPackageDownloadManager.h"
2223
2324
2425static NSString *const PACKAGE_BASE_URL = @" http://manager.test" ;
@@ -113,6 +114,7 @@ - (void)setUp
113114 [CCFileUtils sharedFileUtils ].searchResolutionsOrder = [@[CCFileUtilsSuffixiPhoneHD] mutableCopy ];
114115
115116 [[NSUserDefaults standardUserDefaults ] setObject: nil forKey: PACKAGE_STORAGE_USERDEFAULTS_KEY];
117+ [[NSUserDefaults standardUserDefaults ] synchronize ];
116118
117119 [NSURLProtocol registerClass: [CCPackageManagerTestURLProtocol class ]];
118120}
@@ -274,7 +276,7 @@ - (void)testDownloadOfPackageWithDifferentInstallPath
274276
275277 _packageManager.installedPackagesPath = customInstallPath;
276278
277- CCPackage *package = [CCPackagesTestFixtures testPackageWithInstallFolderPath: _packageManager.installedPackagesPath ];
279+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageInitial ];
278280
279281 [_packageManager downloadPackage: package enableAfterDownload: NO ];
280282
@@ -287,7 +289,7 @@ - (void)testDownloadOfPackageWithDifferentInstallPath
287289
288290- (void )testEnablePackage
289291{
290- CCPackage *package = [CCPackagesTestFixtures testPackageWithInstallFolderPath: _packageManager.installedPackagesPath ];
292+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageInitial ];
291293
292294 NSString *pathToPackage = [[[NSBundle mainBundle ] bundlePath ] stringByAppendingPathComponent: @" Resources-shared/Packages/testpackage-iOS-phonehd_unzipped" ];
293295 package.installURL = [[NSURL fileURLWithPath: pathToPackage] URLByAppendingPathComponent: @" testpackage-iOS-phonehd" ];
@@ -304,7 +306,8 @@ - (void)testEnablePackage
304306
305307- (void )testEnableNonDisabledPackage
306308{
307- CCPackage *package = [CCPackagesTestFixtures testPackageWithStatus: CCPackageStatusInitial installFolderPath: _packageManager.installedPackagesPath];
309+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageWithStatus: CCPackageStatusInitial installFolderPath: _packageManager
310+ .installedPackagesPath];
308311
309312 NSError *error;
310313 BOOL success = [_packageManager enablePackage: package error: &error];
@@ -317,7 +320,8 @@ - (void)testEnableNonDisabledPackage
317320
318321- (void )testDisablePackage
319322{
320- CCPackage *package = [CCPackagesTestFixtures testPackageWithStatus: CCPackageStatusInstalledEnabled installFolderPath: _packageManager.installedPackagesPath];
323+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageWithStatus: CCPackageStatusInstalledEnabled installFolderPath: _packageManager
324+ .installedPackagesPath];
321325
322326 NSError *error;
323327 BOOL success = [_packageManager disablePackage: package error: &error];
@@ -330,7 +334,8 @@ - (void)testDisablePackage
330334
331335- (void )testDisableNonEnabledPackage
332336{
333- CCPackage *package = [CCPackagesTestFixtures testPackageWithStatus: CCPackageStatusInitial installFolderPath: _packageManager.installedPackagesPath];
337+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageWithStatus: CCPackageStatusInitial installFolderPath: _packageManager
338+ .installedPackagesPath];
334339
335340 NSError *error;
336341 BOOL success = [_packageManager disablePackage: package error: &error];
@@ -343,7 +348,8 @@ - (void)testDisableNonEnabledPackage
343348
344349- (void )testDeleteInstalledPackage
345350{
346- CCPackage *package = [CCPackagesTestFixtures testPackageWithStatus: CCPackageStatusInstalledEnabled installFolderPath: _packageManager.installedPackagesPath];
351+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageWithStatus: CCPackageStatusInstalledEnabled installFolderPath: _packageManager
352+ .installedPackagesPath];
347353 [_packageManager.packages addObject: package];
348354
349355 NSArray *urls = [self copyOfURLsOfPackage: package];
@@ -353,16 +359,7 @@ - (void)testDeleteInstalledPackage
353359
354360 XCTAssertTrue (success);
355361
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]);
366363
367364 NSFileManager *fileManager = [NSFileManager defaultManager ];
368365 XCTAssertFalse ([fileManager fileExistsAtPath: package.installURL.path]);
@@ -374,7 +371,8 @@ - (void)testDeleteInstalledPackage
374371
375372- (void )testDeleteUnzippedPackage
376373{
377- CCPackage *package = [CCPackagesTestFixtures testPackageWithStatus: CCPackageStatusUnzipped installFolderPath: _packageManager.installedPackagesPath];
374+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageWithStatus: CCPackageStatusUnzipped installFolderPath: _packageManager
375+ .installedPackagesPath];
378376 [_packageManager.packages addObject: package];
379377
380378 NSArray *urls = [self copyOfURLsOfPackage: package];
@@ -391,7 +389,8 @@ - (void)testDeleteUnzippedPackage
391389
392390- (void )testDeleteDownloadedPackage
393391{
394- CCPackage *package = [CCPackagesTestFixtures testPackageWithStatus: CCPackageStatusDownloaded installFolderPath: _packageManager.installedPackagesPath];
392+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageWithStatus: CCPackageStatusDownloaded installFolderPath: _packageManager
393+ .installedPackagesPath];
395394 [_packageManager.packages addObject: package];
396395
397396 NSArray *urls = [self copyOfURLsOfPackage: package];
@@ -416,7 +415,7 @@ - (void)assertURLsAreNilledStatusIsDeleted:(CCPackage *)package
416415
417416- (void )testDeleteUnzippingPackage
418417{
419- CCPackage *package = [CCPackagesTestFixtures testPackageWithInstallFolderPath: _packageManager.installedPackagesPath ];
418+ CCPackage *package = [CCPackagesTestFixturesAndHelpers testPackageInitial ];
420419 package.status = CCPackageStatusUnzipping;
421420 package.localDownloadURL = [NSURL fileURLWithPath: @" /Foo" ];
422421 package.unzipURL = [NSURL fileURLWithPath: @" /Baa" ];
@@ -436,17 +435,31 @@ - (void)testDeleteUnzippingPackage
436435 XCTAssertEqual (package.status , CCPackageStatusUnzipping);
437436}
438437
439- /*
440438- (void )testCancelDownload
441439{
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 );
443452}
444453
445- - (void)testLoadPackages
454+ - (void )testCancelDownloadOfPackageThatIsInstalled
446455{
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);
448462}
449- */
450463
451464- (void )testAllOtherDownloadRelatedMethods
452465{
@@ -459,6 +472,67 @@ - (void)testAllOtherDownloadRelatedMethods
459472 */
460473}
461474
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+
462536
463537#pragma mark - CCPackageManagerDelegate
464538
@@ -505,7 +579,7 @@ - (NSString *)customFolderName:(CCPackage *)package packageContents:(NSArray *)p
505579
506580- (void )waitForDelegateToReturn
507581{
508- [CCPackagesTestFixtures waitForCondition: ^bool {
582+ [CCPackagesTestFixturesAndHelpers waitForCondition: ^bool {
509583 return !_managerReturnedFailed && !_managerReturnedSuccessfully;
510584 }];
511585}
0 commit comments