You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by br...@apache.org on 2013/05/23 23:58:37 UTC

[40/50] git commit: [CB-3457] Fix Android to support dash in widget id.

[CB-3457] Fix Android to support dash in widget id.


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

Branch: refs/heads/master2
Commit: 2597ee2b03b3e6b414ecd671e139af0e3d96bcb5
Parents: b981588
Author: Michael Brooks <mi...@michaelbrooks.ca>
Authored: Tue May 21 11:56:19 2013 -0700
Committer: Ian Clelland <ic...@chromium.org>
Committed: Thu May 23 16:04:02 2013 -0400

----------------------------------------------------------------------
 .../platform-script/android/android_parser.spec.js |   17 +++++++++++++++
 src/metadata/android_parser.js                     |    1 +
 2 files changed, 18 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/2597ee2b/spec/platform-script/android/android_parser.spec.js
----------------------------------------------------------------------
diff --git a/spec/platform-script/android/android_parser.spec.js b/spec/platform-script/android/android_parser.spec.js
index 84c7903..03bf1a1 100644
--- a/spec/platform-script/android/android_parser.spec.js
+++ b/spec/platform-script/android/android_parser.spec.js
@@ -98,6 +98,23 @@ describe('android project parser', function() {
             expect(fs.existsSync(javs)).toBe(true);
             expect(fs.readFileSync(javs, 'utf-8')).toMatch(/package ca.filmaj.dewd/i);
         });
+        it('should handle unsupported "-" in the application package name', function() {
+            var javs = path.join(android_path, 'src', 'ca', 'filmaj', 'the_dewd', 'cordovaExample.java');
+            var orig_javs = path.join(android_path, 'src', 'org', 'apache', 'cordova', 'cordovaExample', 'cordovaExample.java');
+            var orig_contents = fs.readFileSync(orig_javs, 'utf-8');
+            this.after(function() {
+                fs.writeFileSync(orig_javs, orig_contents, 'utf-8');
+                shell.rm('-rf', path.join(android_path, 'src', 'ca'));
+            });
+            config.packageName('ca.filmaj.the-dewd');
+            project.update_from_config(config);
+
+            var manifest = new et.ElementTree(et.XML(fs.readFileSync(android_manifest, 'utf-8')));
+            expect(manifest.getroot().attrib.package).toEqual('ca.filmaj.the_dewd');
+
+            expect(fs.existsSync(javs)).toBe(true);
+            expect(fs.readFileSync(javs, 'utf-8')).toMatch(/package ca.filmaj.the_dewd/i);
+        });
         it('should update the whitelist properly', function() {
             config.access.remove('*');
             config.access.add('http://apache.org');

http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/2597ee2b/src/metadata/android_parser.js
----------------------------------------------------------------------
diff --git a/src/metadata/android_parser.js b/src/metadata/android_parser.js
index 09b379f..ec6b7d0 100644
--- a/src/metadata/android_parser.js
+++ b/src/metadata/android_parser.js
@@ -73,6 +73,7 @@ module.exports.prototype = {
         // Update package name by changing the AndroidManifest id and moving the entry class around to the proper package directory
         var manifest = new et.ElementTree(et.XML(fs.readFileSync(this.manifest, 'utf-8')));
         var pkg = config.packageName();
+        pkg = pkg.replace(/-/g, '_'); // Java packages cannot support dashes
         var orig_pkg = manifest.getroot().attrib.package;
         manifest.getroot().attrib.package = pkg;
         fs.writeFileSync(this.manifest, manifest.write({indent: 4}), 'utf-8');