Added a few prepare specs regarding plugman integration.

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

Branch: refs/heads/2.8.x
Commit: 1a40e10ff31ab7c3b5366c3d63a061299a0475b4
Parents: bb9e823
Author: Fil Maj <[email protected]>
Authored: Wed Jun 5 10:39:56 2013 -0700
Committer: Fil Maj <[email protected]>
Committed: Thu Jun 6 18:28:59 2013 -0700

----------------------------------------------------------------------
 spec/cordova-cli/prepare.spec.js |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/1a40e10f/spec/cordova-cli/prepare.spec.js
----------------------------------------------------------------------
diff --git a/spec/cordova-cli/prepare.spec.js b/spec/cordova-cli/prepare.spec.js
index da77935..b420024 100644
--- a/spec/cordova-cli/prepare.spec.js
+++ b/spec/cordova-cli/prepare.spec.js
@@ -19,11 +19,13 @@
 var cordova = require('../../cordova'),
     et = require('elementtree'),
     shell = require('shelljs'),
+    plugman = require('plugman'),
     path = require('path'),
     fs = require('fs'),
     config_parser = require('../../src/config_parser'),
     hooker = require('../../src/hooker'),
     fixtures = path.join(__dirname, '..', 'fixtures'),
+    test_plugin = path.join(fixtures, 'plugins', 'android'),
     hooks = path.join(fixtures, 'hooks'),
     tempDir = path.join(__dirname, '..', '..', 'temp'),
     cordova_project = path.join(fixtures, 'projects', 'cordova');
@@ -76,6 +78,37 @@ describe('prepare command', function() {
         }).toThrow();
     });
 
+    describe('plugman integration', function() {
+        beforeEach(function() {
+            shell.cp('-Rf', path.join(cordova_project, 'platforms', 
'android'), path.join(tempDir, 'platforms'));
+            process.chdir(tempDir);
+        });
+        afterEach(function() {
+            process.chdir(cwd);
+        });
+
+        it('should invoke plugman.prepare after update_project', function() {
+            var a_parser_spy = spyOn(android_parser.prototype, 
'update_project');
+            var prep_spy = spyOn(plugman, 'prepare');
+            cordova.prepare();
+            a_parser_spy.mostRecentCall.args[1](); // fake out android_parser
+            var android_path = path.join(tempDir, 'platforms', 'android');
+            var plugins_dir = path.join(tempDir, 'plugins');
+            expect(prep_spy).toHaveBeenCalledWith(android_path, 'android', 
plugins_dir);
+        });
+        it('should invoke add_plugin_changes for any added plugins to verify 
configuration changes for plugins are in place', function() {
+            var platform_path  = path.join(tempDir, 'platforms', 'android');
+            var plugins_dir = path.join(tempDir, 'plugins');
+            plugman.install('android', platform_path, test_plugin, 
plugins_dir, {});
+            var a_parser_spy = spyOn(android_parser.prototype, 
'update_project');
+            var prep_spy = spyOn(plugman, 'prepare');
+            var plugin_changes_spy = spyOn(plugman.config_changes, 
'add_plugin_changes');
+            cordova.prepare();
+            a_parser_spy.mostRecentCall.args[1](); // fake out android_parser
+            expect(plugin_changes_spy).toHaveBeenCalledWith('android', 
platform_path, plugins_dir, 'ca.filmaj.AndroidPlugin', 
{PACKAGE_NAME:"org.apache.cordova.cordovaExample"}, true, false); 
+        });
+    });
+
     describe('hooks', function() {
         var s;
         beforeEach(function() {

Reply via email to