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

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

Updated Branches:
  refs/heads/master 926d41779 -> b4dd4b031


[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/b4dd4b03
Tree: http://git-wip-us.apache.org/repos/asf/cordova-cli/tree/b4dd4b03
Diff: http://git-wip-us.apache.org/repos/asf/cordova-cli/diff/b4dd4b03

Branch: refs/heads/master
Commit: b4dd4b03167afa91cb6ec3890f07f8278605753a
Parents: 926d417
Author: Michael Brooks <mi...@michaelbrooks.ca>
Authored: Tue May 21 11:56:19 2013 -0700
Committer: Michael Brooks <mi...@michaelbrooks.ca>
Committed: Wed May 22 15:27:06 2013 -0700

----------------------------------------------------------------------
 .../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/b4dd4b03/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/b4dd4b03/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');