You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by fi...@apache.org on 2013/01/31 23:03:46 UTC
[3/10] git commit: tweaked up tests for project parsers.
tweaked up tests for project parsers.
Project: http://git-wip-us.apache.org/repos/asf/cordova-cli/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-cli/commit/c1338220
Tree: http://git-wip-us.apache.org/repos/asf/cordova-cli/tree/c1338220
Diff: http://git-wip-us.apache.org/repos/asf/cordova-cli/diff/c1338220
Branch: refs/heads/master
Commit: c133822007740f2d643ae83e5d748c6bcbd5f17e
Parents: 47c4528
Author: Fil Maj <ma...@gmail.com>
Authored: Wed Jan 30 13:27:06 2013 -0800
Committer: Fil Maj <ma...@gmail.com>
Committed: Wed Jan 30 13:27:06 2013 -0800
----------------------------------------------------------------------
spec/metadata/android_parser.spec.js | 5 +-
spec/metadata/blackberry_parser.spec.js | 207 +++++++++++++-------------
spec/metadata/ios_parser.spec.js | 6 +-
3 files changed, 113 insertions(+), 105 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/c1338220/spec/metadata/android_parser.spec.js
----------------------------------------------------------------------
diff --git a/spec/metadata/android_parser.spec.js b/spec/metadata/android_parser.spec.js
index 61eedc1..5429dec 100644
--- a/spec/metadata/android_parser.spec.js
+++ b/spec/metadata/android_parser.spec.js
@@ -24,9 +24,8 @@ var android_parser = require('../../src/metadata/android_parser'),
shell = require('shelljs'),
fs = require('fs'),
et = require('elementtree'),
- tempDir = path.join(__dirname, '..', '..', 'temp'),
- cordova = require('../../cordova');
- projects_path = path.join(__dirname, '..', 'fixtures', 'projects')
+ cordova = require('../../cordova'),
+ projects_path = path.join(__dirname, '..', 'fixtures', 'projects'),
android_path = path.join(projects_path, 'native', 'android_fixture'),
project_path = path.join(projects_path, 'cordova'),
android_project_path = path.join(project_path, 'platforms', 'android');
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/c1338220/spec/metadata/blackberry_parser.spec.js
----------------------------------------------------------------------
diff --git a/spec/metadata/blackberry_parser.spec.js b/spec/metadata/blackberry_parser.spec.js
index cf147ad..79fc786 100644
--- a/spec/metadata/blackberry_parser.spec.js
+++ b/spec/metadata/blackberry_parser.spec.js
@@ -20,25 +20,23 @@
var blackberry_parser = require('../../src/metadata/blackberry_parser'),
config_parser = require('../../src/config_parser'),
path = require('path'),
+ util = require('../../src/util'),
et = require('elementtree'),
shell = require('shelljs'),
cordova = require('../../cordova'),
fs = require('fs'),
- tempDir = path.join(__dirname, '..', '..', 'temp'),
- tempBb = path.join(tempDir, 'platforms', 'blackberry'),
- cfg_path = path.join(__dirname, '..', 'fixtures', 'projects', 'test', 'www', 'config.xml'),
- blackberry_path = path.join(__dirname, '..', 'fixtures', 'projects', 'native', 'blackberry_fixture'),
- blackberry_config = path.join(blackberry_path, 'www', 'config.xml');
+ projects_path = path.join(__dirname, '..', 'fixtures', 'projects'),
+ blackberry_path = path.join(projects_path, 'native', 'blackberry_fixture'),
+ project_path = path.join(projects_path, 'cordova'),
+ blackberry_project_path = path.join(project_path, 'platforms', 'blackberry');
-var cwd = process.cwd();
-
-var original_config = fs.readFileSync(blackberry_config, 'utf-8');
-var orig_www_config = fs.readFileSync(cfg_path, 'utf-8');
+var www_config = path.join(project_path, 'www', 'config.xml');
+var original_www_config = fs.readFileSync(www_config, 'utf-8');
describe('blackberry project parser', function() {
it('should throw an exception with a path that is not a native blackberry project', function() {
expect(function() {
- var project = new blackberry_parser(cwd);
+ var project = new blackberry_parser(process.cwd());
}).toThrow();
});
it('should accept a proper native blackberry project path as construction parameter', function() {
@@ -52,13 +50,16 @@ describe('blackberry project parser', function() {
describe('update_from_config method', function() {
var project, config;
+ var blackberry_config = path.join(blackberry_path, 'www', 'config.xml');
+ var original_blackberry_config = fs.readFileSync(blackberry_config, 'utf-8');
+
beforeEach(function() {
project = new blackberry_parser(blackberry_path);
- config = new config_parser(cfg_path);
+ config = new config_parser(www_config);
});
afterEach(function() {
- fs.writeFileSync(blackberry_config, original_config, 'utf-8');
- fs.writeFileSync(cfg_path, orig_www_config, 'utf-8');
+ fs.writeFileSync(blackberry_config, original_blackberry_config, 'utf-8');
+ fs.writeFileSync(www_config, original_www_config, 'utf-8');
});
it('should throw an exception if a non config_parser object is passed into it', function() {
expect(function() {
@@ -94,8 +95,8 @@ describe('blackberry project parser', function() {
expect(as[1].attrib.uri).toEqual('http://rim.com');
});
it('should update the whitelist when using access elements with uri attributes', function() {
- fs.writeFileSync(cfg_path, fs.readFileSync(cfg_path, 'utf-8').replace(/origin="\*/,'uri="http://rim.com'), 'utf-8');
- config = new config_parser(cfg_path);
+ fs.writeFileSync(www_config, fs.readFileSync(www_config, 'utf-8').replace(/origin="\*/,'uri="http://rim.com'), 'utf-8');
+ config = new config_parser(www_config);
project.update_from_config(config);
var bb_cfg = new et.ElementTree(et.XML(fs.readFileSync(blackberry_config, 'utf-8')));
@@ -106,99 +107,103 @@ describe('blackberry project parser', function() {
});
});
- describe('update_www method', function() {
- var s, parser;
- beforeEach(function() {
- shell.rm('-rf', tempDir);
- cordova.create(tempDir);
- shell.mkdir('-p', tempBb);
- shell.cp('-rf', path.join(blackberry_path, '*'), tempBb);
- parser = new blackberry_parser(tempBb);
- });
+ describe('cross-platform project level methods', function() {
+ var parser, config;
- it('should update all www assets', function() {
- var newFile = path.join(tempDir, 'www', 'somescript.js');
- fs.writeFileSync(newFile, 'alert("sup");', 'utf-8');
- parser.update_www();
- expect(fs.existsSync(path.join(tempBb, 'www', 'somescript.js'))).toBe(true);
- });
- it('should not overwrite the blackberry-specific config.xml', function() {
- var www_cfg = fs.readFileSync(path.join(tempDir, 'www', 'config.xml'), 'utf-8');
- parser.update_www();
- var bb_cfg = fs.readFileSync(path.join(tempBb, 'www', 'config.xml'), 'utf-8');
- expect(bb_cfg).not.toBe(www_cfg);
- });
- it('should inject a reference to webworks.js in index.html', function() {
- parser.update_www();
- var index = fs.readFileSync(path.join(tempBb, 'www', 'index.html'), 'utf-8');
- expect(index).toMatch(/<script type="text\/javascript" src="js\/webworks.js">/i);
- });
- });
+ var blackberry_config = path.join(blackberry_project_path, 'www', 'config.xml');
+ var original_blackberry_config = fs.readFileSync(blackberry_config, 'utf-8');
- describe('update_project method', function() {
- var parser, cfg, s,
- ioFake = function() { s.mostRecentCall.args[1](null, {}); };
beforeEach(function() {
- shell.rm('-rf', tempDir);
- cordova.create(tempDir);
- s = spyOn(require('prompt'), 'get').andReturn(true);
- shell.mkdir('-p', tempBb);
- shell.cp('-rf', path.join(blackberry_path, '*'), tempBb);
- parser = new blackberry_parser(tempBb);
- cfg = new config_parser(path.join(tempDir, 'www', 'config.xml'));
- });
-
- it('should invoke update_www', function() {
- var spyWww = spyOn(parser, 'update_www');
- parser.update_project(cfg);
- ioFake();
- expect(spyWww).toHaveBeenCalled();
+ parser = new blackberry_parser(blackberry_project_path);
+ config = new config_parser(www_config);
});
- it('should invoke update_from_config', function() {
- var spyConfig = spyOn(parser, 'update_from_config');
- parser.update_project(cfg);
- ioFake();
- expect(spyConfig).toHaveBeenCalled();
- });
- it('should invoke get_blackberry_environment if .cordova/config.json file has no BB config', function() {
- var spyEnv = spyOn(parser, 'get_blackberry_environment');
- parser.update_project(cfg);
- expect(spyEnv).toHaveBeenCalled();
- });
- it('should not invoke get_blackberry_environment if .cordova/config.json file has BB config', function() {
- var spyEnv = spyOn(parser, 'get_blackberry_environment');
- fs.writeFileSync(path.join(tempDir, '.cordova', 'config.json'), JSON.stringify({
- blackberry:{
- qnx:{
- }
- }
- }), 'utf-8');
- parser.update_project(cfg);
- expect(spyEnv).not.toHaveBeenCalled();
- });
- it('should write out project properties with no BB config in .cordova/config.json', function() {
- var spyProps = spyOn(parser, 'write_project_properties');
- var cb = jasmine.createSpy();
- runs(function() {
- parser.update_project(cfg, cb);
- ioFake();
+ afterEach(function() {
+ fs.writeFileSync(blackberry_config, original_blackberry_config, 'utf-8');
+ fs.writeFileSync(www_config, original_www_config, 'utf-8');
+ });
+
+ describe('update_www method', function() {
+ it('should update all www assets', function() {
+ var newFile = path.join(project_path, 'www', 'somescript.js');
+ this.after(function() {
+ shell.rm('-f', newFile);
+ });
+ fs.writeFileSync(newFile, 'alert("sup");', 'utf-8');
+ parser.update_www();
+ expect(fs.existsSync(path.join(blackberry_project_path, 'www', 'somescript.js'))).toBe(true);
+ });
+ it('should not overwrite the blackberry-specific config.xml', function() {
+ var www_cfg = fs.readFileSync(path.join(project_path, 'www', 'config.xml'), 'utf-8');
+ parser.update_www();
+ var bb_cfg = fs.readFileSync(blackberry_config, 'utf-8');
+ expect(bb_cfg).not.toBe(www_cfg);
});
- waitsFor(function() { return cb.wasCalled; }, 'update project');
- runs(function() {
- expect(spyProps).toHaveBeenCalled();
+ it('should inject a reference to webworks.js in index.html', function() {
+ parser.update_www();
+ var index = fs.readFileSync(path.join(blackberry_project_path, 'www', 'index.html'), 'utf-8');
+ expect(index).toMatch(/<script type="text\/javascript" src="js\/webworks.js">/i);
+ });
+ it('should call out to util.deleteSvnFolders', function() {
+ var spy = spyOn(util, 'deleteSvnFolders');
+ parser.update_www();
+ expect(spy).toHaveBeenCalled();
});
});
- it('should write out project properties with BB config in .cordova/config.json', function() {
- var spyProps = spyOn(parser, 'write_project_properties');
- var cb = jasmine.createSpy();
- fs.writeFileSync(path.join(tempDir, '.cordova/config.json'), JSON.stringify({
- blackberry:{
- qnx:{
- }
- }
- }), 'utf-8');
- parser.update_project(cfg, cb);
- expect(spyProps).toHaveBeenCalled();
+
+ describe('update_project method', function() {
+ var cordova_config_path = path.join(project_path, '.cordova', 'config.json');
+ var original_config_json = fs.readFileSync(cordova_config_path, 'utf-8');
+ describe('with stubbed out config for BlackBerry SDKs', function() {
+ beforeEach(function() {
+ fs.writeFileSync(cordova_config_path, JSON.stringify({
+ blackberry:{
+ qnx:{
+ }
+ }
+ }), 'utf-8');
+ });
+ afterEach(function() {
+ fs.writeFileSync(cordova_config_path, original_config_json, 'utf-8');
+ });
+ it('should invoke update_www', function() {
+ var spyWww = spyOn(parser, 'update_www');
+ parser.update_project(config);
+ expect(spyWww).toHaveBeenCalled();
+ });
+ it('should invoke update_from_config', function() {
+ var spyConfig = spyOn(parser, 'update_from_config');
+ parser.update_project(config);
+ expect(spyConfig).toHaveBeenCalled();
+ });
+ it('should not invoke get_blackberry_environment', function() {
+ var spyEnv = spyOn(parser, 'get_blackberry_environment');
+ parser.update_project(config);
+ expect(spyEnv).not.toHaveBeenCalled();
+ });
+ it('should write out project properties', function() {
+ var spyProps = spyOn(parser, 'write_project_properties');
+ parser.update_project(config, function() {
+ expect(spyProps).toHaveBeenCalled();
+ });
+ });
+ });
+ describe('with empty BlackBerry SDKs in config', function() {
+ it('should invoke get_blackberry_environment', function() {
+ var spyEnv = spyOn(parser, 'get_blackberry_environment');
+ var promptSpy = spyOn(require('prompt'), 'get');
+ parser.update_project(config);
+ expect(spyEnv).toHaveBeenCalled();
+ });
+ it('should write out project properties', function(done) {
+ var spyProps = spyOn(parser, 'write_project_properties');
+ var promptSpy = spyOn(require('prompt'), 'get');
+ parser.update_project(config, function() {
+ expect(spyProps).toHaveBeenCalled();
+ done();
+ });
+ promptSpy.mostRecentCall.args[1](null, {});
+ });
+ });
});
});
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/c1338220/spec/metadata/ios_parser.spec.js
----------------------------------------------------------------------
diff --git a/spec/metadata/ios_parser.spec.js b/spec/metadata/ios_parser.spec.js
index 0a1e252..b467fef 100644
--- a/spec/metadata/ios_parser.spec.js
+++ b/spec/metadata/ios_parser.spec.js
@@ -25,7 +25,6 @@ var ios_parser = require('../../src/metadata/ios_parser'),
shell = require('shelljs'),
fs = require('fs'),
et = require('elementtree'),
- tempDir = path.join(__dirname, '..', '..', 'temp'),
projects_path = path.join(__dirname, '..', 'fixtures', 'projects')
ios_path = path.join(projects_path, 'native', 'ios_fixture'),
project_path = path.join(projects_path, 'cordova'),
@@ -160,6 +159,11 @@ describe('ios project parser', function() {
parser.update_www();
expect(fs.readFileSync(path.join(ios_project_path, 'www', 'cordova.js'),'utf-8')).toBe(fs.readFileSync(path.join(util.libDirectory, 'cordova-ios', 'CordovaLib', 'cordova.ios.js'), 'utf-8'));
});
+ it('should call out to util.deleteSvnFolders', function() {
+ var spy = spyOn(util, 'deleteSvnFolders');
+ parser.update_www();
+ expect(spy).toHaveBeenCalled();
+ });
});
describe('update_project method', function() {