addon-sdk/source/test/test-chrome.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:05f30933b00e
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 'use strict';
5
6 let chrome = require('chrome');
7
8 const FIXTURES_URL = module.uri.substr(0, module.uri.lastIndexOf('/') + 1) +
9 'fixtures/chrome-worker/'
10
11 exports['test addEventListener'] = function(assert, done) {
12 let uri = FIXTURES_URL + 'addEventListener.js';
13
14 let worker = new chrome.ChromeWorker(uri);
15 worker.addEventListener('message', function(event) {
16 assert.equal(event.data, 'Hello', 'message received');
17 worker.terminate();
18 done();
19 });
20 };
21
22 exports['test onmessage'] = function(assert, done) {
23 let uri = FIXTURES_URL + 'onmessage.js';
24
25 let worker = new chrome.ChromeWorker(uri);
26 worker.onmessage = function(event) {
27 assert.equal(event.data, 'ok', 'message received');
28 worker.terminate();
29 done();
30 };
31 worker.postMessage('ok');
32 };
33
34 exports['test setTimeout'] = function(assert, done) {
35 let uri = FIXTURES_URL + 'setTimeout.js';
36
37 let worker = new chrome.ChromeWorker(uri);
38 worker.onmessage = function(event) {
39 assert.equal(event.data, 'ok', 'setTimeout fired');
40 worker.terminate();
41 done();
42 };
43 };
44
45 exports['test jsctypes'] = function(assert, done) {
46 let uri = FIXTURES_URL + 'jsctypes.js';
47
48 let worker = new chrome.ChromeWorker(uri);
49 worker.onmessage = function(event) {
50 assert.equal(event.data, 'function', 'ctypes.open is a function');
51 worker.terminate();
52 done();
53 };
54 };
55
56 exports['test XMLHttpRequest'] = function(assert, done) {
57 let uri = FIXTURES_URL + 'xhr.js';
58
59 let worker = new chrome.ChromeWorker(uri);
60 worker.onmessage = function(event) {
61 assert.equal(event.data, 'ok', 'XMLHttpRequest works');
62 worker.terminate();
63 done();
64 };
65 };
66
67 exports['test onerror'] = function(assert, done) {
68 let uri = FIXTURES_URL + 'onerror.js';
69
70 let worker = new chrome.ChromeWorker(uri);
71 worker.onerror = function(event) {
72 assert.equal(event.filename, uri, 'event reports the correct uri');
73 assert.equal(event.lineno, 6, 'event reports the correct line number');
74 assert.equal(event.target, worker, 'event reports the correct worker');
75 assert.ok(event.message.match(/ok/),
76 'event contains the exception message');
77 // Call preventDefault in order to avoid being displayed in JS console.
78 event.preventDefault();
79 worker.terminate();
80 done();
81 };
82 };
83
84 require('sdk/test').run(exports);

mercurial