You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ti...@apache.org on 2013/07/26 00:22:42 UTC
[1/2] git commit: [CB-4036] - first pass for adding version script
Updated Branches:
refs/heads/version_engine_checks [created] 413c025c8
[CB-4036] - first pass for adding version script
Project: http://git-wip-us.apache.org/repos/asf/cordova-plugman/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugman/commit/b04fdc44
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugman/tree/b04fdc44
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugman/diff/b04fdc44
Branch: refs/heads/version_engine_checks
Commit: b04fdc44998ce2bb7acc8dcfc1d6b6b7bfd6fd62
Parents: 4cf0243
Author: Tim Kim <ti...@adobe.com>
Authored: Thu Jul 25 14:56:23 2013 -0700
Committer: Tim Kim <ti...@adobe.com>
Committed: Thu Jul 25 14:56:23 2013 -0700
----------------------------------------------------------------------
spec/plugins/EnginePlugin/plugin.xml | 10 +++++++---
src/install.js | 29 +++++++++++++++++++++++++++++
2 files changed, 36 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/b04fdc44/spec/plugins/EnginePlugin/plugin.xml
----------------------------------------------------------------------
diff --git a/spec/plugins/EnginePlugin/plugin.xml b/spec/plugins/EnginePlugin/plugin.xml
index 62233e3..c29bb8c 100644
--- a/spec/plugins/EnginePlugin/plugin.xml
+++ b/spec/plugins/EnginePlugin/plugin.xml
@@ -23,8 +23,12 @@
<name>Engine Choo Choo</name>
- <engines>
- <engine name="cordova" version=">=2.3.0" />
- </engines>
+
+
+ <platform name="android" min-sdk-version="1.0.1" min-os-version="9.2.1" />
+ <platform name="blackberry10" min-sdk-version="0.0.1" min-os-version="0.0.1" />
+ <platform name="ios" min-sdk-version="5.1" min-os-version="10.1" />
+ <platform name="wp7" min-sdk-version="0.0.1"/>
+ <platform name="wp8" min-os-version="0.0.1"/>
</plugin>
http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/b04fdc44/src/install.js
----------------------------------------------------------------------
diff --git a/src/install.js b/src/install.js
index 5b818ab..79482ba 100644
--- a/src/install.js
+++ b/src/install.js
@@ -130,6 +130,35 @@ function runInstall(actions, platform, project_dir, plugin_dir, plugins_dir, opt
require('../plugman').emit('log', 'Cordova project version not detected (lacks a ./cordova/version script), continuing.');
}
+ // check platform requirements - min sdks/min os version etc
+ var platformMinReqScript = { code: 0, output: { min_os_version: "5.0.0" , min_sdk_version: "1.0.0" } }; // place holder for now until we have an actual script
+ if(platformMinReqScript.code === 0){
+ var platformMinOS = plugin_et.findall('./platform[@name="'+platform+'"][@min-os-version]')[0].attrib["min-os-version"];
+ var platformMinSDK = plugin_et.findall('./platform[@name="'+platform+'"][@min-sdk-version]')[0].attrib["min-sdk-version"];
+
+ if( platformMinReqScript.output.min_os_version ) {
+ if(semver.satisfies(platformMinReqScript.output.min_os_version, platformMinOS)){
+ // min-os version ok
+ } else {
+ var err = new Error('Plugin doesn\'t support ' + platform + ' minimum os version. ' + platform + ' minimum os version: ' + platformMinReqScript.output.min_os_version + ', failed version requirement: ' + platformMinOS);
+ if (callback) return callback(err);
+ else throw err;
+ }
+ }
+
+ if(platformMinReqScript.output.min_sdk_version) {
+ if(semver.satisfies(platformMinReqScript.output.min_sdk_version, platformMinSDK)){
+ // min-sdk version ok
+ } else {
+ var err = new Error('Plugin doesn\'t support ' + platform + ' minimum sdk version. ' + platform + ' minimum sdk version: ' + platformMinReqScript.output.min_sdk_version+ ', failed version requirement: ' + platformMinSDK);
+ if (callback) return callback(err);
+ else throw err;
+ }
+ }
+ } else {
+ require('../plugman').emit('log', 'Cordova project minimum sdk or os version not detected (lacks a ./cordova/sdkRequirement script), continuing.');
+ }
+
// checking preferences, if certain variables are not provided, we should throw.
prefs = plugin_et.findall('./preference') || [];
prefs = prefs.concat(plugin_et.findall('./platform[@name="'+platform+'"]/preference'));
[2/2] git commit: [CB-4036] - added test file for checking engine and
versions
Posted by ti...@apache.org.
[CB-4036] - added test file for checking engine and versions
Project: http://git-wip-us.apache.org/repos/asf/cordova-plugman/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugman/commit/413c025c
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugman/tree/413c025c
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugman/diff/413c025c
Branch: refs/heads/version_engine_checks
Commit: 413c025c884eeba9cec6fcc111b96dbc6e8a5225
Parents: b04fdc4
Author: Tim Kim <ti...@adobe.com>
Authored: Thu Jul 25 15:00:20 2013 -0700
Committer: Tim Kim <ti...@adobe.com>
Committed: Thu Jul 25 15:00:20 2013 -0700
----------------------------------------------------------------------
spec/engine.spec.js | 55 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 55 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/413c025c/spec/engine.spec.js
----------------------------------------------------------------------
diff --git a/spec/engine.spec.js b/spec/engine.spec.js
new file mode 100644
index 0000000..89a7f9e
--- /dev/null
+++ b/spec/engine.spec.js
@@ -0,0 +1,55 @@
+var install = require('../src/install'),
+ actions = require('../src/util/action-stack'),
+ config_changes = require('../src/util/config-changes'),
+ xml_helpers = require('../src/util/xml-helpers'),
+ plugman = require('../plugman'),
+ fs = require('fs'),
+ os = require('osenv'),
+ path = require('path'),
+ shell = require('shelljs'),
+ semver = require('semver'),
+ temp = __dirname,
+ dummyplugin = 'DummyPlugin',
+ dummy_id = 'com.phonegap.plugins.dummyplugin',
+ variableplugin = 'VariablePlugin',
+ engineplugin = 'EnginePlugin',
+ childplugin = 'ChildBrowser',
+ plugins_dir = path.join(temp, 'plugins');
+
+describe('install', function() {
+ var exists, get_json, chmod, exec, proc, add_to_queue, prepare, actions_push, c_a, mkdir;
+ beforeEach(function() {
+ proc = spyOn(actions.prototype, 'process').andCallFake(function(platform, proj, cb) {
+ cb();
+ });
+ mkdir = spyOn(shell, 'mkdir');
+ actions_push = spyOn(actions.prototype, 'push');
+ c_a = spyOn(actions.prototype, 'createAction');
+ prepare = spyOn(plugman, 'prepare');
+ exec = spyOn(shell, 'exec').andReturn({code:1});
+ chmod = spyOn(fs, 'chmodSync');
+ exists = spyOn(fs, 'existsSync').andReturn(true);
+ get_json = spyOn(config_changes, 'get_platform_json').andReturn({
+ installed_plugins:{},
+ dependent_plugins:{}
+ });
+ add_to_queue = spyOn(config_changes, 'add_installed_plugin_to_prepare_queue');
+ });
+ describe('success', function() {
+ it('should check version if plugin has engine tag', function(){
+ var spy = spyOn(semver, 'satisfies').andReturn(true);
+ install('android', temp, 'engineplugin', plugins_dir, {});
+ expect(spy).toHaveBeenCalledWith('5.0.0','9.2.1');
+ });
+
+ /*
+ it('should check version and munge it a little if it has "rc" in it so it plays nice with semver (introduce a dash in it)', function() {
+ var spy = spyOn(semver, 'satisfies').andReturn(true);
+ exec.andReturn({code:0,output:"3.0.0rc1"});
+ install('android', temp, 'engineplugin', plugins_dir, {});
+ expect(spy).toHaveBeenCalledWith('3.0.0-rc1','>=2.3.0');
+ });
+ */
+ });
+
+});