Merge pull request #105 from sourcelair/issue/46

Introduce testing environment for xterm.js
This commit is contained in:
Paris Kasidiaris
2016-06-09 10:29:34 +03:00
9 changed files with 31 additions and 143 deletions
+13
View File
@@ -0,0 +1,13 @@
language: node_js
node_js:
- 4
env:
- CXX=g++-4.8
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.8
notifications:
email: false
+2
View File
@@ -1,5 +1,7 @@
# xterm.js
![xterm.js build status](https://api.travis-ci.org/sourcelair/xterm.js.svg)
Xterm.js is a full xterm clone, written in JavaScript.
It is used at [SourceLair](https://www.sourcelair.com/home) to help people develop their applications in their browsers.
Executable
+5
View File
@@ -0,0 +1,5 @@
#! /bin/bash
#
# Testing script for xterm.js
node_modules/.bin/mocha $@
+5 -2
View File
@@ -8,9 +8,12 @@
"devDependencies": {
"express": "4.13.4",
"express-ws": "2.0.0-rc.1",
"pty.js": "0.3.0"
"pty.js": "0.3.0",
"mocha": "2.5.3",
"chai": "3.5.0"
},
"scripts": {
"start": "bash bin/server"
"start": "bash bin/server",
"test": "bash bin/test"
}
}
-49
View File
@@ -1,49 +0,0 @@
/**
* term.js
* Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
*/
var element = {
createElement: function() { return element; },
appendChild: function() {},
removeChild: function() {},
addEventListener: function() {},
removeEventListener: function() {},
setAttribute: function() {},
style: {}
};
global.window = global;
window.navigator = { userAgent: '' };
window.document = element;
window.document.body = element;
element.ownerDocument = window.document;
window.document.defaultView = window;
var Terminal = require('../src/term');
Terminal.cursorBlink = false;
var data = require('./data').data;
var term = new Terminal({
cols: 250,
rows: 100
});
term.open(element);
var time = new Date;
var t = 10;
while (t--) {
var l = data.length
, i = 0;
for (; i < l; i++) {
term.write(data[i]);
}
}
console.log('Completed: %d.', new Date - time);
console.log('Average (?): 13.5k (for ~2.7k writes).');
-10
View File
@@ -1,10 +0,0 @@
167a168,170
> var stream = fs.createWriteStream(__dirname + '/../test/data.js');
> stream.write('this.data = [\n');
>
169a173
> stream.write(' ' + JSON.stringify(data) + ',\n');
182a187,189
>
> stream.write('];\n');
> stream.end();
-49
View File
@@ -1,49 +0,0 @@
<!doctype html>
<title>term.js test</title>
<style>
h1 {
margin-bottom: 20px;
font: 20px/1.5 sans-serif;
}
</style>
<h1>term.js test</h1>
<script src="term.js"></script>
<script src="data.js"></script>
<script>
;(function() {
var time = new Date
, l = data.length * 0.9 | 0
, i = 0;
Terminal.cursorBlink = false;
var term = new Terminal({
cols: 80,
rows: 30,
useStyle: true
});
window.onload = function() {
// Add terminal.
term.open(document.body);
// Run benchmark.
(function write() {
if (i >= l) return next();
term.write(data[i]);
i++;
setTimeout(write, 1);
})();
// Results.
function next() {
term.write('\x1b[2J');
term.reset();
term.refresh(0, term.rows - 1);
term.writeln('Completed in ' + (new Date - time) + '.');
term.writeln('Writes: ' + l + '.');
term.writeln('Average (?): 28.5k (for ~2.5k writes).');
}
};
}).call(this);
</script>
-33
View File
@@ -1,33 +0,0 @@
/**
* term.js
* Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
*/
var http = require('http')
, path = require('path')
, fs = require('fs');
var express = require('express')
, term = require('../');
var app = express()
, server = http.createServer(app);
app.use(function(req, res, next) {
var setHeader = res.setHeader;
res.setHeader = function(name) {
switch (name) {
case 'Cache-Control':
case 'Last-Modified':
case 'ETag':
return;
}
return setHeader.apply(res, arguments);
};
next();
});
app.use(express.static(__dirname));
app.use(term.middleware());
server.listen(8080);
+6
View File
@@ -0,0 +1,6 @@
var assert = require('chai').assert;
describe('xterm', function() {
// Just a dummy first test
});