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() {
