Convert all source files to JavaScript
This commit is contained in:
parent
403870a27e
commit
1f9691ae13
144 changed files with 11211 additions and 7301 deletions
368
spec/chromium-spec.js
Normal file
368
spec/chromium-spec.js
Normal file
|
@ -0,0 +1,368 @@
|
|||
var BrowserWindow, assert, http, https, path, ref, remote, session, ws;
|
||||
|
||||
assert = require('assert');
|
||||
|
||||
http = require('http');
|
||||
|
||||
https = require('https');
|
||||
|
||||
path = require('path');
|
||||
|
||||
ws = require('ws');
|
||||
|
||||
remote = require('electron').remote;
|
||||
|
||||
ref = remote.require('electron'), BrowserWindow = ref.BrowserWindow, session = ref.session;
|
||||
|
||||
describe('chromium feature', function() {
|
||||
var fixtures, listener;
|
||||
fixtures = path.resolve(__dirname, 'fixtures');
|
||||
listener = null;
|
||||
afterEach(function() {
|
||||
if (listener != null) {
|
||||
window.removeEventListener('message', listener);
|
||||
}
|
||||
return listener = null;
|
||||
});
|
||||
xdescribe('heap snapshot', function() {
|
||||
return it('does not crash', function() {
|
||||
return process.atomBinding('v8_util').takeHeapSnapshot();
|
||||
});
|
||||
});
|
||||
describe('sending request of http protocol urls', function() {
|
||||
return it('does not crash', function(done) {
|
||||
var server;
|
||||
this.timeout(5000);
|
||||
server = http.createServer(function(req, res) {
|
||||
res.end();
|
||||
server.close();
|
||||
return done();
|
||||
});
|
||||
return server.listen(0, '127.0.0.1', function() {
|
||||
var port;
|
||||
port = server.address().port;
|
||||
return $.get("http://127.0.0.1:" + port);
|
||||
});
|
||||
});
|
||||
});
|
||||
describe('document.hidden', function() {
|
||||
var url, w;
|
||||
url = "file://" + fixtures + "/pages/document-hidden.html";
|
||||
w = null;
|
||||
afterEach(function() {
|
||||
return w != null ? w.destroy() : void 0;
|
||||
});
|
||||
it('is set correctly when window is not shown', function(done) {
|
||||
w = new BrowserWindow({
|
||||
show: false
|
||||
});
|
||||
w.webContents.on('ipc-message', function(event, args) {
|
||||
assert.deepEqual(args, ['hidden', true]);
|
||||
return done();
|
||||
});
|
||||
return w.loadURL(url);
|
||||
});
|
||||
return it('is set correctly when window is inactive', function(done) {
|
||||
w = new BrowserWindow({
|
||||
show: false
|
||||
});
|
||||
w.webContents.on('ipc-message', function(event, args) {
|
||||
assert.deepEqual(args, ['hidden', false]);
|
||||
return done();
|
||||
});
|
||||
w.showInactive();
|
||||
return w.loadURL(url);
|
||||
});
|
||||
});
|
||||
xdescribe('navigator.webkitGetUserMedia', function() {
|
||||
return it('calls its callbacks', function(done) {
|
||||
this.timeout(5000);
|
||||
return navigator.webkitGetUserMedia({
|
||||
audio: true,
|
||||
video: false
|
||||
}, function() {
|
||||
return done();
|
||||
}, function() {
|
||||
return done();
|
||||
});
|
||||
});
|
||||
});
|
||||
describe('navigator.language', function() {
|
||||
return it('should not be empty', function() {
|
||||
return assert.notEqual(navigator.language, '');
|
||||
});
|
||||
});
|
||||
describe('navigator.serviceWorker', function() {
|
||||
var url, w;
|
||||
url = "file://" + fixtures + "/pages/service-worker/index.html";
|
||||
w = null;
|
||||
afterEach(function() {
|
||||
return w != null ? w.destroy() : void 0;
|
||||
});
|
||||
return it('should register for file scheme', function(done) {
|
||||
w = new BrowserWindow({
|
||||
show: false
|
||||
});
|
||||
w.webContents.on('ipc-message', function(event, args) {
|
||||
if (args[0] === 'reload') {
|
||||
return w.webContents.reload();
|
||||
} else if (args[0] === 'error') {
|
||||
return done('unexpected error : ' + args[1]);
|
||||
} else if (args[0] === 'response') {
|
||||
assert.equal(args[1], 'Hello from serviceWorker!');
|
||||
return session.defaultSession.clearStorageData({
|
||||
storages: ['serviceworkers']
|
||||
}, function() {
|
||||
return done();
|
||||
});
|
||||
}
|
||||
});
|
||||
return w.loadURL(url);
|
||||
});
|
||||
});
|
||||
describe('window.open', function() {
|
||||
this.timeout(20000);
|
||||
it('returns a BrowserWindowProxy object', function() {
|
||||
var b;
|
||||
b = window.open('about:blank', '', 'show=no');
|
||||
assert.equal(b.closed, false);
|
||||
assert.equal(b.constructor.name, 'BrowserWindowProxy');
|
||||
return b.close();
|
||||
});
|
||||
it('accepts "node-integration" as feature', function(done) {
|
||||
var b;
|
||||
listener = function(event) {
|
||||
assert.equal(event.data, 'undefined');
|
||||
b.close();
|
||||
return done();
|
||||
};
|
||||
window.addEventListener('message', listener);
|
||||
return b = window.open("file://" + fixtures + "/pages/window-opener-node.html", '', 'nodeIntegration=no,show=no');
|
||||
});
|
||||
it('inherit options of parent window', function(done) {
|
||||
var b;
|
||||
listener = function(event) {
|
||||
var height, ref1, width;
|
||||
ref1 = remote.getCurrentWindow().getSize(), width = ref1[0], height = ref1[1];
|
||||
assert.equal(event.data, "size: " + width + " " + height);
|
||||
b.close();
|
||||
return done();
|
||||
};
|
||||
window.addEventListener('message', listener);
|
||||
return b = window.open("file://" + fixtures + "/pages/window-open-size.html", '', 'show=no');
|
||||
});
|
||||
return it('does not override child options', function(done) {
|
||||
var b, size;
|
||||
size = {
|
||||
width: 350,
|
||||
height: 450
|
||||
};
|
||||
listener = function(event) {
|
||||
assert.equal(event.data, "size: " + size.width + " " + size.height);
|
||||
b.close();
|
||||
return done();
|
||||
};
|
||||
window.addEventListener('message', listener);
|
||||
return b = window.open("file://" + fixtures + "/pages/window-open-size.html", '', "show=no,width=" + size.width + ",height=" + size.height);
|
||||
});
|
||||
});
|
||||
describe('window.opener', function() {
|
||||
var url, w;
|
||||
this.timeout(10000);
|
||||
url = "file://" + fixtures + "/pages/window-opener.html";
|
||||
w = null;
|
||||
afterEach(function() {
|
||||
return w != null ? w.destroy() : void 0;
|
||||
});
|
||||
it('is null for main window', function(done) {
|
||||
w = new BrowserWindow({
|
||||
show: false
|
||||
});
|
||||
w.webContents.on('ipc-message', function(event, args) {
|
||||
assert.deepEqual(args, ['opener', null]);
|
||||
return done();
|
||||
});
|
||||
return w.loadURL(url);
|
||||
});
|
||||
return it('is not null for window opened by window.open', function(done) {
|
||||
var b;
|
||||
listener = function(event) {
|
||||
assert.equal(event.data, 'object');
|
||||
b.close();
|
||||
return done();
|
||||
};
|
||||
window.addEventListener('message', listener);
|
||||
return b = window.open(url, '', 'show=no');
|
||||
});
|
||||
});
|
||||
describe('window.postMessage', function() {
|
||||
return it('sets the source and origin correctly', function(done) {
|
||||
var b, sourceId;
|
||||
sourceId = remote.getCurrentWindow().id;
|
||||
listener = function(event) {
|
||||
var message;
|
||||
window.removeEventListener('message', listener);
|
||||
b.close();
|
||||
message = JSON.parse(event.data);
|
||||
assert.equal(message.data, 'testing');
|
||||
assert.equal(message.origin, 'file://');
|
||||
assert.equal(message.sourceEqualsOpener, true);
|
||||
assert.equal(message.sourceId, sourceId);
|
||||
assert.equal(event.origin, 'file://');
|
||||
return done();
|
||||
};
|
||||
window.addEventListener('message', listener);
|
||||
b = window.open("file://" + fixtures + "/pages/window-open-postMessage.html", '', 'show=no');
|
||||
return BrowserWindow.fromId(b.guestId).webContents.once('did-finish-load', function() {
|
||||
return b.postMessage('testing', '*');
|
||||
});
|
||||
});
|
||||
});
|
||||
describe('window.opener.postMessage', function() {
|
||||
return it('sets source and origin correctly', function(done) {
|
||||
var b;
|
||||
listener = function(event) {
|
||||
window.removeEventListener('message', listener);
|
||||
b.close();
|
||||
assert.equal(event.source, b);
|
||||
assert.equal(event.origin, 'file://');
|
||||
return done();
|
||||
};
|
||||
window.addEventListener('message', listener);
|
||||
return b = window.open("file://" + fixtures + "/pages/window-opener-postMessage.html", '', 'show=no');
|
||||
});
|
||||
});
|
||||
describe('creating a Uint8Array under browser side', function() {
|
||||
return it('does not crash', function() {
|
||||
var RUint8Array;
|
||||
RUint8Array = remote.getGlobal('Uint8Array');
|
||||
return new RUint8Array;
|
||||
});
|
||||
});
|
||||
describe('webgl', function() {
|
||||
return it('can be get as context in canvas', function() {
|
||||
var webgl;
|
||||
if (process.platform === 'linux') {
|
||||
return;
|
||||
}
|
||||
webgl = document.createElement('canvas').getContext('webgl');
|
||||
return assert.notEqual(webgl, null);
|
||||
});
|
||||
});
|
||||
describe('web workers', function() {
|
||||
it('Worker can work', function(done) {
|
||||
var message, worker;
|
||||
worker = new Worker('../fixtures/workers/worker.js');
|
||||
message = 'ping';
|
||||
worker.onmessage = function(event) {
|
||||
assert.equal(event.data, message);
|
||||
worker.terminate();
|
||||
return done();
|
||||
};
|
||||
return worker.postMessage(message);
|
||||
});
|
||||
return it('SharedWorker can work', function(done) {
|
||||
var message, worker;
|
||||
worker = new SharedWorker('../fixtures/workers/shared_worker.js');
|
||||
message = 'ping';
|
||||
worker.port.onmessage = function(event) {
|
||||
assert.equal(event.data, message);
|
||||
return done();
|
||||
};
|
||||
return worker.port.postMessage(message);
|
||||
});
|
||||
});
|
||||
describe('iframe', function() {
|
||||
var iframe;
|
||||
iframe = null;
|
||||
beforeEach(function() {
|
||||
return iframe = document.createElement('iframe');
|
||||
});
|
||||
afterEach(function() {
|
||||
return document.body.removeChild(iframe);
|
||||
});
|
||||
return it('does not have node integration', function(done) {
|
||||
iframe.src = "file://" + fixtures + "/pages/set-global.html";
|
||||
document.body.appendChild(iframe);
|
||||
return iframe.onload = function() {
|
||||
assert.equal(iframe.contentWindow.test, 'undefined undefined undefined');
|
||||
return done();
|
||||
};
|
||||
});
|
||||
});
|
||||
describe('storage', function() {
|
||||
return it('requesting persitent quota works', function(done) {
|
||||
return navigator.webkitPersistentStorage.requestQuota(1024 * 1024, function(grantedBytes) {
|
||||
assert.equal(grantedBytes, 1048576);
|
||||
return done();
|
||||
});
|
||||
});
|
||||
});
|
||||
describe('websockets', function() {
|
||||
var WebSocketServer, server, wss;
|
||||
wss = null;
|
||||
server = null;
|
||||
WebSocketServer = ws.Server;
|
||||
afterEach(function() {
|
||||
wss.close();
|
||||
return server.close();
|
||||
});
|
||||
return it('has user agent', function(done) {
|
||||
server = http.createServer();
|
||||
return server.listen(0, '127.0.0.1', function() {
|
||||
var port, websocket;
|
||||
port = server.address().port;
|
||||
wss = new WebSocketServer({
|
||||
server: server
|
||||
});
|
||||
wss.on('error', done);
|
||||
wss.on('connection', function(ws) {
|
||||
if (ws.upgradeReq.headers['user-agent']) {
|
||||
return done();
|
||||
} else {
|
||||
return done('user agent is empty');
|
||||
}
|
||||
});
|
||||
return websocket = new WebSocket("ws://127.0.0.1:" + port);
|
||||
});
|
||||
});
|
||||
});
|
||||
return describe('Promise', function() {
|
||||
it('resolves correctly in Node.js calls', function(done) {
|
||||
document.registerElement('x-element', {
|
||||
prototype: Object.create(HTMLElement.prototype, {
|
||||
createdCallback: {
|
||||
value: function() {}
|
||||
}
|
||||
})
|
||||
});
|
||||
return setImmediate(function() {
|
||||
var called;
|
||||
called = false;
|
||||
Promise.resolve().then(function() {
|
||||
return done(called ? void 0 : new Error('wrong sequence'));
|
||||
});
|
||||
document.createElement('x-element');
|
||||
return called = true;
|
||||
});
|
||||
});
|
||||
return it('resolves correctly in Electron calls', function(done) {
|
||||
document.registerElement('y-element', {
|
||||
prototype: Object.create(HTMLElement.prototype, {
|
||||
createdCallback: {
|
||||
value: function() {}
|
||||
}
|
||||
})
|
||||
});
|
||||
return remote.getGlobal('setImmediate')(function() {
|
||||
var called;
|
||||
called = false;
|
||||
Promise.resolve().then(function() {
|
||||
return done(called ? void 0 : new Error('wrong sequence'));
|
||||
});
|
||||
document.createElement('y-element');
|
||||
return called = true;
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue