From 3fc4daa447011f25ac677c36a27ae5411e3608df Mon Sep 17 00:00:00 2001 From: audreyso Date: Tue, 3 Jan 2017 11:02:48 -0800 Subject: [PATCH] CB-12018 : updated tests to work with jasmine (promise matcher tests commented out for now) --- package.json | 10 +-- spec/e2e/create.spec.js | 12 ++-- spec/e2e/plugin.spec.js | 2 +- spec/e2e/update.spec.js | 8 +-- spec/support/jasmine.json | 8 +++ spec/unit/AndroidProject.spec.js | 2 +- spec/unit/Api.spec.js | 12 ++-- spec/unit/create.spec.js | 45 +++++++++++--- spec/unit/pluginHandlers/common.spec.js | 28 ++++----- spec/unit/pluginHandlers/handlers.spec.js | 76 +++++++++++------------ spec/unit/run.spec.js | 2 +- 11 files changed, 119 insertions(+), 86 deletions(-) create mode 100644 spec/support/jasmine.json diff --git a/package.json b/package.json index 9bb0c046..0eaf8338 100644 --- a/package.json +++ b/package.json @@ -16,10 +16,10 @@ "apache" ], "scripts": { - "test": "npm run jshint && jasmine-node --color spec/unit", - "cover": "istanbul cover --root bin/templates/cordova --print detail node_modules/jasmine-node/bin/jasmine-node -- spec/unit", - "test-build": "jasmine-node --captureExceptions --color spec/e2e", - "jshint": "node node_modules/jshint/bin/jshint bin && node node_modules/jshint/bin/jshint spec" + "test": "npm run jshint && jasmine", + "cover": "istanbul cover --root bin/templates/cordova --print detail jasmine", + "test-build": "jasmine --captureExceptions --color spec/e2e/*.spec.js", + "jshint": "jshint bin && jshint spec" }, "author": "Apache Software Foundation", "license": "Apache-2.0", @@ -41,7 +41,7 @@ ], "devDependencies": { "istanbul": "^0.4.2", - "jasmine-node": "^1.14.5", + "jasmine": "^2.5.2", "jshint": "^2.6.0", "promise-matchers": "~0", "rewire": "^2.1.3" diff --git a/spec/e2e/create.spec.js b/spec/e2e/create.spec.js index 35563641..d6465354 100644 --- a/spec/e2e/create.spec.js +++ b/spec/e2e/create.spec.js @@ -35,42 +35,42 @@ function createAndBuild(projectname, projectid, done) { describe('create', function() { - it('create project with ascii name, no spaces', function(done) { + it('Test#001 : create project with ascii name, no spaces', function(done) { var projectname = 'testcreate'; var projectid = 'com.test.create.app1'; createAndBuild(projectname, projectid, done); }, CREATE_TIMEOUT); - it('create project with ascii name, and spaces', function(done) { + it('Test#002 : create project with ascii name, and spaces', function(done) { var projectname = 'test create'; var projectid = 'com.test.create.app2'; createAndBuild(projectname, projectid, done); }, CREATE_TIMEOUT); - it('create project with unicode name, no spaces', function(done) { + it('Test#003 : create project with unicode name, no spaces', function(done) { var projectname = '応応応応用用用用'; var projectid = 'com.test.create.app3'; createAndBuild(projectname, projectid, done); }, CREATE_TIMEOUT); - it('create project with unicode name, and spaces', function(done) { + it('Test#004 : create project with unicode name, and spaces', function(done) { var projectname = '応応応応 用用用用'; var projectid = 'com.test.create.app4'; createAndBuild(projectname, projectid, done); }, CREATE_TIMEOUT); - it('create project with ascii+unicode name, no spaces', function(done) { + it('Test#005 : create project with ascii+unicode name, no spaces', function(done) { var projectname = '応応応応hello用用用用'; var projectid = 'com.test.create.app5'; createAndBuild(projectname, projectid, done); }, CREATE_TIMEOUT); - it('create project with ascii+unicode name, and spaces', function(done) { + it('Test#006 : create project with ascii+unicode name, and spaces', function(done) { var projectname = '応応応応 hello 用用用用'; var projectid = 'com.test.create.app6'; diff --git a/spec/e2e/plugin.spec.js b/spec/e2e/plugin.spec.js index 17c4258b..7cc50328 100644 --- a/spec/e2e/plugin.spec.js +++ b/spec/e2e/plugin.spec.js @@ -24,7 +24,7 @@ var PLUGIN_ADD_TIMEOUT = 90000; describe('plugin add', function() { - it('create project and add a plugin with framework', function(done) { + it('Test#001 : create project and add a plugin with framework', function(done) { var projectname = 'testpluginframework'; var projectid = 'com.test.plugin.framework'; var fakePluginPath = path.join(__dirname, 'fixtures/cordova-plugin-fake'); diff --git a/spec/e2e/update.spec.js b/spec/e2e/update.spec.js index 8a08c20b..a2296c0d 100644 --- a/spec/e2e/update.spec.js +++ b/spec/e2e/update.spec.js @@ -56,7 +56,7 @@ function testUpdate(projectname, projectid, createfrom, updatefrom, doBuild, don describe('preparing fixtures', function () { - it('cloning old platform', function (done) { + it('Test#001 : cloning old platform', function (done) { var command = util.format('git clone %s --depth=1 --branch %s %s', PLATFORM_GIT_URL, platformOld.version, platformOld.path); shell.rm('-rf', platformOld.path); @@ -70,7 +70,7 @@ describe('preparing fixtures', function () { describe('update', function() { - it('should update major version and build the project', function(done) { + it('Test#002 : should update major version and build the project', function(done) { var projectname = 'testupdate'; var projectid = 'com.test.update.app1'; @@ -78,7 +78,7 @@ describe('update', function() { }, UPDATE_TIMEOUT); - it('should downgrade major version and build the project', function(done) { + it('Test#003 : should downgrade major version and build the project', function(done) { var projectname = 'testupdate'; var projectid = 'com.test.update.app2'; @@ -90,7 +90,7 @@ describe('update', function() { describe('cleanup', function () { - it('remove cloned old platform', function() { + it('Test#004 : remove cloned old platform', function() { shell.rm('-rf', platformOld.path); }); diff --git a/spec/support/jasmine.json b/spec/support/jasmine.json new file mode 100644 index 00000000..e04f8140 --- /dev/null +++ b/spec/support/jasmine.json @@ -0,0 +1,8 @@ +{ + "spec_dir": "spec", + "spec_files": [ + "unit/**/*[sS]pec.js" + ], + "stopSpecOnExpectationFailure": false, + "random": false +} diff --git a/spec/unit/AndroidProject.spec.js b/spec/unit/AndroidProject.spec.js index 8aec35a7..32ff0978 100644 --- a/spec/unit/AndroidProject.spec.js +++ b/spec/unit/AndroidProject.spec.js @@ -23,7 +23,7 @@ var android_project = path.join(__dirname, '../fixtures/android_project'); describe('AndroidProject class', function() { describe('getPackageName method', function() { - it('should return an android project\'s proper package name', function() { + it('Test#001 : should return an android project\'s proper package name', function() { expect(AndroidProject.getProjectFile(android_project).getPackageName()) .toEqual('com.alunny.childapp'); }); diff --git a/spec/unit/Api.spec.js b/spec/unit/Api.spec.js index 2f29c0e1..83f801e4 100644 --- a/spec/unit/Api.spec.js +++ b/spec/unit/Api.spec.js @@ -39,11 +39,11 @@ describe('addPlugin method', function () { beforeEach(function() { var pluginManager = jasmine.createSpyObj('pluginManager', ['addPlugin']); - pluginManager.addPlugin.andReturn(Q()); - spyOn(common.PluginManager, 'get').andReturn(pluginManager); + pluginManager.addPlugin.and.returnValue(Q()); + spyOn(common.PluginManager, 'get').and.returnValue(pluginManager); var projectSpy = jasmine.createSpyObj('AndroidProject', ['getPackageName', 'write', 'isClean']); - spyOn(AndroidProject, 'getProjectFile').andReturn(projectSpy); + spyOn(AndroidProject, 'getProjectFile').and.returnValue(projectSpy); oldClean = Api.__get__('Api.prototype.clean'); Api.__set__('Api.prototype.clean', Q); @@ -51,14 +51,14 @@ describe('addPlugin method', function () { fail = jasmine.createSpy('fail'); gradleBuilder = jasmine.createSpyObj('gradleBuilder', ['prepBuildFiles']); - spyOn(builders, 'getBuilder').andReturn(gradleBuilder); + spyOn(builders, 'getBuilder').and.returnValue(gradleBuilder); }); afterEach(function () { Api.__set__('Api.prototype.clean', oldClean); }); - it('should call gradleBuilder.prepBuildFiles for every plugin with frameworks', function(done) { + it('Test#001 : should call gradleBuilder.prepBuildFiles for every plugin with frameworks', function(done) { api.addPlugin(new PluginInfo(path.join(FIXTURES, 'cordova-plugin-fake'))) .catch(fail) .fin(function () { @@ -68,7 +68,7 @@ describe('addPlugin method', function () { }); }); - it('shouldn\'t trigger gradleBuilder.prepBuildFiles for plugins without android frameworks', function(done) { + it('Test#002 : shouldn\'t trigger gradleBuilder.prepBuildFiles for plugins without android frameworks', function(done) { api.addPlugin(new PluginInfo(path.join(FIXTURES, 'cordova-plugin-fake-ios-frameworks'))) .catch(fail) .fin(function () { diff --git a/spec/unit/create.spec.js b/spec/unit/create.spec.js index 2a1038e8..1b010dcb 100644 --- a/spec/unit/create.spec.js +++ b/spec/unit/create.spec.js @@ -18,8 +18,6 @@ */ /* jshint laxcomma:true */ -require("promise-matchers"); - var create = require("../../bin/lib/create"); describe("create", function () { @@ -48,14 +46,27 @@ describe("create", function () { ]; valid.forEach(function(package_name) { - it("should accept " + package_name, function(done) { - expect(create.validatePackageName(package_name)).toHaveBeenResolved(done); + it("Test#001 : should accept " + package_name, function(done) { + return create.validatePackageName(package_name) + .then(function() { + //resolved + done(); + }).fail(function(err) { + expect(err).toBeUndefined(); + }); }); }); invalid.forEach(function(package_name) { - it("should reject " + package_name, function(done) { - expect(create.validatePackageName(package_name)).toHaveBeenRejected(done); + it("Test#002 : should reject " + package_name, function(done) { + return create.validatePackageName(package_name) + .then(function() { + //shouldn't be here + expect(true).toBe(false); + }).fail(function(err) { + expect(err).toBeDefined(); + done(); + }); }); }); }); @@ -73,15 +84,29 @@ describe("create", function () { ]; valid.forEach(function(project_name) { - it("should accept " + project_name, function(done) { - expect(create.validateProjectName(project_name)).toHaveBeenResolved(done); + it("Test#003 : should accept " + project_name, function(done) { + return create.validateProjectName(project_name) + .then(function() { + //resolved + done(); + }).fail(function(err) { + expect(err).toBeUndefined(); + }); }); }); invalid.forEach(function(project_name) { - it("should reject " + project_name, function(done) { - expect(create.validateProjectName(project_name)).toHaveBeenRejected(done); + it("Test#004 : should reject " + project_name, function(done) { + return create.validateProjectName(project_name) + .then(function() { + //shouldn't be here + expect(true).toBe(false); + }).fail(function(err) { + expect(err).toBeDefined(); + done(); + }); }); }); }); }); + diff --git a/spec/unit/pluginHandlers/common.spec.js b/spec/unit/pluginHandlers/common.spec.js index 485f33b3..0a4a4b4e 100644 --- a/spec/unit/pluginHandlers/common.spec.js +++ b/spec/unit/pluginHandlers/common.spec.js @@ -38,13 +38,13 @@ var copyNewFile = common.__get__('copyNewFile'); describe('common platform handler', function() { describe('copyFile', function() { - it('should throw if source path not found', function(){ + it('Test#001 : should throw if source path not found', function(){ shell.rm('-rf', src); expect(function(){copyFile(test_dir, src, project_dir, dest);}) .toThrow(new Error('"' + src + '" not found!')); }); - it('should throw if src not in plugin directory', function(){ + it('Test#002 : should throw if src not in plugin directory', function(){ shell.mkdir('-p', project_dir); fs.writeFileSync(non_plugin_file, 'contents', 'utf-8'); var outside_file = '../non_plugin_file'; @@ -53,7 +53,7 @@ describe('common platform handler', function() { shell.rm('-rf', test_dir); }); - it('should allow symlink src, if inside plugin', function(){ + it('Test#003 : should allow symlink src, if inside plugin', function(){ shell.mkdir('-p', java_dir); fs.writeFileSync(java_file, 'contents', 'utf-8'); @@ -66,7 +66,7 @@ describe('common platform handler', function() { shell.rm('-rf', project_dir); }); - it('should throw if symlink is linked to a file outside the plugin', function(){ + it('Test#004 : should throw if symlink is linked to a file outside the plugin', function(){ shell.mkdir('-p', java_dir); fs.writeFileSync(non_plugin_file, 'contents', 'utf-8'); @@ -80,7 +80,7 @@ describe('common platform handler', function() { shell.rm('-rf', project_dir); }); - it('should throw if dest is outside the project directory', function(){ + it('Test#005 : should throw if dest is outside the project directory', function(){ shell.mkdir('-p', java_dir); fs.writeFileSync(java_file, 'contents', 'utf-8'); expect(function(){copyFile(test_dir, java_file, project_dir, non_plugin_file);}). @@ -88,11 +88,11 @@ describe('common platform handler', function() { shell.rm('-rf', project_dir); }); - it('should call mkdir -p on target path', function(){ + it('Test#006 : should call mkdir -p on target path', function(){ shell.mkdir('-p', java_dir); fs.writeFileSync(java_file, 'contents', 'utf-8'); - var s = spyOn(shell, 'mkdir').andCallThrough(); + var s = spyOn(shell, 'mkdir').and.callThrough(); var resolvedDest = path.resolve(project_dir, dest); copyFile(test_dir, java_file, project_dir, dest); @@ -102,11 +102,11 @@ describe('common platform handler', function() { shell.rm('-rf', project_dir); }); - it('should call cp source/dest paths', function(){ + it('Test#007 : should call cp source/dest paths', function(){ shell.mkdir('-p', java_dir); fs.writeFileSync(java_file, 'contents', 'utf-8'); - var s = spyOn(shell, 'cp').andCallThrough(); + var s = spyOn(shell, 'cp').and.callThrough(); var resolvedDest = path.resolve(project_dir, dest); copyFile(test_dir, java_file, project_dir, dest); @@ -119,7 +119,7 @@ describe('common platform handler', function() { }); describe('copyNewFile', function () { - it('should throw if target path exists', function(){ + it('Test#008 : should throw if target path exists', function(){ shell.mkdir('-p', dest); expect(function(){copyNewFile(test_dir, src, project_dir, dest);}). toThrow(new Error('"' + dest + '" already exists!')); @@ -137,21 +137,21 @@ describe('common platform handler', function() { shell.rm('-rf', java_dir); }); - it('should call fs.unlinkSync on the provided paths', function(){ - var s = spyOn(fs, 'unlinkSync').andCallThrough(); + it('Test#009 : should call fs.unlinkSync on the provided paths', function(){ + var s = spyOn(fs, 'unlinkSync').and.callThrough(); deleteJava(project_dir, java_file); expect(s).toHaveBeenCalled(); expect(s).toHaveBeenCalledWith(path.resolve(project_dir, java_file)); }); - it('should delete empty directories after removing source code in a java src path hierarchy', function(){ + it('Test#010 : should delete empty directories after removing source code in a java src path hierarchy', function(){ deleteJava(project_dir, java_file); expect(fs.existsSync(java_file)).not.toBe(true); expect(fs.existsSync(java_dir)).not.toBe(true); expect(fs.existsSync(path.join(src,'one'))).not.toBe(true); }); - it('should never delete the top-level src directory, even if all plugins added were removed', function(){ + it('Test#011 : should never delete the top-level src directory, even if all plugins added were removed', function(){ deleteJava(project_dir, java_file); expect(fs.existsSync(src)).toBe(true); }); diff --git a/spec/unit/pluginHandlers/handlers.spec.js b/spec/unit/pluginHandlers/handlers.spec.js index be7b95bb..bbed8385 100644 --- a/spec/unit/pluginHandlers/handlers.spec.js +++ b/spec/unit/pluginHandlers/handlers.spec.js @@ -50,7 +50,7 @@ describe('android project handler', function() { beforeEach(function() { shell.mkdir('-p', temp); dummyProject = AndroidProject.getProjectFile(temp); - copyFileSpy.reset(); + copyFileSpy.calls.reset(); common.__set__('copyFile', copyFileSpy); }); @@ -60,18 +60,18 @@ describe('android project handler', function() { }); describe('of elements', function() { - it('should copy files', function () { + it('Test#001 : should copy files', function () { android['lib-file'].install(valid_libs[0], dummyPluginInfo, dummyProject); expect(copyFileSpy).toHaveBeenCalledWith(dummyplugin, 'src/android/TestLib.jar', temp, path.join('libs', 'TestLib.jar'), false); }); - it('should copy files for Android Studio projects', function () { + it('Test#002 : should copy files for Android Studio projects', function () { android['lib-file'].install(valid_libs[0], dummyPluginInfo, dummyProject, {android_studio: true}); expect(copyFileSpy).toHaveBeenCalledWith(dummyplugin, 'src/android/TestLib.jar', temp, path.join('app', 'libs', 'TestLib.jar'), false); }); }); describe('of elements', function() { - it('should copy files', function () { + it('Test#003 : should copy files', function () { android['resource-file'].install(valid_resources[0], dummyPluginInfo, dummyProject); expect(copyFileSpy).toHaveBeenCalledWith(dummyplugin, 'android-resource.xml', temp, path.join('res', 'xml', 'dummy.xml'), false); }); @@ -82,26 +82,26 @@ describe('android project handler', function() { shell.cp('-rf', android_project, temp); }); - it('should copy stuff from one location to another by calling common.copyFile', function() { + it('Test#004 : should copy stuff from one location to another by calling common.copyFile', function() { android['source-file'].install(valid_source[0], dummyPluginInfo, dummyProject); expect(copyFileSpy) .toHaveBeenCalledWith(dummyplugin, 'src/android/DummyPlugin.java', temp, path.join('src/com/phonegap/plugins/dummyplugin/DummyPlugin.java'), false); }); - it('should install source files to the right location for Android Studio projects', function() { + it('Test#005 : should install source files to the right location for Android Studio projects', function() { android['source-file'].install(valid_source[0], dummyPluginInfo, dummyProject, {android_studio: true}); expect(copyFileSpy) .toHaveBeenCalledWith(dummyplugin, 'src/android/DummyPlugin.java', temp, path.join('app/src/main/java/com/phonegap/plugins/dummyplugin/DummyPlugin.java'), false); }); - it('should throw if source file cannot be found', function() { + it('Test#006 : should throw if source file cannot be found', function() { common.__set__('copyFile', copyFileOrig); expect(function() { android['source-file'].install(invalid_source[0], faultyPluginInfo, dummyProject); - }).toThrow('"' + path.resolve(faultyplugin, 'src/android/NotHere.java') + '" not found!'); + }).toThrow(new Error('"' + path.resolve(faultyplugin, 'src/android/NotHere.java') + '" not found!')); }); - it('should throw if target file already exists', function() { + it('Test#007 : should throw if target file already exists', function() { // write out a file var target = path.resolve(temp, 'src/com/phonegap/plugins/dummyplugin'); shell.mkdir('-p', target); @@ -110,7 +110,7 @@ describe('android project handler', function() { expect(function() { android['source-file'].install(valid_source[0], dummyPluginInfo, dummyProject); - }).toThrow('"' + target + '" already exists!'); + }).toThrow(new Error ('"' + target + '" already exists!')); }); }); @@ -134,23 +134,23 @@ describe('android project handler', function() { common.__set__('copyNewFile', copyNewFileOrig); }); - it('should throw if framework doesn\'t have "src" attribute', function() { + it('Test#008 : should throw if framework doesn\'t have "src" attribute', function() { expect(function() { android.framework.install({}, dummyPluginInfo, dummyProject); }).toThrow(); }); - it('should install framework without "parent" attribute into project root', function() { + it('Test#009 : should install framework without "parent" attribute into project root', function() { var framework = {src: 'plugin-lib'}; android.framework.install(framework, dummyPluginInfo, dummyProject); expect(dummyProject.addSystemLibrary).toHaveBeenCalledWith(dummyProject.projectDir, someString); }); - it('should install framework with "parent" attribute into parent framework dir', function() { + it('Test#010 : should install framework with "parent" attribute into parent framework dir', function() { var childFramework = {src: 'plugin-lib2', parent: 'plugin-lib'}; android.framework.install(childFramework, dummyPluginInfo, dummyProject); expect(dummyProject.addSystemLibrary).toHaveBeenCalledWith(path.resolve(dummyProject.projectDir, childFramework.parent), someString); }); - it('should not copy anything if "custom" attribute is not set', function() { + it('Test#011 : should not copy anything if "custom" attribute is not set', function() { var framework = {src: 'plugin-lib'}; var cpSpy = spyOn(shell, 'cp'); android.framework.install(framework, dummyPluginInfo, dummyProject); @@ -158,14 +158,14 @@ describe('android project handler', function() { expect(cpSpy).not.toHaveBeenCalled(); }); - it('should copy framework sources if "custom" attribute is set', function() { + it('Test#012 : should copy framework sources if "custom" attribute is set', function() { var framework = {src: 'plugin-lib', custom: true}; android.framework.install(framework, dummyPluginInfo, dummyProject); expect(dummyProject.addSubProject).toHaveBeenCalledWith(dummyProject.projectDir, someString); expect(copyNewFileSpy).toHaveBeenCalledWith(dummyPluginInfo.dir, framework.src, dummyProject.projectDir, someString, false); }); - it('should install gradleReference using project.addGradleReference', function() { + it('Test#013 : should install gradleReference using project.addGradleReference', function() { var framework = {src: 'plugin-lib', custom: true, type: 'gradleReference'}; android.framework.install(framework, dummyPluginInfo, dummyProject); expect(copyNewFileSpy).toHaveBeenCalledWith(dummyPluginInfo.dir, framework.src, dummyProject.projectDir, someString, false); @@ -183,13 +183,13 @@ describe('android project handler', function() { platformWwwDest = path.resolve(dummyProject.platformWww, 'plugins', dummyPluginInfo.id, jsModule.src); }); - it('should put module to both www and platform_www when options.usePlatformWww flag is specified', function () { + it('Test#014 : should put module to both www and platform_www when options.usePlatformWww flag is specified', function () { android['js-module'].install(jsModule, dummyPluginInfo, dummyProject, {usePlatformWww: true}); expect(fs.writeFileSync).toHaveBeenCalledWith(wwwDest, jasmine.any(String), 'utf-8'); expect(fs.writeFileSync).toHaveBeenCalledWith(platformWwwDest, jasmine.any(String), 'utf-8'); }); - it('should put module to www only when options.usePlatformWww flag is not specified', function () { + it('Test#015 : should put module to www only when options.usePlatformWww flag is not specified', function () { android['js-module'].install(jsModule, dummyPluginInfo, dummyProject); expect(fs.writeFileSync).toHaveBeenCalledWith(wwwDest, jasmine.any(String), 'utf-8'); expect(fs.writeFileSync).not.toHaveBeenCalledWith(platformWwwDest, jasmine.any(String), 'utf-8'); @@ -205,13 +205,13 @@ describe('android project handler', function() { platformWwwDest = path.resolve(dummyProject.platformWww, asset.target); }); - it('should put asset to both www and platform_www when options.usePlatformWww flag is specified', function () { + it('Test#016 : should put asset to both www and platform_www when options.usePlatformWww flag is specified', function () { android.asset.install(asset, dummyPluginInfo, dummyProject, {usePlatformWww: true}); expect(copyFileSpy).toHaveBeenCalledWith(dummyPluginInfo.dir, asset.src, dummyProject.www, asset.target); expect(copyFileSpy).toHaveBeenCalledWith(dummyPluginInfo.dir, asset.src, dummyProject.platformWww, asset.target); }); - it('should put asset to www only when options.usePlatformWww flag is not specified', function () { + it('Test#017 : should put asset to www only when options.usePlatformWww flag is not specified', function () { android.asset.install(asset, dummyPluginInfo, dummyProject); expect(copyFileSpy).toHaveBeenCalledWith(dummyPluginInfo.dir, asset.src, dummyProject.www, asset.target); expect(copyFileSpy).not.toHaveBeenCalledWith(dummyPluginInfo.dir, asset.src, dummyProject.platformWww, asset.target); @@ -244,21 +244,21 @@ describe('android project handler', function() { common.__set__('deleteJava', deleteJavaOrig); }); - describe('of elements', function(done) { - it('should remove jar files', function () { + describe('of elements', function() { + it('Test#018 : should remove jar files', function () { android['lib-file'].install(valid_libs[0], dummyPluginInfo, dummyProject); android['lib-file'].uninstall(valid_libs[0], dummyPluginInfo, dummyProject); expect(removeFileSpy).toHaveBeenCalledWith(temp, path.join('libs/TestLib.jar')); }); - it('should remove jar files for Android Studio projects', function () { + it('Test#019 : should remove jar files for Android Studio projects', function () { android['lib-file'].install(valid_libs[0], dummyPluginInfo, dummyProject, {android_studio:true}); android['lib-file'].uninstall(valid_libs[0], dummyPluginInfo, dummyProject, {android_studio:true}); expect(removeFileSpy).toHaveBeenCalledWith(temp, path.join('app/libs/TestLib.jar')); }); }); - describe('of elements', function(done) { - it('should remove files', function () { + describe('of elements', function() { + it('Test#020 : should remove files', function () { android['resource-file'].install(valid_resources[0], dummyPluginInfo, dummyProject); android['resource-file'].uninstall(valid_resources[0], dummyPluginInfo, dummyProject); expect(removeFileSpy).toHaveBeenCalledWith(temp, path.join('res/xml/dummy.xml')); @@ -266,12 +266,12 @@ describe('android project handler', function() { }); describe('of elements', function() { - it('should remove stuff by calling common.deleteJava', function() { + it('Test#021 : should remove stuff by calling common.deleteJava', function() { android['source-file'].install(valid_source[0], dummyPluginInfo, dummyProject); android['source-file'].uninstall(valid_source[0], dummyPluginInfo, dummyProject); expect(deleteJavaSpy).toHaveBeenCalledWith(temp, path.join('src/com/phonegap/plugins/dummyplugin/DummyPlugin.java')); }); - it('should remove stuff by calling common.deleteJava for Android Studio projects', function() { + it('Test#022 : should remove stuff by calling common.deleteJava for Android Studio projects', function() { android['source-file'].install(valid_source[0], dummyPluginInfo, dummyProject, {android_studio:true}); android['source-file'].uninstall(valid_source[0], dummyPluginInfo, dummyProject, {android_studio:true}); expect(deleteJavaSpy).toHaveBeenCalledWith(temp, path.join('app/src/main/java/com/phonegap/plugins/dummyplugin/DummyPlugin.java')); @@ -290,30 +290,30 @@ describe('android project handler', function() { spyOn(dummyProject, 'removeGradleReference'); }); - it('should throw if framework doesn\'t have "src" attribute', function() { + it('Test#023 : should throw if framework doesn\'t have "src" attribute', function() { expect(function() { android.framework.uninstall({}, dummyPluginInfo, dummyProject); }).toThrow(); }); - it('should uninstall framework without "parent" attribute into project root', function() { + it('Test#024 : should uninstall framework without "parent" attribute into project root', function() { var framework = {src: 'plugin-lib'}; android.framework.uninstall(framework, dummyPluginInfo, dummyProject); expect(dummyProject.removeSystemLibrary).toHaveBeenCalledWith(dummyProject.projectDir, someString); }); - it('should uninstall framework with "parent" attribute into parent framework dir', function() { + it('Test#025 : should uninstall framework with "parent" attribute into parent framework dir', function() { var childFramework = {src: 'plugin-lib2', parent: 'plugin-lib'}; android.framework.uninstall(childFramework, dummyPluginInfo, dummyProject); expect(dummyProject.removeSystemLibrary).toHaveBeenCalledWith(path.resolve(dummyProject.projectDir, childFramework.parent), someString); }); - it('should remove framework sources if "custom" attribute is set', function() { + it('Test#026 : should remove framework sources if "custom" attribute is set', function() { var framework = {src: 'plugin-lib', custom: true}; android.framework.uninstall(framework, dummyPluginInfo, dummyProject); expect(dummyProject.removeSubProject).toHaveBeenCalledWith(dummyProject.projectDir, someString); expect(removeFileSpy).toHaveBeenCalledWith(dummyProject.projectDir, someString); }); - it('should install gradleReference using project.removeGradleReference', function() { + it('Test#27 : should install gradleReference using project.removeGradleReference', function() { var framework = {src: 'plugin-lib', custom: true, type: 'gradleReference'}; android.framework.uninstall(framework, dummyPluginInfo, dummyProject); expect(removeFileSpy).toHaveBeenCalledWith(dummyProject.projectDir, someString); @@ -333,19 +333,19 @@ describe('android project handler', function() { spyOn(shell, 'rm'); var existsSyncOrig = fs.existsSync; - spyOn(fs, 'existsSync').andCallFake(function (file) { + spyOn(fs, 'existsSync').and.callFake(function (file) { if ([wwwDest, platformWwwDest].indexOf(file) >= 0 ) return true; return existsSyncOrig.call(fs, file); }); }); - it('should put module to both www and platform_www when options.usePlatformWww flag is specified', function () { + it('Test#028 : should put module to both www and platform_www when options.usePlatformWww flag is specified', function () { android['js-module'].uninstall(jsModule, dummyPluginInfo, dummyProject, {usePlatformWww: true}); expect(shell.rm).toHaveBeenCalledWith('-Rf', wwwDest); expect(shell.rm).toHaveBeenCalledWith('-Rf', platformWwwDest); }); - it('should put module to www only when options.usePlatformWww flag is not specified', function () { + it('Test#29 : should put module to www only when options.usePlatformWww flag is not specified', function () { android['js-module'].uninstall(jsModule, dummyPluginInfo, dummyProject); expect(shell.rm).toHaveBeenCalledWith('-Rf', wwwDest); expect(shell.rm).not.toHaveBeenCalledWith('-Rf', platformWwwDest); @@ -363,19 +363,19 @@ describe('android project handler', function() { spyOn(shell, 'rm'); var existsSyncOrig = fs.existsSync; - spyOn(fs, 'existsSync').andCallFake(function (file) { + spyOn(fs, 'existsSync').and.callFake(function (file) { if ([wwwDest, platformWwwDest].indexOf(file) >= 0 ) return true; return existsSyncOrig.call(fs, file); }); }); - it('should put module to both www and platform_www when options.usePlatformWww flag is specified', function () { + it('Test#030 : should put module to both www and platform_www when options.usePlatformWww flag is specified', function () { android.asset.uninstall(asset, dummyPluginInfo, dummyProject, {usePlatformWww: true}); expect(shell.rm).toHaveBeenCalledWith(jasmine.any(String), wwwDest); expect(shell.rm).toHaveBeenCalledWith(jasmine.any(String), platformWwwDest); }); - it('should put module to www only when options.usePlatformWww flag is not specified', function () { + it('Test#31 : should put module to www only when options.usePlatformWww flag is not specified', function () { android.asset.uninstall(asset, dummyPluginInfo, dummyProject); expect(shell.rm).toHaveBeenCalledWith(jasmine.any(String), wwwDest); expect(shell.rm).not.toHaveBeenCalledWith(jasmine.any(String), platformWwwDest); diff --git a/spec/unit/run.spec.js b/spec/unit/run.spec.js index 8c5ff99f..9296d0fb 100644 --- a/spec/unit/run.spec.js +++ b/spec/unit/run.spec.js @@ -28,7 +28,7 @@ describe("run", function () { var emulatorOpts = { emulator: true }; var emptyOpts = {}; - it("should select correct target based on the run opts", function() { + it("Test#001 : should select correct target based on the run opts", function() { expect(getInstallTarget(targetOpts)).toBe("emu"); expect(getInstallTarget(deviceOpts)).toBe("--device"); expect(getInstallTarget(emulatorOpts)).toBe("--emulator");