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/24 01:00:30 UTC
[02/50] [abbrv] git commit: Add tests for --prepare behavior
Add tests for --prepare behavior
Checks for:
- cordova_plugins.json with appropriate entries
- copying the JS file into www/plugins/com.foo.id/path/to/file.js
- copying <asset> files.
- copying <asset> directories.
Project: http://git-wip-us.apache.org/repos/asf/cordova-plugman/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugman/commit/3a6777ad
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugman/tree/3a6777ad
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugman/diff/3a6777ad
Branch: refs/heads/master
Commit: 3a6777adad8429c81bbe905b794c0296fa54e738
Parents: 7e81925
Author: Braden Shepherdson <br...@gmail.com>
Authored: Tue Apr 16 15:24:11 2013 -0400
Committer: Braden Shepherdson <br...@gmail.com>
Committed: Tue Apr 16 15:24:11 2013 -0400
----------------------------------------------------------------------
test/android-one-install.js | 48 +++++++++++---
test/android-two-install.js | 46 +++++++++++--
test/plugins/ChildBrowser/plugin.xml | 6 ++-
.../ChildBrowser/www/childbrowser_file.html | 1 +
test/prepare.js | 51 +++++++++++++++
5 files changed, 134 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/3a6777ad/test/android-one-install.js
----------------------------------------------------------------------
diff --git a/test/android-one-install.js b/test/android-one-install.js
index ade18a2..e839bd6 100644
--- a/test/android-one-install.js
+++ b/test/android-one-install.js
@@ -72,19 +72,33 @@ exports['should install webless plugin'] = function (test) {
exports['should move the js file'] = function (test) {
var pluginsPath = path.join(test_dir, 'plugins');
var wwwPath = path.join(test_dir, 'projects', 'android_one', 'assets', 'www');
- var jsPath = path.join(test_dir, 'projects', 'android_one', 'assets', 'www', 'childbrowser.js');
-
+ var jsPath = path.join(test_dir, 'projects', 'android_one', 'assets', 'www', 'plugins', 'com.phonegap.plugins.childbrowser', 'www', 'childbrowser.js');
+
android.handlePlugin('install', test_project_dir, test_plugin_dir, plugin_et, { APP_ID: 12345 });
plugin_loader.handlePrepare(test_project_dir, pluginsPath, wwwPath, 'android');
-
- fs.stat(jsPath, function(err, stats) {
- test.ok(!err);
- test.ok(stats.isFile());
- test.done();
- });
+
+ var stats = fs.statSync(jsPath);
+ test.ok(stats);
+ test.ok(stats.isFile());
+ test.done();
}
-exports['should move the directory'] = function (test) {
+exports['should move the asset file'] = function(test) {
+ var pluginsPath = path.join(test_dir, 'plugins');
+ var wwwPath = path.join(test_dir, 'projects', 'android_one', 'assets', 'www');
+
+ android.handlePlugin('install', test_project_dir, test_plugin_dir, plugin_et, { APP_ID: 12345 });
+ plugin_loader.handlePrepare(test_project_dir, pluginsPath, wwwPath, 'android');
+
+ var assetPath = path.join(test_dir, 'projects', 'android_one', 'assets', 'www', 'childbrowser_file.html');
+ var assets = fs.statSync(assetPath);
+
+ test.ok(assets);
+ test.ok(assets.isFile());
+ test.done();
+}
+
+exports['should move the asset directory'] = function (test) {
var pluginsPath = path.join(test_dir, 'plugins');
var wwwPath = path.join(test_dir, 'projects', 'android_one', 'assets', 'www');
@@ -99,6 +113,22 @@ exports['should move the directory'] = function (test) {
test.done();
}
+exports['should add entries to the cordova_plugins.json file'] = function(test) {
+ var pluginsPath = path.join(test_dir, 'plugins');
+ var wwwPath = path.join(test_dir, 'projects', 'android_one', 'assets', 'www');
+
+ android.handlePlugin('install', test_project_dir, test_plugin_dir, plugin_et, { APP_ID: 12345 });
+ plugin_loader.handlePrepare(test_project_dir, pluginsPath, wwwPath, 'android');
+
+ var jsonPath = path.join(wwwPath, 'cordova_plugins.json');
+ var content = JSON.parse(fs.readFileSync(jsonPath, 'utf-8'));
+
+ test.ok(content);
+ test.ok(content.length > 0);
+ test.ok(content[0].file);
+ test.done();
+};
+
exports['should move the src file'] = function (test) {
var pluginsPath = path.join(test_dir, 'plugins');
var wwwPath = path.join(test_dir, 'projects', 'android_one', 'assets', 'www');
http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/3a6777ad/test/android-two-install.js
----------------------------------------------------------------------
diff --git a/test/android-two-install.js b/test/android-two-install.js
index 8664383..a406a3b 100644
--- a/test/android-two-install.js
+++ b/test/android-two-install.js
@@ -73,23 +73,37 @@ exports['should install webless plugin'] = function (test) {
exports['should move the js file'] = function (test) {
var pluginsPath = path.join(test_dir, 'plugins');
var wwwPath = path.join(test_dir, 'projects', 'android_two', 'assets', 'www');
- var jsPath = path.join(test_dir, 'projects', 'android_two', 'assets', 'www', 'childbrowser.js');
+ var jsPath = path.join(test_dir, 'projects', 'android_two', 'assets', 'www', 'plugins', 'com.phonegap.plugins.childbrowser', 'www', 'childbrowser.js');
android.handlePlugin('install', test_project_dir, test_plugin_dir, plugin_et, { APP_ID: 12345 });
plugin_loader.handlePrepare(test_project_dir, pluginsPath, wwwPath, 'android');
- fs.stat(jsPath, function(err, stats) {
- test.ok(!err);
- test.ok(stats.isFile());
- test.done();
- });
+ var stats = fs.statSync(jsPath);
+ test.ok(stats);
+ test.ok(stats.isFile());
+ test.done();
}
-exports['should move the directory'] = function (test) {
+exports['should move the asset file'] = function(test) {
+ var pluginsPath = path.join(test_dir, 'plugins');
+ var wwwPath = path.join(test_dir, 'projects', 'android_two', 'assets', 'www');
+
+ android.handlePlugin('install', test_project_dir, test_plugin_dir, plugin_et, { APP_ID: 12345 });
+ plugin_loader.handlePrepare(test_project_dir, pluginsPath, wwwPath, 'android');
+
+ var assetPath = path.join(test_dir, 'projects', 'android_two', 'assets', 'www', 'childbrowser_file.html');
+ var assets = fs.statSync(assetPath);
+
+ test.ok(assets);
+ test.ok(assets.isFile());
+ test.done();
+}
+
+exports['should move the asset directory'] = function (test) {
var pluginsPath = path.join(test_dir, 'plugins');
var wwwPath = path.join(test_dir, 'projects', 'android_two', 'assets', 'www');
- android.handlePlugin('install', test_project_dir, test_plugin_dir, plugin_et);
+ android.handlePlugin('install', test_project_dir, test_plugin_dir, plugin_et, { APP_ID: 12345 });
plugin_loader.handlePrepare(test_project_dir, pluginsPath, wwwPath, 'android');
var assetPath = path.join(test_dir, 'projects', 'android_two', 'assets', 'www', 'childbrowser');
@@ -100,6 +114,22 @@ exports['should move the directory'] = function (test) {
test.done();
}
+exports['should add entries to the cordova_plugins.json file'] = function(test) {
+ var pluginsPath = path.join(test_dir, 'plugins');
+ var wwwPath = path.join(test_dir, 'projects', 'android_two', 'assets', 'www');
+
+ android.handlePlugin('install', test_project_dir, test_plugin_dir, plugin_et, { APP_ID: 12345 });
+ plugin_loader.handlePrepare(test_project_dir, pluginsPath, wwwPath, 'android');
+
+ var jsonPath = path.join(wwwPath, 'cordova_plugins.json');
+ var content = JSON.parse(fs.readFileSync(jsonPath, 'utf-8'));
+
+ test.ok(content);
+ test.ok(content.length > 0);
+ test.ok(content[0].file);
+ test.done();
+};
+
exports['should move the src file'] = function (test) {
var pluginsPath = path.join(test_dir, 'plugins');
var wwwPath = path.join(test_dir, 'projects', 'android_two', 'assets', 'www');
http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/3a6777ad/test/plugins/ChildBrowser/plugin.xml
----------------------------------------------------------------------
diff --git a/test/plugins/ChildBrowser/plugin.xml b/test/plugins/ChildBrowser/plugin.xml
index caff701..9c87b06 100644
--- a/test/plugins/ChildBrowser/plugin.xml
+++ b/test/plugins/ChildBrowser/plugin.xml
@@ -25,8 +25,12 @@
<name>Child Browser</name>
- <asset src="www/childbrowser.js" target="childbrowser.js" />
<asset src="www/childbrowser" target="childbrowser" />
+ <asset src="www/childbrowser_file.html" target="childbrowser_file.html" />
+
+ <js-module src="www/childbrowser.js" name="ChildBrowser">
+ <clobbers target="childbrowser" />
+ </js-module>
<access origin="build.phonegap.com" />
<access origin="$APP_ID.s3.amazonaws.com" />
http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/3a6777ad/test/plugins/ChildBrowser/www/childbrowser_file.html
----------------------------------------------------------------------
diff --git a/test/plugins/ChildBrowser/www/childbrowser_file.html b/test/plugins/ChildBrowser/www/childbrowser_file.html
new file mode 100644
index 0000000..6de7b8c
--- /dev/null
+++ b/test/plugins/ChildBrowser/www/childbrowser_file.html
@@ -0,0 +1 @@
+This is a test file.
http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/3a6777ad/test/prepare.js
----------------------------------------------------------------------
diff --git a/test/prepare.js b/test/prepare.js
new file mode 100644
index 0000000..30e0ec8
--- /dev/null
+++ b/test/prepare.js
@@ -0,0 +1,51 @@
+/*
+ *
+ * Copyright 2013 Braden Shepherdson
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+var path = require('path'),
+ shell = require('shelljs'),
+ osenv = require('osenv'),
+ et = require('elementtree'),
+ test_dir = path.join(osenv.tmpdir(), 'test_plugman'),
+ test_project_dir = path.join(test_dir, 'projects', 'android_one'),
+ test_plugin_dir = path.join(test_dir, 'plugins', 'ChildBrowser'),
+ xml_path = path.join(test_plugin_dir, 'plugin.xml'),
+ plugin_loader = require(path.join(__dirname, '..', 'util', 'plugin_loader'));
+
+exports.setUp = function(callback) {
+ shell.mkdir('-p', test_dir);
+
+ // copy the ios test project to a temp directory
+ shell.cp('-r', path.join(__dirname, 'projects'), test_dir);
+
+ // copy the ios test plugin to a temp directory
+ shell.cp('-r', path.join(__dirname, 'plugins'), test_dir);
+
+ // parse the plugin.xml into an elementtree object
+ xml_text = fs.readFileSync(xml_path, 'utf-8')
+ plugin_et = new et.ElementTree(et.XML(xml_text));
+
+ callback();
+}
+
+exports.tearDown = function(callback) {
+ // remove the temp files (projects and plugins)
+ shell.rm('-rf', test_dir);
+ callback();
+}
+