You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by bh...@apache.org on 2013/08/06 23:00:50 UTC

git commit: [CB-4511] [BlackBerry10] Fix parser handling of config.xml

Updated Branches:
  refs/heads/master 753214ca7 -> 83a042a75


[CB-4511] [BlackBerry10] Fix parser handling of config.xml

- Removed logic to copy config.xml from tempalte.
- Generalized the implementation of access element changes.


Project: http://git-wip-us.apache.org/repos/asf/cordova-cli/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-cli/commit/83a042a7
Tree: http://git-wip-us.apache.org/repos/asf/cordova-cli/tree/83a042a7
Diff: http://git-wip-us.apache.org/repos/asf/cordova-cli/diff/83a042a7

Branch: refs/heads/master
Commit: 83a042a75ab83370b74a5413a2721cceb08e6399
Parents: 753214c
Author: Jeffrey Heifetz <jh...@blackberry.com>
Authored: Tue Aug 6 12:04:48 2013 -0400
Committer: Bryan Higgins <bh...@blackberry.com>
Committed: Tue Aug 6 16:59:05 2013 -0400

----------------------------------------------------------------------
 spec/metadata/blackberry_parser.spec.js | 19 +++++++++++--------
 src/config_parser.js                    |  6 +++++-
 src/metadata/blackberry10_parser.js     | 19 ++-----------------
 3 files changed, 18 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/83a042a7/spec/metadata/blackberry_parser.spec.js
----------------------------------------------------------------------
diff --git a/spec/metadata/blackberry_parser.spec.js b/spec/metadata/blackberry_parser.spec.js
index 7a86f78..3ba22da 100644
--- a/spec/metadata/blackberry_parser.spec.js
+++ b/spec/metadata/blackberry_parser.spec.js
@@ -93,13 +93,15 @@ describe('blackberry10 project parser', function() {
                 xml_pkg = jasmine.createSpy('xml pkg');
                 xml_version = jasmine.createSpy('xml version');
                 xml_access_rm = jasmine.createSpy('xml access rm');
+                xml_access_add = jasmine.createSpy('xml access add');
                 xml_update = jasmine.createSpy('xml update');
                 xml_append = jasmine.createSpy('xml append');
                 p.xml.name = xml_name;
                 p.xml.packageName = xml_pkg;
                 p.xml.version = xml_version;
                 p.xml.access = {
-                    remove:xml_access_rm
+                    remove:xml_access_rm,
+                    add: xml_access_add
                 };
                 p.xml.update = xml_update;
                 p.xml.doc = {
@@ -123,11 +125,11 @@ describe('blackberry10 project parser', function() {
                 });
                 xml = spyOn(ET, 'XML');
                 cfg = new config_parser();
-                cfg.name = function() { return 'testname' };
-                cfg.packageName = function() { return 'testpkg' };
-                cfg.version = function() { return 'one point oh' };
-                cfg.access.get = function() { return [] };
-                cfg.preference.get = function() { return [] };
+                cfg.name = function() { return 'testname'; };
+                cfg.packageName = function() { return 'testpkg'; };
+                cfg.version = function() { return 'one point oh'; };
+                cfg.access.getAttributes = function() { return []; };
+                cfg.preference.get = function() { return []; };
             });
 
             it('should write out the app name to config.xml', function() {
@@ -147,9 +149,10 @@ describe('blackberry10 project parser', function() {
                 expect(xml_access_rm).toHaveBeenCalled();
             });
             it('should update the whitelist', function() {
-                cfg.access.get = function() { return ['one'] };
+                cfg.access.getAttributes = function() { return [{origin: 'one'},{uri: "two", subdomains: "false"}]; };
                 p.update_from_config(cfg);
-                expect(xml_append.mostRecentCall.args[0].attrib.uri).toEqual('one');
+                expect(xml_access_add).toHaveBeenCalledWith('one', undefined);
+                expect(xml_access_add).toHaveBeenCalledWith('two', 'false');
             });
         });
         describe('www_dir method', function() {

http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/83a042a7/src/config_parser.js
----------------------------------------------------------------------
diff --git a/src/config_parser.js b/src/config_parser.js
index 33a1c38..5d1b8ed 100644
--- a/src/config_parser.js
+++ b/src/config_parser.js
@@ -55,9 +55,10 @@ function access(cfg) {
 };
 
 access.prototype = {
-    add:function(uri) {
+    add:function(uri, subdomain) {
         var el = new et.Element('access');
         el.attrib.origin = uri;
+        if (typeof subdomain !== "undefined") el.attrib.subdomains = subdomain;
         this.config.doc.getroot().append(el);
         this.config.update();
     },
@@ -73,6 +74,9 @@ access.prototype = {
     },
     get:function() {
         return this.config.doc.findall('access').map(function(a) { return a.attrib.origin || a.attrib.uri; });
+    },
+    getAttributes:function() {
+        return this.config.doc.findall('access').map(function(a) { return a.attrib; });
     }
 };
 

http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/83a042a7/src/metadata/blackberry10_parser.js
----------------------------------------------------------------------
diff --git a/src/metadata/blackberry10_parser.js b/src/metadata/blackberry10_parser.js
index dc0f632..79e303f 100644
--- a/src/metadata/blackberry10_parser.js
+++ b/src/metadata/blackberry10_parser.js
@@ -58,13 +58,9 @@ module.exports.prototype = {
         events.emit('log', 'Wrote out BlackBerry version to "' + config.version() + '"');
         this.xml.access.remove();
         var self = this;
-        config.access.get().forEach(function(uri) {
-            var el = new et.Element('access');
-            el.attrib.uri = uri;
-            el.attrib.subdomains = 'true';
-            self.xml.doc.getroot().append(el);
+        config.access.getAttributes().forEach(function(attribs) {
+            self.xml.access.add(attribs.uri || attribs.origin, attribs.subdomains);
         });
-        this.xml.update();
     },
     update_project:function(cfg, callback) {
         var self = this;
@@ -111,17 +107,6 @@ module.exports.prototype = {
         if (custom_path) lib_path = custom_path;
         // add cordova.js
         shell.cp('-f', path.join(lib_path, 'javascript', 'cordova.blackberry10.js'), path.join(this.www_dir(), 'cordova.js'));
-
-        // add webworks ext directories
-        shell.cp('-rf', path.join(lib_path, 'framework', 'ext*'), this.www_dir());
-
-        // add config.xml
-        // @TODO should use project www/config.xml but it must use BBWP elements
-        shell.cp('-f', path.join(lib_path, 'bin', 'templates', 'project', 'www', 'config.xml'), this.www_dir());
-
-        // add res/
-        // @TODO remove this when config.xml is generalized
-        shell.cp('-rf', path.join(lib_path, 'bin', 'templates', 'project', 'www', 'res'), this.www_dir());
     },
 
     // update the overrides folder into the www folder