cordova-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dase...@apache.org
Subject [4/5] webos commit: CB-9836 Add .gitattributes to prevent CRLF line endings in repos
Date Fri, 13 Nov 2015 10:56:14 GMT
http://git-wip-us.apache.org/repos/asf/cordova-webos/blob/5400d1ec/bin/templates/project/cordova/lib/emulator.js
----------------------------------------------------------------------
diff --git a/bin/templates/project/cordova/lib/emulator.js b/bin/templates/project/cordova/lib/emulator.js
index f5fd0fe..d8e5e74 100755
--- a/bin/templates/project/cordova/lib/emulator.js
+++ b/bin/templates/project/cordova/lib/emulator.js
@@ -1,145 +1,145 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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 virtualbox = require('./virtualbox.js');
-var exec = require('child_process').exec;
-
-var timeout = {id:undefined};
-
-module.exports = {
-	is_running: function(callback) {
-		module.exports.active_emulator(function(vm) {
-			callback(vm!==undefined);
-		});
-	},
-	active_emulator: function(callback) {
-		virtualbox.list(function(allVMs) {
-			var runningVMs = [];
-			// look for active webOS VMs
-			for(var x in allVMs) {
-				if(allVMs[x].running && allVMs[x].name) {
-					var name = allVMs[x].name.toLowerCase();
-					allVMs[x].id = x;
-					if(name.indexOf("webos")>-1) {
-						callback(allVMs[x]);
-						return;
-					} else {
-						runningVMs.push(allVMs[x]);
-					}
-				}
-			}
-			// check for legacy emulator VMs
-			var checkVM = function(status) {
-				if(status || runningVMs.length===0) {
-					callback(status);
-				} else {
-					var curr = runningVMs.pop();
-					virtualbox.info(curr.id, function(info) {
-						if(info["Forwarding(0)"] && info["Forwarding(0)"].indexOf("palm")>-1) {
-							checkVM(curr);
-						} else {
-							checkVM();
-						}
-					});
-				}
-			};
-			checkVM();
-		});
-	},
-	wait_for_emulator: function(callback) {
-		var count = 0;
-		var TIMECAP = 20000;
-
-		var nextTimeout = function(funct) {
-			if(count>=TIMECAP) {
-				callback(new Error("Emulator connection timeout"));
-			} else {
-				count+= 2000;
-				setTimeout(funct, 2000);
-			}
-		};
-		var wait = function() {
-			module.exports.active_emulator(function(vm) {
-				if(vm) {
-					callback();
-				} else {
-					nextTimeout(wait);
-				}
-			});
-		}
-		setTimeout(wait, 5000);
-	},
-	webos_images: function(callback) {
-		virtualbox.list(function(availableVMs) {
-			var webOS_VMs = {};
-			for(var x in availableVMs) {
-				if(availableVMs[x] && availableVMs[x].name) {
-					var name = availableVMs[x].name.toLowerCase();
-					if(name.indexOf("webos")>-1) {
-						webOS_VMs[x] = availableVMs[x];
-					}
-				}
-			}
-			callback(webOS_VMs);
-		});
-	},
-	legacy_emulator: function(callback) {
-		exec("palm-emulator", function (err, stdout, stderr) {
-			callback(err);
-		});
-	},
-	start_emulator: function(callback) {
-		module.exports.webos_images(function(webOS_VMs) {
-			var vm;
-			for(var x in webOS_VMs) {
-				vm = x;
-				if(webOS_VMs[x].name==="LG webOS TV Emulator") {
-					// ideal default VM name for SmartTV SDK-installed VM
-					break;
-				}
-			}
-			var emu_started = function(err) {
-				if(err) {
-					console.error("Unable to start emulator");
-				};
-				callback(err);
-			}
-			if(vm) {
-				virtualbox.start(vm, true, emu_started);
-			} else {
-				module.exports.legacy_emulator(emu_started);
-			}
-		});
-		
-	},
-	stop_emulator: function(callback) {
-		module.exports.active_emulator(function(active) {
-			if(active) {
-				virtualbox.poweroff(active.id, function(err) {
-					if(err) {
-						console.error("Unable to poweroff emulator");
-					};
-					callback(err);
-				});
-			} else {
-				callback();
-			}
-		})
-	}
-};
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 virtualbox = require('./virtualbox.js');
+var exec = require('child_process').exec;
+
+var timeout = {id:undefined};
+
+module.exports = {
+	is_running: function(callback) {
+		module.exports.active_emulator(function(vm) {
+			callback(vm!==undefined);
+		});
+	},
+	active_emulator: function(callback) {
+		virtualbox.list(function(allVMs) {
+			var runningVMs = [];
+			// look for active webOS VMs
+			for(var x in allVMs) {
+				if(allVMs[x].running && allVMs[x].name) {
+					var name = allVMs[x].name.toLowerCase();
+					allVMs[x].id = x;
+					if(name.indexOf("webos")>-1) {
+						callback(allVMs[x]);
+						return;
+					} else {
+						runningVMs.push(allVMs[x]);
+					}
+				}
+			}
+			// check for legacy emulator VMs
+			var checkVM = function(status) {
+				if(status || runningVMs.length===0) {
+					callback(status);
+				} else {
+					var curr = runningVMs.pop();
+					virtualbox.info(curr.id, function(info) {
+						if(info["Forwarding(0)"] && info["Forwarding(0)"].indexOf("palm")>-1) {
+							checkVM(curr);
+						} else {
+							checkVM();
+						}
+					});
+				}
+			};
+			checkVM();
+		});
+	},
+	wait_for_emulator: function(callback) {
+		var count = 0;
+		var TIMECAP = 20000;
+
+		var nextTimeout = function(funct) {
+			if(count>=TIMECAP) {
+				callback(new Error("Emulator connection timeout"));
+			} else {
+				count+= 2000;
+				setTimeout(funct, 2000);
+			}
+		};
+		var wait = function() {
+			module.exports.active_emulator(function(vm) {
+				if(vm) {
+					callback();
+				} else {
+					nextTimeout(wait);
+				}
+			});
+		}
+		setTimeout(wait, 5000);
+	},
+	webos_images: function(callback) {
+		virtualbox.list(function(availableVMs) {
+			var webOS_VMs = {};
+			for(var x in availableVMs) {
+				if(availableVMs[x] && availableVMs[x].name) {
+					var name = availableVMs[x].name.toLowerCase();
+					if(name.indexOf("webos")>-1) {
+						webOS_VMs[x] = availableVMs[x];
+					}
+				}
+			}
+			callback(webOS_VMs);
+		});
+	},
+	legacy_emulator: function(callback) {
+		exec("palm-emulator", function (err, stdout, stderr) {
+			callback(err);
+		});
+	},
+	start_emulator: function(callback) {
+		module.exports.webos_images(function(webOS_VMs) {
+			var vm;
+			for(var x in webOS_VMs) {
+				vm = x;
+				if(webOS_VMs[x].name==="LG webOS TV Emulator") {
+					// ideal default VM name for SmartTV SDK-installed VM
+					break;
+				}
+			}
+			var emu_started = function(err) {
+				if(err) {
+					console.error("Unable to start emulator");
+				};
+				callback(err);
+			}
+			if(vm) {
+				virtualbox.start(vm, true, emu_started);
+			} else {
+				module.exports.legacy_emulator(emu_started);
+			}
+		});
+		
+	},
+	stop_emulator: function(callback) {
+		module.exports.active_emulator(function(active) {
+			if(active) {
+				virtualbox.poweroff(active.id, function(err) {
+					if(err) {
+						console.error("Unable to poweroff emulator");
+					};
+					callback(err);
+				});
+			} else {
+				callback();
+			}
+		})
+	}
+};

http://git-wip-us.apache.org/repos/asf/cordova-webos/blob/5400d1ec/bin/templates/project/cordova/lib/run.js
----------------------------------------------------------------------
diff --git a/bin/templates/project/cordova/lib/run.js b/bin/templates/project/cordova/lib/run.js
index 80c9961..d9a2704 100755
--- a/bin/templates/project/cordova/lib/run.js
+++ b/bin/templates/project/cordova/lib/run.js
@@ -1,112 +1,112 @@
-#!/usr/bin/env node
-
-/*
-       Licensed to the Apache Software Foundation (ASF) under one
-       or more contributor license agreements.  See the NOTICE file
-       distributed with this work for additional information
-       regarding copyright ownership.  The ASF licenses this file
-       to you 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"),
-    fs = require("fs"),
-    build = require("./build"),
-    spawn = require("./ares-spawn"),
-    emu = require("./emulator"),
-    Q = require("q"),
-    ROOT = path.join(__dirname, "..", "..");
-
-
-
-/*
- * Runs the application
- * Returns a promise.
- */
-module.exports.run = function(args) {
-  var build_type;
-  var install_target;
-
-  for (var i=2; i<args.length; i++) {
-      if (args[i] == "--debug" || args[i] == "--no-minify" || args[i] == "--enyo-debug") {
-          build_type = "--debug";
-      } else if (args[i] == "--emulator") {
-          install_target = "emulator";
-      } else if (args[i].substring(0, 9) == "--target=") {
-          install_target = args[i].substring(9, args[i].length);
-      }
-  }
-
-  var launchEmulatorIfNeeded = function() {
-    var d = Q.defer();
-    if(install_target==="emulator") {
-      emu.start_emulator(function(err1) {
-        if(err1) {
-          d.reject(err1);
-        } else {
-          emu.wait_for_emulator(function(err2) {
-            if(err2) {
-              d.reject(err2);
-            } else {
-              d.resolve();
-            }
-          });
-        }
-      });
-    } else {
-      d.resolve();
-    }
-    return d.promise;
-  }
-
-  return build.run(build_type).then(launchEmulatorIfNeeded).then(function() {
-      var installArgs = [];
-      if(install_target) {
-          installArgs.push("-d", install_target);
-      }
-      installArgs.push(build.get_ipk());
-      return spawn("ares-install", installArgs).then(function() {
-          var appinfoPath = path.join(ROOT, "www", "appinfo.json");
-          if(fs.existsSync(appinfoPath)) {
-              try {
-                  var appinfo = JSON.parse(fs.readFileSync(appinfoPath));
-                  return module.exports.launch(appinfo.id);
-              } catch(e) {
-                  console.error("ERROR : Unable to read \"appinfo.json\"; cannot determine appID to launch.");
-                  process.exit(2);
-              }
-            }
-      });
-  });
-};
-
-/*
- * Runs the application
- * Returns a promise.
- */
-module.exports.launch = function(appID) {
-  var doLaunch = function() {
-      return spawn("ares-launch", [appID]);
-  };
-  // close application if it's open, then launch
-  return spawn("ares-launch", ["-c", appID], "ignore").then(doLaunch, doLaunch);
-};
-
-module.exports.help = function() {
-    console.log("Usage: " + path.relative(process.cwd(), path.join(ROOT, 'cordova', 'run')) + " [options]");
-    console.log("Build options :");
-    console.log("    --debug|--no-minify : Builds project without minification");
-    console.log("    --emulator : Will deploy the built project to an emulator if one exists");
-    console.log("    --target=<target_id> : Installs to the target with the specified id.");
-    process.exit(0);
-};
+#!/usr/bin/env node
+
+/*
+       Licensed to the Apache Software Foundation (ASF) under one
+       or more contributor license agreements.  See the NOTICE file
+       distributed with this work for additional information
+       regarding copyright ownership.  The ASF licenses this file
+       to you 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"),
+    fs = require("fs"),
+    build = require("./build"),
+    spawn = require("./ares-spawn"),
+    emu = require("./emulator"),
+    Q = require("q"),
+    ROOT = path.join(__dirname, "..", "..");
+
+
+
+/*
+ * Runs the application
+ * Returns a promise.
+ */
+module.exports.run = function(args) {
+  var build_type;
+  var install_target;
+
+  for (var i=2; i<args.length; i++) {
+      if (args[i] == "--debug" || args[i] == "--no-minify" || args[i] == "--enyo-debug") {
+          build_type = "--debug";
+      } else if (args[i] == "--emulator") {
+          install_target = "emulator";
+      } else if (args[i].substring(0, 9) == "--target=") {
+          install_target = args[i].substring(9, args[i].length);
+      }
+  }
+
+  var launchEmulatorIfNeeded = function() {
+    var d = Q.defer();
+    if(install_target==="emulator") {
+      emu.start_emulator(function(err1) {
+        if(err1) {
+          d.reject(err1);
+        } else {
+          emu.wait_for_emulator(function(err2) {
+            if(err2) {
+              d.reject(err2);
+            } else {
+              d.resolve();
+            }
+          });
+        }
+      });
+    } else {
+      d.resolve();
+    }
+    return d.promise;
+  }
+
+  return build.run(build_type).then(launchEmulatorIfNeeded).then(function() {
+      var installArgs = [];
+      if(install_target) {
+          installArgs.push("-d", install_target);
+      }
+      installArgs.push(build.get_ipk());
+      return spawn("ares-install", installArgs).then(function() {
+          var appinfoPath = path.join(ROOT, "www", "appinfo.json");
+          if(fs.existsSync(appinfoPath)) {
+              try {
+                  var appinfo = JSON.parse(fs.readFileSync(appinfoPath));
+                  return module.exports.launch(appinfo.id);
+              } catch(e) {
+                  console.error("ERROR : Unable to read \"appinfo.json\"; cannot determine appID to launch.");
+                  process.exit(2);
+              }
+            }
+      });
+  });
+};
+
+/*
+ * Runs the application
+ * Returns a promise.
+ */
+module.exports.launch = function(appID) {
+  var doLaunch = function() {
+      return spawn("ares-launch", [appID]);
+  };
+  // close application if it's open, then launch
+  return spawn("ares-launch", ["-c", appID], "ignore").then(doLaunch, doLaunch);
+};
+
+module.exports.help = function() {
+    console.log("Usage: " + path.relative(process.cwd(), path.join(ROOT, 'cordova', 'run')) + " [options]");
+    console.log("Build options :");
+    console.log("    --debug|--no-minify : Builds project without minification");
+    console.log("    --emulator : Will deploy the built project to an emulator if one exists");
+    console.log("    --target=<target_id> : Installs to the target with the specified id.");
+    process.exit(0);
+};

http://git-wip-us.apache.org/repos/asf/cordova-webos/blob/5400d1ec/bin/templates/project/cordova/lib/virtualbox.js
----------------------------------------------------------------------
diff --git a/bin/templates/project/cordova/lib/virtualbox.js b/bin/templates/project/cordova/lib/virtualbox.js
index a398060..09946d2 100755
--- a/bin/templates/project/cordova/lib/virtualbox.js
+++ b/bin/templates/project/cordova/lib/virtualbox.js
@@ -1,362 +1,362 @@
-/*
-	Copyright © 2012-2014 Azer Koculu. All Rights Reserved. 
-	https://github.com/azer/node-virtualbox
-	
-	Additional contributions by Michael Sanford, Steffen Roegner, Jakub Lekstan, 
-	Christopher Najewicz, Cédric Belin, and Jason Robitaille.
-
-	Redistribution and use in source and binary forms, with or without modification, 
-	are permitted provided that the following conditions are met:
-
-	1. Redistributions of source code must retain the above copyright notice, 
-	this list of conditions and the following disclaimer.
-
-	2. Redistributions in binary form must reproduce the above copyright notice, 
-	this list of conditions and the following disclaimer in the documentation and/or 
-	other materials provided with the distribution.
-
-	3. The name of the author may not be used to endorse or promote products derived 
-	from this software without specific prior written permission.
-
-	THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
-	EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
-	OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
-	SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 
-	OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 
-	GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
-	CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-	(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
-	EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-"use strict";
-
-var exec = require('child_process').exec,
-	host_platform = process.platform,
-	vBoxManageBinary,
-	known_OS_types = {
-		WINDOWS: 'windows',
-		MAC: 'mac',
-		LINUX: 'linux'
-	};
-
-
-// Host operating system
-if (/^win/.test(host_platform)) {
-
-	// Path may not contain VBoxManage.exe but it provides this environment variable
-	var vBoxInstallPath = process.env.VBOX_INSTALL_PATH || process.env.VBOX_MSI_INSTALL_PATH;
-	vBoxManageBinary = '"' + vBoxInstallPath + '\\VBoxManage.exe' + '" ';
-
-} else if (/^darwin/.test(host_platform) || /^linux/.test(host_platform)) {
-
-	// Mac OS X and most Linux use the same binary name, in the path
-	vBoxManageBinary = 'vboxmanage ';
-
-} else {
-
-	// Otherwise (e.g., SunOS) hope it's in the path
-	vBoxManageBinary = 'vboxmanage ';
-
-}
-
-function command(cmd, callback) {
-	exec(cmd, function(err, stdout, stderr) {
-
-		if (!err && stderr && cmd.indexOf("pause") !== -1 && cmd.indexOf("savestate") !== -1) {
-			err = new Error(stderr);
-		}
-
-		callback(err, stdout);
-	});
-}
-
-function vboxcontrol(cmd, callback) {
-	command('VBoxControl ' + cmd, callback);
-}
-
-function vboxmanage(cmd, callback) {
-	command(vBoxManageBinary + cmd, callback);
-}
-
-function pause(vmname, callback) {
-	vboxmanage('controlvm "' + vmname + '" pause', function(error, stdout) {
-		callback(error);
-	});
-}
-
-function list(callback) {
-	vboxmanage('list "runningvms"', function(error, stdout) {
-		var _list = {};
-		var _runningvms = parse_listdata(stdout);
-		vboxmanage('list "vms"', function(error, full_stdout) {
-			var _all = parse_listdata(full_stdout);
-			var _keys = Object.keys(_all);
-			for (var _i = 0; _i < _keys.length; _i += 1) {
-				var _key = _keys[_i];
-				if (_runningvms[_key]) {
-					_all[_key].running = true;
-				} else {
-					_all[_key].running = false;
-				}
-			}
-			callback(_all, error);
-		});
-	});
-}
-
-function parse_listdata(raw_data) {
-	var _raw = raw_data.split(/\r?\n/g);
-	var _data = {};
-	if (_raw.length > 0) {
-		for (var _i = 0; _i < _raw.length; _i += 1) {
-			var _line = _raw[_i];
-			if (_line === '') {
-				continue;
-			}
-			// "centos6" {64ec13bb-5889-4352-aee9-0f1c2a17923d}
-			var rePattern = /^"(.+)" \{(.+)\}$/;
-			var arrMatches = _line.match(rePattern);
-			// {'64ec13bb-5889-4352-aee9-0f1c2a17923d': 'centos6'}
-			if (arrMatches && arrMatches.length === 3) {
-				_data[arrMatches[2].toString()] = {
-					name: arrMatches[1].toString()
-				};
-			}
-		}
-	}
-	return _data;
-}
-
-function info(vmname, callback) {
-	vboxmanage('showvminfo "' + vmname + '" --machinereadable', function(error, stdout) {
-		var info = {};
-		var data = stdout.split(/\r?\n/g);
-		for(var i=0; i<data.length; i++) {
-			if(data[i].length>0) {
-				var index = data[i].indexOf("=");
-				if(index>0) {
-					var key = parse_infoentry(data[i].substring(0, index));
-					var value = parse_infoentry(data[i].substring(index+1));
-					info[key] = value;
-				}
-			}
-		}
-		callback(info);
-	});
-}
-
-function parse_infoentry(entry) {
-	if(entry.length>1 && entry.charAt(0)=="\"") {
-		entry = entry.substring(1);
-	}
-	if(entry.length>1 && entry.charAt(entry.length-1)=="\"") {
-		entry = entry.substring(0, entry.length-1);
-	}
-	return entry;
-}
-
-function reset(vmname, callback) {
-	vboxmanage('controlvm "' + vmname + '" reset', function(error, stdout) {
-		callback(error);
-	});
-}
-
-function resume(vmname, callback) {
-	vboxmanage('controlvm "' + vmname + '" resume', function(error, stdout) {
-		callback(error);
-	});
-}
-
-function start(vmname, use_gui, callback) {
-	var start_opts = ' --type ';
-	if ((typeof use_gui) === 'function') {
-		callback = use_gui;
-		use_gui = false;
-	}
-	start_opts += (use_gui ? 'gui' : 'headless');
-
-	vboxmanage('-nologo startvm "' + vmname + '"' + start_opts, function(error, stdout) {
-		if (error && /VBOX_E_INVALID_OBJECT_STATE/.test(error.message)) {
-			error = undefined;
-		}
-		callback(error);
-	});
-}
-
-function stop(vmname, callback) {
-	vboxmanage('controlvm "' + vmname + '" savestate', function(error, stdout) {
-		callback(error);
-	});
-}
-
-function savestate(vmname, callback) {
-	stop(vmname, callback);
-}
-
-function poweroff(vmname, callback) {
-	vboxmanage('controlvm "' + vmname + '" poweroff', function(error, stdout) {
-		callback(error);
-	});
-}
-
-function acpipowerbutton(vmname, callback) {
-	vboxmanage('controlvm "' + vmname + '" acpipowerbutton', function(error, stdout) {
-		callback(error);
-	});
-}
-
-function acpisleepbutton(vmname, callback) {
-	vboxmanage('controlvm "' + vmname + '" acpisleepbutton', function(error, stdout) {
-		callback(error);
-	});
-}
-
-function vmExec(options, callback) {
-	var vm = options.vm || options.name || options.vmname || options.title,
-		username = options.user || options.username || 'Guest',
-		password = options.pass || options.passwd || options.password,
-		path = options.path || options.cmd || options.command || options.exec || options.execute || options.run,
-		cmd,
-		params = options.params || options.parameters || options.args;
-
-	if (Array.isArray(params)) {
-		params = params.join(" ");
-	}
-
-	if (params === undefined) {
-		params = "";
-	}
-
-	guestproperty.os(vm, getOSTypeCb);
-
-	function getOSTypeCb(os_type) {
-		var cmd = 'guestcontrol "' + vm + '"';
-
-		switch (os_type) {
-			case known_OS_types.WINDOWS:
-				path = path.replace(/\\/g, '\\\\');
-				cmd += ' execute	--image "cmd.exe" --username ' + username + (password ? ' --password ' + password : '') + ' -- "/c" "' + path + '" "' + params + '"';
-				break;
-			case known_OS_types.MAC:
-				cmd += ' execute	--image "/usr/bin/open -a" --username ' + username + (password ? ' --password ' + password : '') + ' -- "/c" "' + path + '" "' + params + '"';
-				break;
-			case known_OS_types.LINUX:
-				cmd += ' execute	--image "/bin/sh" --username ' + username + (password ? ' --password ' + password : '') + ' -- "/c" "' + path + '" "' + params + '"';
-				break;
-			default:
-				break;
-		}
-
-		vboxmanage(cmd, function(error, stdout) {
-			callback(error);
-		});
-	}
-
-}
-
-function vmKill(options, callback) {
-	options = options || {};
-	var vm = options.vm || options.name || options.vmname || options.title,
-		path = options.path || options.cmd || options.command || options.exec || options.execute || options.run,
-		image_name = options.image_name || path,
-		cmd = 'guestcontrol "' + vm + '" process kill';
-
-	guestproperty.os(vm, function(os_type) {
-		switch (os_type) {
-			case known_OS_types.WINDOWS:
-				vmExec({
-					vm: vm,
-					user: options.user,
-					password: options.password,
-					path: 'C:\\Windows\\System32\\taskkill.exe /im ',
-					params: image_name
-				}, callback);
-				break;
-			case known_OS_types.MAC:
-			case known_OS_types.LINUX:
-				vmExec({
-					vm: vm,
-					user: options.user,
-					password: options.password,
-					path: 'sudo killall ',
-					params: image_name
-				}, callback);
-				break;
-		}
-	});
-
-}
-
-var guestproperty = {
-	get: function(options, callback) {
-		var vm = options.vm || options.name || options.vmname || options.title,
-			key = options.key,
-			value = options.defaultValue || options.value;
-
-		guestproperty.os(vm, getOSTypeCallback);
-
-		function getOSTypeCallback(os_type) {
-			var cmd = 'guestproperty get "' + vm + '" ' + key;
-			vboxmanage(cmd, function(error, stdout) {
-				if (error) {
-					throw error;
-				}
-				var value = stdout.substr(stdout.indexOf(':') + 1).trim();
-				if (value === 'No value set!') {
-					value = undefined;
-				}
-				callback(value);
-			});
-		}
-
-	},
-
-	os_type: null, // cached
-
-	os: function(vmname, callback) {
-		function getOSTypeCallback(error, stdout, stderr) {
-			if (error) {
-				throw error;
-			}
-
-			// The ostype is matched against the ID attribute of 'vboxmanage list ostypes'
-			if (stdout.indexOf('ostype="Windows') !== -1) {
-				guestproperty.os_type = known_OS_types.WINDOWS;
-			} else if (stdout.indexOf('ostype="MacOS') !== -1) {
-				guestproperty.os_type = known_OS_types.MAC;
-			} else {
-				guestproperty.os_type = known_OS_types.LINUX;
-			}
-			callback(guestproperty.os_type);
-		}
-
-		if (guestproperty.os_type) {
-			return callback(guestproperty.os_type);
-		}
-
-		try {
-			exec(vBoxManageBinary + 'showvminfo -machinereadable "' + vmname + '"', getOSTypeCallback);
-		} catch (e) {
-			console.error('Could not showvminfo for ' + vmname);
-		}
-	}
-
-};
-
-module.exports = {
-	'exec': vmExec,
-	'kill': vmKill,
-	'list': list,
-	'info': info,
-	'pause': pause,
-	'reset': reset,
-	'resume': resume,
-	'start': start,
-	'stop': stop,
-	'savestate': savestate,
-	'poweroff': poweroff,
-	'acpisleepbutton': acpisleepbutton,
-	'acpipowerbutton': acpipowerbutton,
-	'guestproperty': guestproperty
+/*
+	Copyright © 2012-2014 Azer Koculu. All Rights Reserved. 
+	https://github.com/azer/node-virtualbox
+	
+	Additional contributions by Michael Sanford, Steffen Roegner, Jakub Lekstan, 
+	Christopher Najewicz, Cédric Belin, and Jason Robitaille.
+
+	Redistribution and use in source and binary forms, with or without modification, 
+	are permitted provided that the following conditions are met:
+
+	1. Redistributions of source code must retain the above copyright notice, 
+	this list of conditions and the following disclaimer.
+
+	2. Redistributions in binary form must reproduce the above copyright notice, 
+	this list of conditions and the following disclaimer in the documentation and/or 
+	other materials provided with the distribution.
+
+	3. The name of the author may not be used to endorse or promote products derived 
+	from this software without specific prior written permission.
+
+	THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
+	EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
+	OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
+	SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 
+	OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 
+	GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
+	CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+	(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
+	EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+"use strict";
+
+var exec = require('child_process').exec,
+	host_platform = process.platform,
+	vBoxManageBinary,
+	known_OS_types = {
+		WINDOWS: 'windows',
+		MAC: 'mac',
+		LINUX: 'linux'
+	};
+
+
+// Host operating system
+if (/^win/.test(host_platform)) {
+
+	// Path may not contain VBoxManage.exe but it provides this environment variable
+	var vBoxInstallPath = process.env.VBOX_INSTALL_PATH || process.env.VBOX_MSI_INSTALL_PATH;
+	vBoxManageBinary = '"' + vBoxInstallPath + '\\VBoxManage.exe' + '" ';
+
+} else if (/^darwin/.test(host_platform) || /^linux/.test(host_platform)) {
+
+	// Mac OS X and most Linux use the same binary name, in the path
+	vBoxManageBinary = 'vboxmanage ';
+
+} else {
+
+	// Otherwise (e.g., SunOS) hope it's in the path
+	vBoxManageBinary = 'vboxmanage ';
+
+}
+
+function command(cmd, callback) {
+	exec(cmd, function(err, stdout, stderr) {
+
+		if (!err && stderr && cmd.indexOf("pause") !== -1 && cmd.indexOf("savestate") !== -1) {
+			err = new Error(stderr);
+		}
+
+		callback(err, stdout);
+	});
+}
+
+function vboxcontrol(cmd, callback) {
+	command('VBoxControl ' + cmd, callback);
+}
+
+function vboxmanage(cmd, callback) {
+	command(vBoxManageBinary + cmd, callback);
+}
+
+function pause(vmname, callback) {
+	vboxmanage('controlvm "' + vmname + '" pause', function(error, stdout) {
+		callback(error);
+	});
+}
+
+function list(callback) {
+	vboxmanage('list "runningvms"', function(error, stdout) {
+		var _list = {};
+		var _runningvms = parse_listdata(stdout);
+		vboxmanage('list "vms"', function(error, full_stdout) {
+			var _all = parse_listdata(full_stdout);
+			var _keys = Object.keys(_all);
+			for (var _i = 0; _i < _keys.length; _i += 1) {
+				var _key = _keys[_i];
+				if (_runningvms[_key]) {
+					_all[_key].running = true;
+				} else {
+					_all[_key].running = false;
+				}
+			}
+			callback(_all, error);
+		});
+	});
+}
+
+function parse_listdata(raw_data) {
+	var _raw = raw_data.split(/\r?\n/g);
+	var _data = {};
+	if (_raw.length > 0) {
+		for (var _i = 0; _i < _raw.length; _i += 1) {
+			var _line = _raw[_i];
+			if (_line === '') {
+				continue;
+			}
+			// "centos6" {64ec13bb-5889-4352-aee9-0f1c2a17923d}
+			var rePattern = /^"(.+)" \{(.+)\}$/;
+			var arrMatches = _line.match(rePattern);
+			// {'64ec13bb-5889-4352-aee9-0f1c2a17923d': 'centos6'}
+			if (arrMatches && arrMatches.length === 3) {
+				_data[arrMatches[2].toString()] = {
+					name: arrMatches[1].toString()
+				};
+			}
+		}
+	}
+	return _data;
+}
+
+function info(vmname, callback) {
+	vboxmanage('showvminfo "' + vmname + '" --machinereadable', function(error, stdout) {
+		var info = {};
+		var data = stdout.split(/\r?\n/g);
+		for(var i=0; i<data.length; i++) {
+			if(data[i].length>0) {
+				var index = data[i].indexOf("=");
+				if(index>0) {
+					var key = parse_infoentry(data[i].substring(0, index));
+					var value = parse_infoentry(data[i].substring(index+1));
+					info[key] = value;
+				}
+			}
+		}
+		callback(info);
+	});
+}
+
+function parse_infoentry(entry) {
+	if(entry.length>1 && entry.charAt(0)=="\"") {
+		entry = entry.substring(1);
+	}
+	if(entry.length>1 && entry.charAt(entry.length-1)=="\"") {
+		entry = entry.substring(0, entry.length-1);
+	}
+	return entry;
+}
+
+function reset(vmname, callback) {
+	vboxmanage('controlvm "' + vmname + '" reset', function(error, stdout) {
+		callback(error);
+	});
+}
+
+function resume(vmname, callback) {
+	vboxmanage('controlvm "' + vmname + '" resume', function(error, stdout) {
+		callback(error);
+	});
+}
+
+function start(vmname, use_gui, callback) {
+	var start_opts = ' --type ';
+	if ((typeof use_gui) === 'function') {
+		callback = use_gui;
+		use_gui = false;
+	}
+	start_opts += (use_gui ? 'gui' : 'headless');
+
+	vboxmanage('-nologo startvm "' + vmname + '"' + start_opts, function(error, stdout) {
+		if (error && /VBOX_E_INVALID_OBJECT_STATE/.test(error.message)) {
+			error = undefined;
+		}
+		callback(error);
+	});
+}
+
+function stop(vmname, callback) {
+	vboxmanage('controlvm "' + vmname + '" savestate', function(error, stdout) {
+		callback(error);
+	});
+}
+
+function savestate(vmname, callback) {
+	stop(vmname, callback);
+}
+
+function poweroff(vmname, callback) {
+	vboxmanage('controlvm "' + vmname + '" poweroff', function(error, stdout) {
+		callback(error);
+	});
+}
+
+function acpipowerbutton(vmname, callback) {
+	vboxmanage('controlvm "' + vmname + '" acpipowerbutton', function(error, stdout) {
+		callback(error);
+	});
+}
+
+function acpisleepbutton(vmname, callback) {
+	vboxmanage('controlvm "' + vmname + '" acpisleepbutton', function(error, stdout) {
+		callback(error);
+	});
+}
+
+function vmExec(options, callback) {
+	var vm = options.vm || options.name || options.vmname || options.title,
+		username = options.user || options.username || 'Guest',
+		password = options.pass || options.passwd || options.password,
+		path = options.path || options.cmd || options.command || options.exec || options.execute || options.run,
+		cmd,
+		params = options.params || options.parameters || options.args;
+
+	if (Array.isArray(params)) {
+		params = params.join(" ");
+	}
+
+	if (params === undefined) {
+		params = "";
+	}
+
+	guestproperty.os(vm, getOSTypeCb);
+
+	function getOSTypeCb(os_type) {
+		var cmd = 'guestcontrol "' + vm + '"';
+
+		switch (os_type) {
+			case known_OS_types.WINDOWS:
+				path = path.replace(/\\/g, '\\\\');
+				cmd += ' execute	--image "cmd.exe" --username ' + username + (password ? ' --password ' + password : '') + ' -- "/c" "' + path + '" "' + params + '"';
+				break;
+			case known_OS_types.MAC:
+				cmd += ' execute	--image "/usr/bin/open -a" --username ' + username + (password ? ' --password ' + password : '') + ' -- "/c" "' + path + '" "' + params + '"';
+				break;
+			case known_OS_types.LINUX:
+				cmd += ' execute	--image "/bin/sh" --username ' + username + (password ? ' --password ' + password : '') + ' -- "/c" "' + path + '" "' + params + '"';
+				break;
+			default:
+				break;
+		}
+
+		vboxmanage(cmd, function(error, stdout) {
+			callback(error);
+		});
+	}
+
+}
+
+function vmKill(options, callback) {
+	options = options || {};
+	var vm = options.vm || options.name || options.vmname || options.title,
+		path = options.path || options.cmd || options.command || options.exec || options.execute || options.run,
+		image_name = options.image_name || path,
+		cmd = 'guestcontrol "' + vm + '" process kill';
+
+	guestproperty.os(vm, function(os_type) {
+		switch (os_type) {
+			case known_OS_types.WINDOWS:
+				vmExec({
+					vm: vm,
+					user: options.user,
+					password: options.password,
+					path: 'C:\\Windows\\System32\\taskkill.exe /im ',
+					params: image_name
+				}, callback);
+				break;
+			case known_OS_types.MAC:
+			case known_OS_types.LINUX:
+				vmExec({
+					vm: vm,
+					user: options.user,
+					password: options.password,
+					path: 'sudo killall ',
+					params: image_name
+				}, callback);
+				break;
+		}
+	});
+
+}
+
+var guestproperty = {
+	get: function(options, callback) {
+		var vm = options.vm || options.name || options.vmname || options.title,
+			key = options.key,
+			value = options.defaultValue || options.value;
+
+		guestproperty.os(vm, getOSTypeCallback);
+
+		function getOSTypeCallback(os_type) {
+			var cmd = 'guestproperty get "' + vm + '" ' + key;
+			vboxmanage(cmd, function(error, stdout) {
+				if (error) {
+					throw error;
+				}
+				var value = stdout.substr(stdout.indexOf(':') + 1).trim();
+				if (value === 'No value set!') {
+					value = undefined;
+				}
+				callback(value);
+			});
+		}
+
+	},
+
+	os_type: null, // cached
+
+	os: function(vmname, callback) {
+		function getOSTypeCallback(error, stdout, stderr) {
+			if (error) {
+				throw error;
+			}
+
+			// The ostype is matched against the ID attribute of 'vboxmanage list ostypes'
+			if (stdout.indexOf('ostype="Windows') !== -1) {
+				guestproperty.os_type = known_OS_types.WINDOWS;
+			} else if (stdout.indexOf('ostype="MacOS') !== -1) {
+				guestproperty.os_type = known_OS_types.MAC;
+			} else {
+				guestproperty.os_type = known_OS_types.LINUX;
+			}
+			callback(guestproperty.os_type);
+		}
+
+		if (guestproperty.os_type) {
+			return callback(guestproperty.os_type);
+		}
+
+		try {
+			exec(vBoxManageBinary + 'showvminfo -machinereadable "' + vmname + '"', getOSTypeCallback);
+		} catch (e) {
+			console.error('Could not showvminfo for ' + vmname);
+		}
+	}
+
+};
+
+module.exports = {
+	'exec': vmExec,
+	'kill': vmKill,
+	'list': list,
+	'info': info,
+	'pause': pause,
+	'reset': reset,
+	'resume': resume,
+	'start': start,
+	'stop': stop,
+	'savestate': savestate,
+	'poweroff': poweroff,
+	'acpisleepbutton': acpisleepbutton,
+	'acpipowerbutton': acpipowerbutton,
+	'guestproperty': guestproperty
 };
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-webos/blob/5400d1ec/bin/templates/project/cordova/run.bat
----------------------------------------------------------------------
diff --git a/bin/templates/project/cordova/run.bat b/bin/templates/project/cordova/run.bat
index dedec4f..b0bc28b 100755
--- a/bin/templates/project/cordova/run.bat
+++ b/bin/templates/project/cordova/run.bat
@@ -1,26 +1,26 @@
-:: Licensed to the Apache Software Foundation (ASF) under one
-:: or more contributor license agreements.  See the NOTICE file
-:: distributed with this work for additional information
-:: regarding copyright ownership.  The ASF licenses this file
-:: to you 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.
-
-@ECHO OFF
-SET script_path="%~dp0run"
-IF EXIST %script_path% (
-        node %script_path% %*
-) ELSE (
-    ECHO.
-    ECHO ERROR: Could not find 'run' script in 'cordova' folder, aborting...>&2
-    EXIT /B 1
+:: Licensed to the Apache Software Foundation (ASF) under one
+:: or more contributor license agreements.  See the NOTICE file
+:: distributed with this work for additional information
+:: regarding copyright ownership.  The ASF licenses this file
+:: to you 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.
+
+@ECHO OFF
+SET script_path="%~dp0run"
+IF EXIST %script_path% (
+        node %script_path% %*
+) ELSE (
+    ECHO.
+    ECHO ERROR: Could not find 'run' script in 'cordova' folder, aborting...>&2
+    EXIT /B 1
 )
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-webos/blob/5400d1ec/bin/templates/project/cordova/version.bat
----------------------------------------------------------------------
diff --git a/bin/templates/project/cordova/version.bat b/bin/templates/project/cordova/version.bat
index 94395d3..3610c17 100755
--- a/bin/templates/project/cordova/version.bat
+++ b/bin/templates/project/cordova/version.bat
@@ -1,26 +1,26 @@
-:: Licensed to the Apache Software Foundation (ASF) under one
-:: or more contributor license agreements.  See the NOTICE file
-:: distributed with this work for additional information
-:: regarding copyright ownership.  The ASF licenses this file
-:: to you 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.
-
-@ECHO OFF
-SET script_path="%~dp0version"
-IF EXIST %script_path% (
-        node %script_path% %*
-) ELSE (
-    ECHO.
-    ECHO ERROR: Could not find 'version' script in 'cordova' folder, aborting...>&2
-    EXIT /B 1
-)
+:: Licensed to the Apache Software Foundation (ASF) under one
+:: or more contributor license agreements.  See the NOTICE file
+:: distributed with this work for additional information
+:: regarding copyright ownership.  The ASF licenses this file
+:: to you 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.
+
+@ECHO OFF
+SET script_path="%~dp0version"
+IF EXIST %script_path% (
+        node %script_path% %*
+) ELSE (
+    ECHO.
+    ECHO ERROR: Could not find 'version' script in 'cordova' folder, aborting...>&2
+    EXIT /B 1
+)

http://git-wip-us.apache.org/repos/asf/cordova-webos/blob/5400d1ec/bin/templates/project/www/appinfo.json
----------------------------------------------------------------------
diff --git a/bin/templates/project/www/appinfo.json b/bin/templates/project/www/appinfo.json
index f0fc03c..d946da1 100755
--- a/bin/templates/project/www/appinfo.json
+++ b/bin/templates/project/www/appinfo.json
@@ -1,10 +1,10 @@
-{
-	"id": "org.apache.cordova.example",
-	"version": "0.0.1",
-	"vendor": "Apache Cordova Team",
-	"type": "web",
-	"main": "index.html",
-	"title": "CordovaExample",
-	"icon": "img/logo.png",
-	"uiRevision":2
-}
+{
+	"id": "org.apache.cordova.example",
+	"version": "0.0.1",
+	"vendor": "Apache Cordova Team",
+	"type": "web",
+	"main": "index.html",
+	"title": "CordovaExample",
+	"icon": "img/logo.png",
+	"uiRevision":2
+}

http://git-wip-us.apache.org/repos/asf/cordova-webos/blob/5400d1ec/bin/templates/project/www/css/index.css
----------------------------------------------------------------------
diff --git a/bin/templates/project/www/css/index.css b/bin/templates/project/www/css/index.css
index be178b7..51daa79 100755
--- a/bin/templates/project/www/css/index.css
+++ b/bin/templates/project/www/css/index.css
@@ -1,115 +1,115 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-* {
-    -webkit-tap-highlight-color: rgba(0,0,0,0); /* make transparent link selection, adjust last value opacity 0 to 1.0 */
-}
-
-body {
-    -webkit-touch-callout: none;                /* prevent callout to copy image, etc when tap to hold */
-    -webkit-text-size-adjust: none;             /* prevent webkit from resizing text to fit */
-    -webkit-user-select: none;                  /* prevent copy paste, to allow, change 'none' to 'text' */
-    background-color:#E4E4E4;
-    background-image:linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
-    background-image:-webkit-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
-    background-image:-ms-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
-    background-image:-webkit-gradient(
-        linear,
-        left top,
-        left bottom,
-        color-stop(0, #A7A7A7),
-        color-stop(0.51, #E4E4E4)
-    );
-    background-attachment:fixed;
-    font-family:'HelveticaNeue-Light', 'HelveticaNeue', Helvetica, Arial, sans-serif;
-    font-size:12px;
-    height:100%;
-    margin:0px;
-    padding:0px;
-    text-transform:uppercase;
-    width:100%;
-}
-
-/* Portrait layout (default) */
-.app {
-    background:url(../img/logo.png) no-repeat center top; /* 170px x 200px */
-    position:absolute;             /* position in the center of the screen */
-    left:50%;
-    top:50%;
-    height:50px;                   /* text area height */
-    width:225px;                   /* text area width */
-    text-align:center;
-    padding:180px 0px 0px 0px;     /* image height is 200px (bottom 20px are overlapped with text) */
-    margin:-115px 0px 0px -112px;  /* offset vertical: half of image height and text area height */
-                                   /* offset horizontal: half of text area width */
-}
-
-/* Landscape layout (with min-width) */
-@media screen and (min-aspect-ratio: 1/1) and (min-width:400px) {
-    .app {
-        background-position:left center;
-        padding:75px 0px 75px 170px;  /* padding-top + padding-bottom + text area = image height */
-        margin:-90px 0px 0px -198px;  /* offset vertical: half of image height */
-                                      /* offset horizontal: half of image width and text area width */
-    }
-}
-
-h1 {
-    font-size:24px;
-    font-weight:normal;
-    margin:0px;
-    overflow:visible;
-    padding:0px;
-    text-align:center;
-}
-
-.event {
-    border-radius:4px;
-    -webkit-border-radius:4px;
-    color:#FFFFFF;
-    font-size:12px;
-    margin:0px 30px;
-    padding:2px 0px;
-}
-
-.event.listening {
-    background-color:#333333;
-    display:block;
-}
-
-.event.received {
-    background-color:#4B946A;
-    display:none;
-}
-
-@keyframes fade {
-    from { opacity: 1.0; }
-    50% { opacity: 0.4; }
-    to { opacity: 1.0; }
-}
- 
-@-webkit-keyframes fade {
-    from { opacity: 1.0; }
-    50% { opacity: 0.4; }
-    to { opacity: 1.0; }
-}
- 
-.blink {
-    animation:fade 3000ms infinite;
-    -webkit-animation:fade 3000ms infinite;
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+* {
+    -webkit-tap-highlight-color: rgba(0,0,0,0); /* make transparent link selection, adjust last value opacity 0 to 1.0 */
+}
+
+body {
+    -webkit-touch-callout: none;                /* prevent callout to copy image, etc when tap to hold */
+    -webkit-text-size-adjust: none;             /* prevent webkit from resizing text to fit */
+    -webkit-user-select: none;                  /* prevent copy paste, to allow, change 'none' to 'text' */
+    background-color:#E4E4E4;
+    background-image:linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
+    background-image:-webkit-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
+    background-image:-ms-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
+    background-image:-webkit-gradient(
+        linear,
+        left top,
+        left bottom,
+        color-stop(0, #A7A7A7),
+        color-stop(0.51, #E4E4E4)
+    );
+    background-attachment:fixed;
+    font-family:'HelveticaNeue-Light', 'HelveticaNeue', Helvetica, Arial, sans-serif;
+    font-size:12px;
+    height:100%;
+    margin:0px;
+    padding:0px;
+    text-transform:uppercase;
+    width:100%;
+}
+
+/* Portrait layout (default) */
+.app {
+    background:url(../img/logo.png) no-repeat center top; /* 170px x 200px */
+    position:absolute;             /* position in the center of the screen */
+    left:50%;
+    top:50%;
+    height:50px;                   /* text area height */
+    width:225px;                   /* text area width */
+    text-align:center;
+    padding:180px 0px 0px 0px;     /* image height is 200px (bottom 20px are overlapped with text) */
+    margin:-115px 0px 0px -112px;  /* offset vertical: half of image height and text area height */
+                                   /* offset horizontal: half of text area width */
+}
+
+/* Landscape layout (with min-width) */
+@media screen and (min-aspect-ratio: 1/1) and (min-width:400px) {
+    .app {
+        background-position:left center;
+        padding:75px 0px 75px 170px;  /* padding-top + padding-bottom + text area = image height */
+        margin:-90px 0px 0px -198px;  /* offset vertical: half of image height */
+                                      /* offset horizontal: half of image width and text area width */
+    }
+}
+
+h1 {
+    font-size:24px;
+    font-weight:normal;
+    margin:0px;
+    overflow:visible;
+    padding:0px;
+    text-align:center;
+}
+
+.event {
+    border-radius:4px;
+    -webkit-border-radius:4px;
+    color:#FFFFFF;
+    font-size:12px;
+    margin:0px 30px;
+    padding:2px 0px;
+}
+
+.event.listening {
+    background-color:#333333;
+    display:block;
+}
+
+.event.received {
+    background-color:#4B946A;
+    display:none;
+}
+
+@keyframes fade {
+    from { opacity: 1.0; }
+    50% { opacity: 0.4; }
+    to { opacity: 1.0; }
+}
+ 
+@-webkit-keyframes fade {
+    from { opacity: 1.0; }
+    50% { opacity: 0.4; }
+    to { opacity: 1.0; }
+}
+ 
+.blink {
+    animation:fade 3000ms infinite;
+    -webkit-animation:fade 3000ms infinite;
+}

http://git-wip-us.apache.org/repos/asf/cordova-webos/blob/5400d1ec/bin/templates/project/www/index.html
----------------------------------------------------------------------
diff --git a/bin/templates/project/www/index.html b/bin/templates/project/www/index.html
index 3bd1b6d..bde5741 100755
--- a/bin/templates/project/www/index.html
+++ b/bin/templates/project/www/index.html
@@ -1,43 +1,43 @@
-<!DOCTYPE html>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you 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.
--->
-<html>
-    <head>
-        <meta charset="utf-8" />
-        <meta name="format-detection" content="telephone=no" />
-        <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
-        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
-        <link rel="stylesheet" type="text/css" href="css/index.css" />
-        <title>Hello World</title>
-    </head>
-    <body>
-        <div class="app">
-            <h1>Apache Cordova</h1>
-            <div id="deviceready" class="blink">
-                <p class="event listening">Connecting to Device</p>
-                <p class="event received">Device is Ready</p>
-            </div>
-        </div>
-        <script type="text/javascript" src="cordova.js"></script>
-        <script type="text/javascript" src="js/index.js"></script>
-        <script type="text/javascript">
-            app.initialize();
-        </script>
-    </body>
-</html>
+<!DOCTYPE html>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you 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.
+-->
+<html>
+    <head>
+        <meta charset="utf-8" />
+        <meta name="format-detection" content="telephone=no" />
+        <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
+        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
+        <link rel="stylesheet" type="text/css" href="css/index.css" />
+        <title>Hello World</title>
+    </head>
+    <body>
+        <div class="app">
+            <h1>Apache Cordova</h1>
+            <div id="deviceready" class="blink">
+                <p class="event listening">Connecting to Device</p>
+                <p class="event received">Device is Ready</p>
+            </div>
+        </div>
+        <script type="text/javascript" src="cordova.js"></script>
+        <script type="text/javascript" src="js/index.js"></script>
+        <script type="text/javascript">
+            app.initialize();
+        </script>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/cordova-webos/blob/5400d1ec/bin/templates/project/www/js/index.js
----------------------------------------------------------------------
diff --git a/bin/templates/project/www/js/index.js b/bin/templates/project/www/js/index.js
index 5bba3a9..31d9064 100755
--- a/bin/templates/project/www/js/index.js
+++ b/bin/templates/project/www/js/index.js
@@ -1,49 +1,49 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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 app = {
-    // Application Constructor
-    initialize: function() {
-        this.bindEvents();
-    },
-    // Bind Event Listeners
-    //
-    // Bind any events that are required on startup. Common events are:
-    // 'load', 'deviceready', 'offline', and 'online'.
-    bindEvents: function() {
-        document.addEventListener('deviceready', this.onDeviceReady, false);
-    },
-    // deviceready Event Handler
-    //
-    // The scope of 'this' is the event. In order to call the 'receivedEvent'
-    // function, we must explicity call 'app.receivedEvent(...);'
-    onDeviceReady: function() {
-        app.receivedEvent('deviceready');
-    },
-    // Update DOM on a Received Event
-    receivedEvent: function(id) {
-        var parentElement = document.getElementById(id);
-        var listeningElement = parentElement.querySelector('.listening');
-        var receivedElement = parentElement.querySelector('.received');
-
-        listeningElement.setAttribute('style', 'display:none;');
-        receivedElement.setAttribute('style', 'display:block;');
-
-        console.log('Received Event: ' + id);
-    }
-};
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 app = {
+    // Application Constructor
+    initialize: function() {
+        this.bindEvents();
+    },
+    // Bind Event Listeners
+    //
+    // Bind any events that are required on startup. Common events are:
+    // 'load', 'deviceready', 'offline', and 'online'.
+    bindEvents: function() {
+        document.addEventListener('deviceready', this.onDeviceReady, false);
+    },
+    // deviceready Event Handler
+    //
+    // The scope of 'this' is the event. In order to call the 'receivedEvent'
+    // function, we must explicity call 'app.receivedEvent(...);'
+    onDeviceReady: function() {
+        app.receivedEvent('deviceready');
+    },
+    // Update DOM on a Received Event
+    receivedEvent: function(id) {
+        var parentElement = document.getElementById(id);
+        var listeningElement = parentElement.querySelector('.listening');
+        var receivedElement = parentElement.querySelector('.received');
+
+        listeningElement.setAttribute('style', 'display:none;');
+        receivedElement.setAttribute('style', 'display:block;');
+
+        console.log('Received Event: ' + id);
+    }
+};

http://git-wip-us.apache.org/repos/asf/cordova-webos/blob/5400d1ec/bin/templates/project/www/spec.html
----------------------------------------------------------------------
diff --git a/bin/templates/project/www/spec.html b/bin/templates/project/www/spec.html
index 6f4f6db..71f00de 100755
--- a/bin/templates/project/www/spec.html
+++ b/bin/templates/project/www/spec.html
@@ -1,68 +1,68 @@
-<!DOCTYPE html>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you 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.
--->
-<html>
-    <head>
-        <title>Jasmine Spec Runner</title>
-
-        <!-- jasmine source -->
-        <link rel="shortcut icon" type="image/png" href="spec/lib/jasmine-1.2.0/jasmine_favicon.png">
-        <link rel="stylesheet" type="text/css" href="spec/lib/jasmine-1.2.0/jasmine.css">
-        <script type="text/javascript" src="spec/lib/jasmine-1.2.0/jasmine.js"></script>
-        <script type="text/javascript" src="spec/lib/jasmine-1.2.0/jasmine-html.js"></script>
-
-        <!-- include source files here... -->
-        <script type="text/javascript" src="js/index.js"></script>
-
-        <!-- include spec files here... -->
-        <script type="text/javascript" src="spec/helper.js"></script>
-        <script type="text/javascript" src="spec/index.js"></script>
-
-        <script type="text/javascript">
-            (function() {
-                var jasmineEnv = jasmine.getEnv();
-                jasmineEnv.updateInterval = 1000;
-
-                var htmlReporter = new jasmine.HtmlReporter();
-
-                jasmineEnv.addReporter(htmlReporter);
-
-                jasmineEnv.specFilter = function(spec) {
-                    return htmlReporter.specFilter(spec);
-                };
-
-                var currentWindowOnload = window.onload;
-
-                window.onload = function() {
-                    if (currentWindowOnload) {
-                        currentWindowOnload();
-                    }
-                    execJasmine();
-                };
-
-                function execJasmine() {
-                    jasmineEnv.execute();
-                }
-            })();
-        </script>
-    </head>
-    <body>
-        <div id="stage" style="display:none;"></div>
-    </body>
-</html>
+<!DOCTYPE html>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you 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.
+-->
+<html>
+    <head>
+        <title>Jasmine Spec Runner</title>
+
+        <!-- jasmine source -->
+        <link rel="shortcut icon" type="image/png" href="spec/lib/jasmine-1.2.0/jasmine_favicon.png">
+        <link rel="stylesheet" type="text/css" href="spec/lib/jasmine-1.2.0/jasmine.css">
+        <script type="text/javascript" src="spec/lib/jasmine-1.2.0/jasmine.js"></script>
+        <script type="text/javascript" src="spec/lib/jasmine-1.2.0/jasmine-html.js"></script>
+
+        <!-- include source files here... -->
+        <script type="text/javascript" src="js/index.js"></script>
+
+        <!-- include spec files here... -->
+        <script type="text/javascript" src="spec/helper.js"></script>
+        <script type="text/javascript" src="spec/index.js"></script>
+
+        <script type="text/javascript">
+            (function() {
+                var jasmineEnv = jasmine.getEnv();
+                jasmineEnv.updateInterval = 1000;
+
+                var htmlReporter = new jasmine.HtmlReporter();
+
+                jasmineEnv.addReporter(htmlReporter);
+
+                jasmineEnv.specFilter = function(spec) {
+                    return htmlReporter.specFilter(spec);
+                };
+
+                var currentWindowOnload = window.onload;
+
+                window.onload = function() {
+                    if (currentWindowOnload) {
+                        currentWindowOnload();
+                    }
+                    execJasmine();
+                };
+
+                function execJasmine() {
+                    jasmineEnv.execute();
+                }
+            })();
+        </script>
+    </head>
+    <body>
+        <div id="stage" style="display:none;"></div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/cordova-webos/blob/5400d1ec/bin/templates/project/www/spec/helper.js
----------------------------------------------------------------------
diff --git a/bin/templates/project/www/spec/helper.js b/bin/templates/project/www/spec/helper.js
index 98e84d8..929f776 100755
--- a/bin/templates/project/www/spec/helper.js
+++ b/bin/templates/project/www/spec/helper.js
@@ -1,33 +1,33 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-afterEach(function() {
-    document.getElementById('stage').innerHTML = '';
-});
-
-var helper = {
-    trigger: function(obj, name) {
-        var e = document.createEvent('Event');
-        e.initEvent(name, true, true);
-        obj.dispatchEvent(e);
-    },
-    getComputedStyle: function(querySelector, property) {
-        var element = document.querySelector(querySelector);
-        return window.getComputedStyle(element).getPropertyValue(property);
-    }
-};
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+afterEach(function() {
+    document.getElementById('stage').innerHTML = '';
+});
+
+var helper = {
+    trigger: function(obj, name) {
+        var e = document.createEvent('Event');
+        e.initEvent(name, true, true);
+        obj.dispatchEvent(e);
+    },
+    getComputedStyle: function(querySelector, property) {
+        var element = document.querySelector(querySelector);
+        return window.getComputedStyle(element).getPropertyValue(property);
+    }
+};

http://git-wip-us.apache.org/repos/asf/cordova-webos/blob/5400d1ec/bin/templates/project/www/spec/index.js
----------------------------------------------------------------------
diff --git a/bin/templates/project/www/spec/index.js b/bin/templates/project/www/spec/index.js
index f9f729a..20f8be5 100755
--- a/bin/templates/project/www/spec/index.js
+++ b/bin/templates/project/www/spec/index.js
@@ -1,67 +1,67 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-describe('app', function() {
-    describe('initialize', function() {
-        it('should bind deviceready', function() {
-            runs(function() {
-                spyOn(app, 'onDeviceReady');
-                app.initialize();
-                helper.trigger(window.document, 'deviceready');
-            });
-
-            waitsFor(function() {
-                return (app.onDeviceReady.calls.length > 0);
-            }, 'onDeviceReady should be called once', 500);
-
-            runs(function() {
-                expect(app.onDeviceReady).toHaveBeenCalled();
-            });
-        });
-    });
-
-    describe('onDeviceReady', function() {
-        it('should report that it fired', function() {
-            spyOn(app, 'receivedEvent');
-            app.onDeviceReady();
-            expect(app.receivedEvent).toHaveBeenCalledWith('deviceready');
-        });
-    });
-
-    describe('receivedEvent', function() {
-        beforeEach(function() {
-            var el = document.getElementById('stage');
-            el.innerHTML = ['<div id="deviceready">',
-                            '    <p class="event listening">Listening</p>',
-                            '    <p class="event received">Received</p>',
-                            '</div>'].join('\n');
-        });
-
-        it('should hide the listening element', function() {
-            app.receivedEvent('deviceready');
-            var displayStyle = helper.getComputedStyle('#deviceready .listening', 'display');
-            expect(displayStyle).toEqual('none');
-        });
-
-        it('should show the received element', function() {
-            app.receivedEvent('deviceready');
-            var displayStyle = helper.getComputedStyle('#deviceready .received', 'display');
-            expect(displayStyle).toEqual('block');
-        });
-    });
-});
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+describe('app', function() {
+    describe('initialize', function() {
+        it('should bind deviceready', function() {
+            runs(function() {
+                spyOn(app, 'onDeviceReady');
+                app.initialize();
+                helper.trigger(window.document, 'deviceready');
+            });
+
+            waitsFor(function() {
+                return (app.onDeviceReady.calls.length > 0);
+            }, 'onDeviceReady should be called once', 500);
+
+            runs(function() {
+                expect(app.onDeviceReady).toHaveBeenCalled();
+            });
+        });
+    });
+
+    describe('onDeviceReady', function() {
+        it('should report that it fired', function() {
+            spyOn(app, 'receivedEvent');
+            app.onDeviceReady();
+            expect(app.receivedEvent).toHaveBeenCalledWith('deviceready');
+        });
+    });
+
+    describe('receivedEvent', function() {
+        beforeEach(function() {
+            var el = document.getElementById('stage');
+            el.innerHTML = ['<div id="deviceready">',
+                            '    <p class="event listening">Listening</p>',
+                            '    <p class="event received">Received</p>',
+                            '</div>'].join('\n');
+        });
+
+        it('should hide the listening element', function() {
+            app.receivedEvent('deviceready');
+            var displayStyle = helper.getComputedStyle('#deviceready .listening', 'display');
+            expect(displayStyle).toEqual('none');
+        });
+
+        it('should show the received element', function() {
+            app.receivedEvent('deviceready');
+            var displayStyle = helper.getComputedStyle('#deviceready .received', 'display');
+            expect(displayStyle).toEqual('block');
+        });
+    });
+});

http://git-wip-us.apache.org/repos/asf/cordova-webos/blob/5400d1ec/bin/templates/project/www/spec/lib/jasmine-1.2.0/MIT.LICENSE
----------------------------------------------------------------------
diff --git a/bin/templates/project/www/spec/lib/jasmine-1.2.0/MIT.LICENSE b/bin/templates/project/www/spec/lib/jasmine-1.2.0/MIT.LICENSE
index d6cfd3f..7c435ba 100755
--- a/bin/templates/project/www/spec/lib/jasmine-1.2.0/MIT.LICENSE
+++ b/bin/templates/project/www/spec/lib/jasmine-1.2.0/MIT.LICENSE
@@ -1,20 +1,20 @@
-Copyright (c) 2008-2011 Pivotal Labs
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+Copyright (c) 2008-2011 Pivotal Labs
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org


Mime
View raw message