1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/addon-sdk/source/test/test-chrome.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,84 @@ 1.4 +/* This Source Code Form is subject to the terms of the Mozilla Public 1.5 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.6 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.7 +'use strict'; 1.8 + 1.9 +let chrome = require('chrome'); 1.10 + 1.11 +const FIXTURES_URL = module.uri.substr(0, module.uri.lastIndexOf('/') + 1) + 1.12 + 'fixtures/chrome-worker/' 1.13 + 1.14 +exports['test addEventListener'] = function(assert, done) { 1.15 + let uri = FIXTURES_URL + 'addEventListener.js'; 1.16 + 1.17 + let worker = new chrome.ChromeWorker(uri); 1.18 + worker.addEventListener('message', function(event) { 1.19 + assert.equal(event.data, 'Hello', 'message received'); 1.20 + worker.terminate(); 1.21 + done(); 1.22 + }); 1.23 +}; 1.24 + 1.25 +exports['test onmessage'] = function(assert, done) { 1.26 + let uri = FIXTURES_URL + 'onmessage.js'; 1.27 + 1.28 + let worker = new chrome.ChromeWorker(uri); 1.29 + worker.onmessage = function(event) { 1.30 + assert.equal(event.data, 'ok', 'message received'); 1.31 + worker.terminate(); 1.32 + done(); 1.33 + }; 1.34 + worker.postMessage('ok'); 1.35 +}; 1.36 + 1.37 +exports['test setTimeout'] = function(assert, done) { 1.38 + let uri = FIXTURES_URL + 'setTimeout.js'; 1.39 + 1.40 + let worker = new chrome.ChromeWorker(uri); 1.41 + worker.onmessage = function(event) { 1.42 + assert.equal(event.data, 'ok', 'setTimeout fired'); 1.43 + worker.terminate(); 1.44 + done(); 1.45 + }; 1.46 +}; 1.47 + 1.48 +exports['test jsctypes'] = function(assert, done) { 1.49 + let uri = FIXTURES_URL + 'jsctypes.js'; 1.50 + 1.51 + let worker = new chrome.ChromeWorker(uri); 1.52 + worker.onmessage = function(event) { 1.53 + assert.equal(event.data, 'function', 'ctypes.open is a function'); 1.54 + worker.terminate(); 1.55 + done(); 1.56 + }; 1.57 +}; 1.58 + 1.59 +exports['test XMLHttpRequest'] = function(assert, done) { 1.60 + let uri = FIXTURES_URL + 'xhr.js'; 1.61 + 1.62 + let worker = new chrome.ChromeWorker(uri); 1.63 + worker.onmessage = function(event) { 1.64 + assert.equal(event.data, 'ok', 'XMLHttpRequest works'); 1.65 + worker.terminate(); 1.66 + done(); 1.67 + }; 1.68 +}; 1.69 + 1.70 +exports['test onerror'] = function(assert, done) { 1.71 + let uri = FIXTURES_URL + 'onerror.js'; 1.72 + 1.73 + let worker = new chrome.ChromeWorker(uri); 1.74 + worker.onerror = function(event) { 1.75 + assert.equal(event.filename, uri, 'event reports the correct uri'); 1.76 + assert.equal(event.lineno, 6, 'event reports the correct line number'); 1.77 + assert.equal(event.target, worker, 'event reports the correct worker'); 1.78 + assert.ok(event.message.match(/ok/), 1.79 + 'event contains the exception message'); 1.80 + // Call preventDefault in order to avoid being displayed in JS console. 1.81 + event.preventDefault(); 1.82 + worker.terminate(); 1.83 + done(); 1.84 + }; 1.85 +}; 1.86 + 1.87 +require('sdk/test').run(exports);