From be83095edf4ed71bd03c9eef7880885a799e2085 Mon Sep 17 00:00:00 2001 From: Anis Kadri Date: Tue, 19 Jun 2012 16:28:00 -0700 Subject: [PATCH] updating windows create.js and creating node test --- bin/create.js | 1 + bin/tests/test_create_win.js | 108 +++++++++++++++++++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 bin/tests/test_create_win.js diff --git a/bin/create.js b/bin/create.js index 46fd0064..9f704430 100644 --- a/bin/create.js +++ b/bin/create.js @@ -149,6 +149,7 @@ exec('cmd /c copy '+ROOT+'\\framework\\assets\\www\\cordova-'+VERSION+'.js '+PRO exec('cmd /c copy '+ROOT+'\\framework\\cordova-'+VERSION+'.jar '+PROJECT_PATH+'\\libs\\cordova-'+VERSION+'.jar /Y'); // copy in xml +fso.CreateFolder(PROJECT_PATH + '\\res\\xml'); exec('cmd /c copy '+ROOT+'\\framework\\res\\xml\\cordova.xml ' + PROJECT_PATH + '\\res\\xml\\cordova.xml /Y'); exec('cmd /c copy '+ROOT+'\\framework\\res\\xml\\plugins.xml ' + PROJECT_PATH + '\\res\\xml\\plugins.xml /Y'); diff --git a/bin/tests/test_create_win.js b/bin/tests/test_create_win.js new file mode 100644 index 00000000..76dd6aab --- /dev/null +++ b/bin/tests/test_create_win.js @@ -0,0 +1,108 @@ +var build_path = __dirname + '/../..' + project_path = process.env.Temp + '\\example', + package_name = 'org.apache.cordova.example', + package_as_path = 'org/apache/cordova/example', + project_name = 'cordovaExample'; + +var path = require('path'), + fs = require('fs'), + util = require('util'), + assert = require('assert'), + exec = require('child_process').exec, + spawn = require('child_process').spawn; + +var version = fs.readFileSync(build_path + '/VERSION').toString().replace('\r\n', ''); + +assert(version !== undefined); +assert(version !== ''); + +process.on('uncaughtException', function (err) { + console.log('Caught exception: ' + err); + exec('rd /s /q ' + project_path); +}); + +var create_project = spawn('cscript', + [build_path + '/bin/create.js', + project_path, + package_name, + project_name] + ); + +create_project.stderr.on('data', function (data) { + console.log('ps stderr: ' + data); +}); + +create_project.stderr.on('data', function(data) { + console.log(data.toString()); +}); + +create_project.stdout.on('data', function(data) { + console.log(data.toString()); +}); + +create_project.on('exit', function(code) { + assert.equal(code, 0, 'Project did not get created'); + + // make sure the project was created + path.exists(project_path, function(exists) { + assert(exists, 'Project path does not exist'); + }); + + // make sure the build directory was cleaned up + // path.exists(build_path + '/framework/libs', function(exists) { + // assert(!exists, 'libs directory did not get cleaned up'); + // }); + path.exists(build_path + util.format('/framework/assets/cordova-%s.js', version), function(exists) { + assert(!exists, 'javascript file did not get cleaned up'); + }); + path.exists(build_path + util.format('/framework/cordova-%s.jar', version), function(exists) { + assert(!exists, 'jar file did not get cleaned up'); + }); + + // make sure AndroidManifest.xml was added + path.exists(util.format('%s/AndroidManifest.xml', project_path), function(exists) { + assert(exists, 'AndroidManifest.xml did not get created'); + // TODO check that the activity name was properly substituted + }); + + // make sure main Activity was added + path.exists(util.format('%s/src/%s/%s.java', project_path, package_as_path, project_name), function(exists) { + assert(exists, 'Activity did not get created'); + // TODO check that package name and activity name were substitued properly + }); + + // make sure plugins.xml was added + path.exists(util.format('%s/res/xml/plugins.xml', project_path), function(exists) { + assert(exists, 'plugins.xml did not get created'); + }); + + // make sure cordova.xml was added + path.exists(util.format('%s/res/xml/cordova.xml', project_path), function(exists) { + assert(exists, 'plugins.xml did not get created'); + }); + + // make sure cordova.jar was added + path.exists(util.format('%s/libs/cordova-%s.jar', project_path, version), function(exists) { + assert(exists, 'cordova.jar did not get added'); + }); + + // make sure cordova.js was added + path.exists(util.format('%s/assets/www/cordova-%s.js', project_path, version), function(exists) { + assert(exists, 'cordova.js did not get added'); + }); + + // check that project compiles && creates a cordovaExample-debug.apk + // XXX: !@##!@# WINDOWS + exec('ant debug -f ' + project_path + "\\build.xml", function(error, stdout, stderr) { + assert(error == null, "Cordova Android Project does not compile"); + path.exists(util.format('%s/bin/%s-debug.apk', project_path, project_name), + function(exists) { + assert(exists, 'Package did not get created'); + // if project compiles properly just AXE it + exec('rd /s /q ' + project_path); + }); + }); + + +}); +