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');