aboutsummaryrefslogtreecommitdiffstats
path: root/alias-angular/scripts
diff options
context:
space:
mode:
authorGuillaume Horel <guillaume.horel@gmail.com>2012-04-02 02:37:41 -0400
committerGuillaume Horel <guillaume.horel@gmail.com>2012-04-02 02:37:41 -0400
commit28a5d4fbf8a42649360e9d1e1206c062e0a5ce8d (patch)
tree0c0842aab6ca8259f14fc9b760eb742098fa1aaa /alias-angular/scripts
parent0a74881345b16b39487493364bb0c24f8cc47967 (diff)
downloadalias-28a5d4fbf8a42649360e9d1e1206c062e0a5ce8d.tar.gz
regorg files
Diffstat (limited to 'alias-angular/scripts')
-rw-r--r--alias-angular/scripts/e2e-test-server.bat18
-rwxr-xr-xalias-angular/scripts/e2e-test-server.sh14
-rw-r--r--alias-angular/scripts/e2e-test.bat13
-rwxr-xr-xalias-angular/scripts/e2e-test.sh8
-rw-r--r--alias-angular/scripts/test-server.bat19
-rwxr-xr-xalias-angular/scripts/test-server.sh14
-rw-r--r--alias-angular/scripts/test.bat14
-rwxr-xr-xalias-angular/scripts/test.sh8
-rwxr-xr-xalias-angular/scripts/watchr.rb19
-rwxr-xr-xalias-angular/scripts/web-server.js243
10 files changed, 370 insertions, 0 deletions
diff --git a/alias-angular/scripts/e2e-test-server.bat b/alias-angular/scripts/e2e-test-server.bat
new file mode 100644
index 0000000..f857b0d
--- /dev/null
+++ b/alias-angular/scripts/e2e-test-server.bat
@@ -0,0 +1,18 @@
+@echo off
+
+REM Windows script for starting JSTD server
+REM
+REM Requirements:
+REM - Java (http://www.java.com)
+
+set BASE_DIR=%~dp0
+set PORT=9877
+
+echo "Starting JsTestDriver Server (http://code.google.com/p/js-test-driver/)"
+echo "Please open the following url and capture one or more browsers:"
+echo "http://localhost:%PORT%"
+java -jar "%BASE_DIR%\..\test\lib\jstestdriver\JsTestDriver.jar" ^
+ --port %PORT% ^
+ --browserTimeout 20000 ^
+ --config "%BASE_DIR%\..\config\jsTestDriver-scenario.conf" ^
+ --basePath "%BASE_DIR%\.."
diff --git a/alias-angular/scripts/e2e-test-server.sh b/alias-angular/scripts/e2e-test-server.sh
new file mode 100755
index 0000000..5a4e04c
--- /dev/null
+++ b/alias-angular/scripts/e2e-test-server.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+BASE_DIR=`dirname $0`
+PORT=9877
+
+echo "Starting JsTestDriver Server (http://code.google.com/p/js-test-driver/)"
+echo "Please open the following url and capture one or more browsers:"
+echo "http://localhost:$PORT"
+
+java -jar "$BASE_DIR/../test/lib/jstestdriver/JsTestDriver.jar" \
+ --port $PORT \
+ --browserTimeout 20000 \
+ --config "$BASE_DIR/../config/jsTestDriver-scenario.conf" \
+ --basePath "$BASE_DIR/.."
diff --git a/alias-angular/scripts/e2e-test.bat b/alias-angular/scripts/e2e-test.bat
new file mode 100644
index 0000000..f630363
--- /dev/null
+++ b/alias-angular/scripts/e2e-test.bat
@@ -0,0 +1,13 @@
+@echo off
+
+REM Windows script for running e2e tests
+REM You have to run server and capture some browser first
+REM
+REM Requirements:
+REM - Java (http://www.java.com)
+
+set BASE_DIR=%~dp0
+java -jar "%BASE_DIR%\..\test\lib\jstestdriver\JsTestDriver.jar" ^
+ --config "%BASE_DIR%\..\config\jsTestDriver-scenario.conf" ^
+ --basePath "%BASE_DIR%\.." ^
+ --tests all --reset
diff --git a/alias-angular/scripts/e2e-test.sh b/alias-angular/scripts/e2e-test.sh
new file mode 100755
index 0000000..41211f7
--- /dev/null
+++ b/alias-angular/scripts/e2e-test.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+BASE_DIR=`dirname $0`
+
+java -jar "$BASE_DIR/../test/lib/jstestdriver/JsTestDriver.jar" \
+ --config "$BASE_DIR/../config/jsTestDriver-scenario.conf" \
+ --basePath "$BASE_DIR/.." \
+ --tests all --reset
diff --git a/alias-angular/scripts/test-server.bat b/alias-angular/scripts/test-server.bat
new file mode 100644
index 0000000..0b7fa66
--- /dev/null
+++ b/alias-angular/scripts/test-server.bat
@@ -0,0 +1,19 @@
+@echo off
+
+REM Windows script for starting JSTD server
+REM
+REM Requirements:
+REM - Java (http://www.java.com)
+
+set BASE_DIR=%~dp0
+set PORT=9876
+
+echo Starting JsTestDriver Server (http://code.google.com/p/js-test-driver/)
+echo Please open the following url and capture one or more browsers:
+echo http://localhost:%PORT%/
+
+java -jar "%BASE_DIR%\..\test\lib\jstestdriver\JsTestDriver.jar" ^
+ --port %PORT% ^
+ --browserTimeout 20000 ^
+ --config "%BASE_DIR%\..\config\jsTestDriver.conf" ^
+ --basePath "%BASE_DIR%\.."
diff --git a/alias-angular/scripts/test-server.sh b/alias-angular/scripts/test-server.sh
new file mode 100755
index 0000000..ff38f5e
--- /dev/null
+++ b/alias-angular/scripts/test-server.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+BASE_DIR=`dirname $0`
+PORT=9876
+
+echo "Starting JsTestDriver Server (http://code.google.com/p/js-test-driver/)"
+echo "Please open the following url and capture one or more browsers:"
+echo "http://localhost:$PORT"
+
+java -jar "$BASE_DIR/../test/lib/jstestdriver/JsTestDriver.jar" \
+ --port $PORT \
+ --browserTimeout 20000 \
+ --config "$BASE_DIR/../config/jsTestDriver.conf" \
+ --basePath "$BASE_DIR/.."
diff --git a/alias-angular/scripts/test.bat b/alias-angular/scripts/test.bat
new file mode 100644
index 0000000..21ebcac
--- /dev/null
+++ b/alias-angular/scripts/test.bat
@@ -0,0 +1,14 @@
+@echo off
+
+REM Windows script for running unit tests
+REM You have to run server and capture some browser first
+REM
+REM Requirements:
+REM - Java (http://www.java.com)
+
+set BASE_DIR=%~dp0
+
+java -jar "%BASE_DIR%\..\test\lib\jstestdriver\JsTestDriver.jar" ^
+ --config "%BASE_DIR%\..\config\jsTestDriver.conf" ^
+ --basePath "%BASE_DIR%\.." ^
+ --tests all
diff --git a/alias-angular/scripts/test.sh b/alias-angular/scripts/test.sh
new file mode 100755
index 0000000..5b2ce34
--- /dev/null
+++ b/alias-angular/scripts/test.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+BASE_DIR=`dirname $0`
+
+java -jar "$BASE_DIR/../test/lib/jstestdriver/JsTestDriver.jar" \
+ --config "$BASE_DIR/../config/jsTestDriver.conf" \
+ --basePath "$BASE_DIR/.." \
+ --tests all
diff --git a/alias-angular/scripts/watchr.rb b/alias-angular/scripts/watchr.rb
new file mode 100755
index 0000000..89ef656
--- /dev/null
+++ b/alias-angular/scripts/watchr.rb
@@ -0,0 +1,19 @@
+#!/usr/bin/env watchr
+
+# config file for watchr http://github.com/mynyml/watchr
+# install: gem install watchr
+# run: watch watchr.rb
+# note: make sure that you have jstd server running (server.sh) and a browser captured
+
+log_file = File.expand_path(File.dirname(__FILE__) + '/../logs/jstd.log')
+
+`cd ..`
+`touch #{log_file}`
+
+puts "String watchr... log file: #{log_file}"
+
+watch( '(app/js|test/unit)' ) do
+ `echo "\n\ntest run started @ \`date\`" > #{log_file}`
+ `scripts/test.sh &> #{log_file}`
+end
+
diff --git a/alias-angular/scripts/web-server.js b/alias-angular/scripts/web-server.js
new file mode 100755
index 0000000..1ff37b3
--- /dev/null
+++ b/alias-angular/scripts/web-server.js
@@ -0,0 +1,243 @@
+#!/usr/bin/env node
+
+var sys = require('sys'),
+ http = require('http'),
+ fs = require('fs'),
+ url = require('url'),
+ events = require('events');
+
+var DEFAULT_PORT = 8000;
+
+function main(argv) {
+ new HttpServer({
+ 'GET': createServlet(StaticServlet),
+ 'HEAD': createServlet(StaticServlet)
+ }).start(Number(argv[2]) || DEFAULT_PORT);
+}
+
+function escapeHtml(value) {
+ return value.toString().
+ replace('<', '&lt;').
+ replace('>', '&gt;').
+ replace('"', '&quot;');
+}
+
+function createServlet(Class) {
+ var servlet = new Class();
+ return servlet.handleRequest.bind(servlet);
+}
+
+/**
+ * An Http server implementation that uses a map of methods to decide
+ * action routing.
+ *
+ * @param {Object} Map of method => Handler function
+ */
+function HttpServer(handlers) {
+ this.handlers = handlers;
+ this.server = http.createServer(this.handleRequest_.bind(this));
+}
+
+HttpServer.prototype.start = function(port) {
+ this.port = port;
+ this.server.listen(port);
+ sys.puts('Http Server running at http://localhost:' + port + '/');
+};
+
+HttpServer.prototype.parseUrl_ = function(urlString) {
+ var parsed = url.parse(urlString);
+ parsed.pathname = url.resolve('/', parsed.pathname);
+ return url.parse(url.format(parsed), true);
+};
+
+HttpServer.prototype.handleRequest_ = function(req, res) {
+ var logEntry = req.method + ' ' + req.url;
+ if (req.headers['user-agent']) {
+ logEntry += ' ' + req.headers['user-agent'];
+ }
+ sys.puts(logEntry);
+ req.url = this.parseUrl_(req.url);
+ var handler = this.handlers[req.method];
+ if (!handler) {
+ res.writeHead(501);
+ res.end();
+ } else {
+ handler.call(this, req, res);
+ }
+};
+
+/**
+ * Handles static content.
+ */
+function StaticServlet() {}
+
+StaticServlet.MimeMap = {
+ 'txt': 'text/plain',
+ 'html': 'text/html',
+ 'css': 'text/css',
+ 'xml': 'application/xml',
+ 'json': 'application/json',
+ 'js': 'application/javascript',
+ 'jpg': 'image/jpeg',
+ 'jpeg': 'image/jpeg',
+ 'gif': 'image/gif',
+ 'png': 'image/png'
+};
+
+StaticServlet.prototype.handleRequest = function(req, res) {
+ var self = this;
+ var path = ('./' + req.url.pathname).replace('//','/').replace(/%(..)/, function(match, hex){
+ return String.fromCharCode(parseInt(hex, 16));
+ });
+ var parts = path.split('/');
+ if (parts[parts.length-1].charAt(0) === '.')
+ return self.sendForbidden_(req, res, path);
+ fs.stat(path, function(err, stat) {
+ if (err)
+ return self.sendMissing_(req, res, path);
+ if (stat.isDirectory())
+ return self.sendDirectory_(req, res, path);
+ return self.sendFile_(req, res, path);
+ });
+}
+
+StaticServlet.prototype.sendError_ = function(req, res, error) {
+ res.writeHead(500, {
+ 'Content-Type': 'text/html'
+ });
+ res.write('<!doctype html>\n');
+ res.write('<title>Internal Server Error</title>\n');
+ res.write('<h1>Internal Server Error</h1>');
+ res.write('<pre>' + escapeHtml(sys.inspect(error)) + '</pre>');
+ sys.puts('500 Internal Server Error');
+ sys.puts(sys.inspect(error));
+};
+
+StaticServlet.prototype.sendMissing_ = function(req, res, path) {
+ path = path.substring(1);
+ res.writeHead(404, {
+ 'Content-Type': 'text/html'
+ });
+ res.write('<!doctype html>\n');
+ res.write('<title>404 Not Found</title>\n');
+ res.write('<h1>Not Found</h1>');
+ res.write(
+ '<p>The requested URL ' +
+ escapeHtml(path) +
+ ' was not found on this server.</p>'
+ );
+ res.end();
+ sys.puts('404 Not Found: ' + path);
+};
+
+StaticServlet.prototype.sendForbidden_ = function(req, res, path) {
+ path = path.substring(1);
+ res.writeHead(403, {
+ 'Content-Type': 'text/html'
+ });
+ res.write('<!doctype html>\n');
+ res.write('<title>403 Forbidden</title>\n');
+ res.write('<h1>Forbidden</h1>');
+ res.write(
+ '<p>You do not have permission to access ' +
+ escapeHtml(path) + ' on this server.</p>'
+ );
+ res.end();
+ sys.puts('403 Forbidden: ' + path);
+};
+
+StaticServlet.prototype.sendRedirect_ = function(req, res, redirectUrl) {
+ res.writeHead(301, {
+ 'Content-Type': 'text/html',
+ 'Location': redirectUrl
+ });
+ res.write('<!doctype html>\n');
+ res.write('<title>301 Moved Permanently</title>\n');
+ res.write('<h1>Moved Permanently</h1>');
+ res.write(
+ '<p>The document has moved <a href="' +
+ redirectUrl +
+ '">here</a>.</p>'
+ );
+ res.end();
+ sys.puts('301 Moved Permanently: ' + redirectUrl);
+};
+
+StaticServlet.prototype.sendFile_ = function(req, res, path) {
+ var self = this;
+ var file = fs.createReadStream(path);
+ res.writeHead(200, {
+ 'Content-Type': StaticServlet.
+ MimeMap[path.split('.').pop()] || 'text/plain'
+ });
+ if (req.method === 'HEAD') {
+ res.end();
+ } else {
+ file.on('data', res.write.bind(res));
+ file.on('close', function() {
+ res.end();
+ });
+ file.on('error', function(error) {
+ self.sendError_(req, res, error);
+ });
+ }
+};
+
+StaticServlet.prototype.sendDirectory_ = function(req, res, path) {
+ var self = this;
+ if (path.match(/[^\/]$/)) {
+ req.url.pathname += '/';
+ var redirectUrl = url.format(url.parse(url.format(req.url)));
+ return self.sendRedirect_(req, res, redirectUrl);
+ }
+ fs.readdir(path, function(err, files) {
+ if (err)
+ return self.sendError_(req, res, error);
+
+ if (!files.length)
+ return self.writeDirectoryIndex_(req, res, path, []);
+
+ var remaining = files.length;
+ files.forEach(function(fileName, index) {
+ fs.stat(path + '/' + fileName, function(err, stat) {
+ if (err)
+ return self.sendError_(req, res, err);
+ if (stat.isDirectory()) {
+ files[index] = fileName + '/';
+ }
+ if (!(--remaining))
+ return self.writeDirectoryIndex_(req, res, path, files);
+ });
+ });
+ });
+};
+
+StaticServlet.prototype.writeDirectoryIndex_ = function(req, res, path, files) {
+ path = path.substring(1);
+ res.writeHead(200, {
+ 'Content-Type': 'text/html'
+ });
+ if (req.method === 'HEAD') {
+ res.end();
+ return;
+ }
+ res.write('<!doctype html>\n');
+ res.write('<title>' + escapeHtml(path) + '</title>\n');
+ res.write('<style>\n');
+ res.write(' ol { list-style-type: none; font-size: 1.2em; }\n');
+ res.write('</style>\n');
+ res.write('<h1>Directory: ' + escapeHtml(path) + '</h1>');
+ res.write('<ol>');
+ files.forEach(function(fileName) {
+ if (fileName.charAt(0) !== '.') {
+ res.write('<li><a href="' +
+ escapeHtml(fileName) + '">' +
+ escapeHtml(fileName) + '</a></li>');
+ }
+ });
+ res.write('</ol>');
+ res.end();
+};
+
+// Must be last,
+main(process.argv);