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 2013/04/29 19:19:56 UTC

git commit: a couple of config uninstallation specs and a plugin interpolation for uninstallation fix for config-handler.

Updated Branches:
  refs/heads/master 58f57120f -> a4184091d


 a couple of config uninstallation specs and a plugin interpolation for uninstallation fix for config-handler.


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

Branch: refs/heads/master
Commit: a4184091dd640918b5033d11c439e20518773d44
Parents: 58f5712
Author: Fil Maj <ma...@gmail.com>
Authored: Mon Apr 29 10:19:55 2013 -0700
Committer: Fil Maj <ma...@gmail.com>
Committed: Mon Apr 29 10:19:55 2013 -0700

----------------------------------------------------------------------
 spec/util/config-changes.spec.js |   28 +++++++++++++++++++++++++++-
 src/util/config-changes.js       |    4 ++--
 2 files changed, 29 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/a4184091/spec/util/config-changes.spec.js
----------------------------------------------------------------------
diff --git a/spec/util/config-changes.spec.js b/spec/util/config-changes.spec.js
index 1c2b27a..d9b29c8 100644
--- a/spec/util/config-changes.spec.js
+++ b/spec/util/config-changes.spec.js
@@ -299,8 +299,34 @@ describe('config-changes module', function() {
 
         describe(': uninstallation', function() {
             it('should call pruneXML for every config munge it completely removes from the app (every leaf that is decremented to 0)', function() {
+                shell.cp('-rf', android_two_project, temp);
+                // Run through an "install"
+                configChanges.add_installed_plugin_to_prepare_queue(plugins_dir, 'DummyPlugin', 'android', {});
+                configChanges.process(plugins_dir, temp, 'android');
+
+                // Now set up an uninstall and make sure prunexml is called properly
+                configChanges.add_uninstalled_plugin_to_prepare_queue(plugins_dir, 'DummyPlugin', 'android');
+                var spy = spyOn(xml_helpers, 'pruneXML').andReturn(true);
+                configChanges.process(plugins_dir, temp, 'android');
+                expect(spy.calls.length).toEqual(2);
+                expect(spy.argsForCall[0][2]).toEqual('/manifest/application');
+                expect(spy.argsForCall[1][2]).toEqual('/cordova/plugins');
             });
-            it('should call pruneXML with variables to interpolate if applicable', function() {
+            it('should generate a config munge that interpolates variables into config changes, if applicable', function() {
+                shell.cp('-rf', android_two_project, temp);
+                shell.cp('-rf', varplugin, plugins_dir);
+                // Run through an "install"
+                configChanges.add_installed_plugin_to_prepare_queue(plugins_dir, 'VariablePlugin', 'android', {"API_KEY":"canucks"});
+                configChanges.process(plugins_dir, temp, 'android');
+
+                // Now set up an uninstall and make sure prunexml is called properly
+                configChanges.add_uninstalled_plugin_to_prepare_queue(plugins_dir, 'VariablePlugin', 'android');
+                var spy = spyOn(configChanges, 'generate_plugin_config_munge').andReturn({});
+                configChanges.process(plugins_dir, temp, 'android');
+                var munge_params = spy.mostRecentCall.args;
+                expect(munge_params[0]).toEqual(path.join(plugins_dir, 'VariablePlugin'));
+                expect(munge_params[1]).toEqual('android');
+                expect(munge_params[2]['API_KEY']).toEqual('canucks');
             });
             it('should not call pruneXML for a config munge that another plugin depends on', function() {
             });

http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/a4184091/src/util/config-changes.js
----------------------------------------------------------------------
diff --git a/src/util/config-changes.js b/src/util/config-changes.js
index 534c8d3..e6b9963 100644
--- a/src/util/config-changes.js
+++ b/src/util/config-changes.js
@@ -123,7 +123,7 @@ module.exports = {
         platform_config.prepare_queue.uninstalled.forEach(function(u) {
             var plugin_dir = path.join(plugins_dir, u.plugin);
             var plugin_id = u.id;
-            var plugin_vars = platform_config.installed_plugins[plugin_id].vars;
+            var plugin_vars = platform_config.installed_plugins[plugin_id];
 
             // get config munge, aka how did this plugin change various config files
             var config_munge = module.exports.generate_plugin_config_munge(plugin_dir, platform, plugin_vars);
@@ -254,7 +254,7 @@ module.exports = {
             platform_config.config_munge = global_munge;
 
             // Move to installed_plugins
-            platform_config.installed_plugins[plugin_id] = plugin_vars;
+            platform_config.installed_plugins[plugin_id] = plugin_vars || {};
         });
 
         // Empty out installed queue.