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 2012/09/26 22:49:57 UTC
[5/5] git commit: blackberry platform support added.
blackberry platform support added.
Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/commit/8bb37809
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/tree/8bb37809
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/diff/8bb37809
Branch: refs/heads/cordova-client
Commit: 8bb3780908fd949b85c26075f43b28867f482c2c
Parents: a533afb
Author: Fil Maj <ma...@gmail.com>
Authored: Tue Sep 25 23:33:47 2012 -0700
Committer: Fil Maj <ma...@gmail.com>
Committed: Tue Sep 25 23:33:47 2012 -0700
----------------------------------------------------------------------
platforms.js | 2 +-
spec/platform.spec.js | 49 ++++++++++++++++++++++++++++++++++++++++++-
src/platform.js | 9 +++++++-
src/util.js | 3 +-
4 files changed, 58 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/blob/8bb37809/platforms.js
----------------------------------------------------------------------
diff --git a/platforms.js b/platforms.js
index c6c5601..4acc953 100644
--- a/platforms.js
+++ b/platforms.js
@@ -1 +1 @@
-module.exports = ['ios','android'];
+module.exports = ['ios', 'android', 'blackberry'];
http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/blob/8bb37809/spec/platform.spec.js
----------------------------------------------------------------------
diff --git a/spec/platform.spec.js b/spec/platform.spec.js
index 2e05a5a..56bc6d5 100644
--- a/spec/platform.spec.js
+++ b/spec/platform.spec.js
@@ -5,6 +5,7 @@ var cordova = require('../cordova'),
et = require('elementtree'),
config_parser = require('../src/config_parser'),
helper = require('./helper'),
+ platforms = require('../platforms'),
tempDir = path.join(__dirname, '..', 'temp');
var cwd = process.cwd();
@@ -87,14 +88,14 @@ describe('platform command', function() {
var lib = path.join(__dirname, '..', 'lib');
beforeEach(function() {
- ['ios','android'].forEach(function(p) {
+ platforms.forEach(function(p) {
var s = path.join(lib, p);
var d = path.join(lib, p + '-bkup');
shell.mv(s, d);
});
});
afterEach(function() {
- ['ios','android'].forEach(function(p) {
+ platforms.forEach(function(p) {
var s = path.join(lib, p + '-bkup');
var d = path.join(lib, p);
shell.mv(s, d);
@@ -121,8 +122,20 @@ describe('platform command', function() {
expect(s.calls[0].args[0].match(/^git clone.*cordova-ios/)).not.toBeNull();
expect(s.calls[1].args[0].match(/git checkout 2.1.0/)).not.toBeNull();
});
+ it('should clone down the blackberry library and checkout appropriate tag', function() {
+ var s = spyOn(shell, 'exec').andReturn({code:0});
+
+ try {
+ cordova.platform('add', 'blackberry', function() {});
+ } catch(e) {}
+
+ expect(s).toHaveBeenCalled();
+ expect(s.calls[0].args[0].match(/^git clone.*cordova-blackberry/)).not.toBeNull();
+ expect(s.calls[1].args[0].match(/git checkout 2.1.0/)).not.toBeNull();
+ });
it('should add a basic android project');
it('should add a basic ios project');
+ it('should add a basic blackberry project');
});
describe('android', function() {
@@ -190,6 +203,38 @@ describe('platform command', function() {
});
});
});
+ describe('blackberry', function() {
+ it('should add a basic blackberry project', function() {
+ var cb = jasmine.createSpy();
+
+ runs(function() {
+ cordova.platform('add', 'blackberry', cb);
+ });
+ waitsFor(function() { return cb.wasCalled; }, "platform add blackberry callback");
+ runs(function() {
+ expect(fs.existsSync(path.join(tempDir, 'platforms', 'blackberry', 'www'))).toBe(true);
+ });
+ });
+ it('should use the correct application name based on what is in config.xml', function() {
+ var cfg_path = path.join(tempDir, 'www', 'config.xml');
+ var orig_cfg_contents = fs.readFileSync(cfg_path, 'utf-8');
+ this.after(function() {
+ fs.writeFileSync(cfg_path, orig_cfg_contents, 'utf-8');
+ });
+ var cfg = new config_parser(cfg_path);
+ var cb = jasmine.createSpy();
+
+ runs(function() {
+ cfg.name('upon closer inspection they appear to be loafers');
+ cordova.platform('add', 'blackberry', cb);
+ });
+ waitsFor(function() { return cb.wasCalled; }, "platform add blackberry callback");
+ runs(function() {
+ var bb_cfg = new config_parser(path.join(tempDir, 'platforms', 'blackberry', 'www', 'config.xml'));
+ expect(bb_cfg.name()).toBe(cfg.name());
+ });
+ });
+ });
});
describe('remove', function() {
beforeEach(function() {
http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/blob/8bb37809/src/platform.js
----------------------------------------------------------------------
diff --git a/src/platform.js b/src/platform.js
index db32dd1..4f73917 100644
--- a/src/platform.js
+++ b/src/platform.js
@@ -5,6 +5,7 @@ var config_parser = require('./config_parser'),
path = require('path'),
shell = require('shelljs'),
android_parser= require('./metadata/android_parser'),
+ blackberry_parser= require('./metadata/blackberry_parser'),
ios_parser = require('./metadata/ios_parser'),
shell = require('shelljs');
@@ -46,12 +47,13 @@ module.exports = function platform(command, target, callback) {
var bin = path.join(__dirname, '..', 'lib', target, 'bin', 'create');
var pkg = cfg.packageName().replace(/[^\w.]/g,'_');
var name = cfg.name().replace(/\W/g,'_');
- var command = util.format('"%s" "%s" "%s" "%s"', bin, output, pkg, name);
+ var command = util.format('"%s" "%s" "%s" "%s"', bin, output, (target=='blackberry'?name:pkg), name);
var create = shell.exec(command, {silent:true});
if (create.code > 0) {
throw new Error('An error occured during creation of ' + target + ' sub-project. ' + create.output);
}
cfg.add_platform(target);
+ // TODO: this is fugly
switch(target) {
case 'android':
var android = new android_parser(output);
@@ -62,6 +64,11 @@ module.exports = function platform(command, target, callback) {
var ios = new ios_parser(output);
ios.update_from_config(cfg, callback);
break;
+ case 'blackberry':
+ var bb = new blackberry_parser(output);
+ bb.update_from_config(cfg);
+ if (callback) callback();
+ break;
}
break;
case 'remove':
http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/blob/8bb37809/src/util.js
----------------------------------------------------------------------
diff --git a/src/util.js b/src/util.js
index f37c04c..fa0a77f 100644
--- a/src/util.js
+++ b/src/util.js
@@ -5,7 +5,8 @@ var fs = require('fs'),
var repos = {
ios:'https://git-wip-us.apache.org/repos/asf/incubator-cordova-ios.git',
- android:'https://git-wip-us.apache.org/repos/asf/incubator-cordova-android.git'
+ android:'https://git-wip-us.apache.org/repos/asf/incubator-cordova-android.git',
+ blackberry:'https://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks.git'
};
module.exports = {