Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jugglinmike/05fd45204be5e0635cf06731802b4e39 to your computer and use it in GitHub Desktop.
Save jugglinmike/05fd45204be5e0635cf06731802b4e39 to your computer and use it in GitHub Desktop.
Changes to Chromium test
diff --git a/third_party/WebKit/LayoutTests/http/tests/serviceworker/ServiceWorkerGlobalScope/resources/extendable-message-event-constructor-worker.js b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/ServiceWorkerGlobalScope/resources/extendable-message-event-constructor-worker.js
index ebef428..ae51a22 100644
--- a/third_party/WebKit/LayoutTests/http/tests/serviceworker/ServiceWorkerGlobalScope/resources/extendable-message-event-constructor-worker.js
+++ b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/ServiceWorkerGlobalScope/resources/extendable-message-event-constructor-worker.js
@@ -1,38 +1,40 @@
-importScripts('../../resources/worker-testharness.js');
+importScripts('/resources/testharness.js');
+var test_object = { wanwan: 123 };
+var channel1 = new MessageChannel();
+var channel2 = new MessageChannel();
+var ports = [channel1.port1, channel1.port2, channel2.port1];
function createEvent(initializer) {
if (initializer === undefined)
return new ExtendableMessageEvent('type');
return new ExtendableMessageEvent('type', initializer);
}
-self.addEventListener('message', function(event) {
- try {
- // These test cases are mostly copied from
- // fast/events/constructors/message-event-constructor.html.
-
- var test_object = { wanwan: 123 };
- var channel1 = new MessageChannel();
- var channel2 = new MessageChannel();
+// These test cases are mostly copied from the following file in the Chromium
+// project (as of commit 848ad70823991e0f12b437d789943a4ab24d65bb):
+// third_party/WebKit/LayoutTests/fast/events/constructors/message-event-constructor.html
- // No initializer is passed.
+test(function() {
assert_false(createEvent().bubbles);
assert_false(createEvent().cancelable);
assert_equals(createEvent().data, null);
assert_equals(createEvent().origin, '');
assert_equals(createEvent().lastEventId, '');
assert_equals(createEvent().source, null);
- assert_equals(createEvent().ports, null);
+ assert_array_equals(createEvent().ports, []);
+}, 'no initializer specified');
- // bubbles is passed.
+test(function() {
assert_false(createEvent({ bubbles: false }).bubbles);
assert_true(createEvent({ bubbles: true }).bubbles);
+}, '`bubbles` is specified');
- // cancelable is passed.
+test(function() {
assert_false(createEvent({ cancelable: false }).cancelable);
assert_true(createEvent({ cancelable: true }).cancelable);
+}, '`cancelable` is specified');
- // data is passed.
+test(function() {
assert_equals(createEvent({ data: test_object }).data, test_object);
assert_equals(createEvent({ data: undefined }).data, null);
assert_equals(createEvent({ data: null }).data, null);
@@ -53,8 +55,9 @@ self.addEventListener('message', function(event) {
assert_equals(createEvent({ get data(){ return 123; } }).data, 123);
assert_throws({ name: 'Error' }, function() {
createEvent({ get data() { throw { name: 'Error' }; } }); });
+}, '`data` is specified');
- // origin is passed.
+test(function() {
assert_equals(createEvent({ origin: 'melancholy' }).origin, 'melancholy');
assert_equals(createEvent({ origin: '' }).origin, '');
assert_equals(createEvent({ origin: null }).origin, 'null');
@@ -80,7 +83,9 @@ self.addEventListener('message', function(event) {
createEvent({ get origin() { return 123; } }).origin, '123');
assert_throws({ name: 'Error' }, function() {
createEvent({ get origin() { throw { name: 'Error' }; } }); });
+}, '`origin` is specified');
+test(function() {
// lastEventId is passed.
assert_equals(
createEvent({ lastEventId: 'melancholy' }).lastEventId, 'melancholy');
@@ -110,9 +115,10 @@ self.addEventListener('message', function(event) {
'123');
assert_throws({ name: 'Error' }, function() {
createEvent({ get lastEventId() { throw { name: 'Error' }; } }); });
+}, '`lastEventId` is specified');
- // source is passed.
- assert_equals(createEvent({ source: event.source }).source, event.source);
+test(function() {
+ assert_equals(createEvent({ source: channel1.port1 }).source, channel1.port1);
assert_equals(
createEvent({ source: self.registration.active }).source,
self.registration.active);
@@ -121,17 +127,16 @@ self.addEventListener('message', function(event) {
assert_throws(
{ name: 'TypeError' }, function() { createEvent({ source: this }); },
'source should be Client or ServiceWorker or MessagePort');
+}, '`source` is specified');
- // port is passed.
+test(function() {
// Valid message ports.
- var ports = [channel1.port1, channel1.port2, channel2.port1];
var passed_ports = createEvent({ ports: ports}).ports;
assert_equals(passed_ports[0], channel1.port1);
assert_equals(passed_ports[1], channel1.port2);
assert_equals(passed_ports[2], channel2.port1);
- assert_equals(createEvent({ ports: [] }).ports.length, 0);
- assert_equals(createEvent({ ports: undefined }).ports, null);
- assert_equals(createEvent({ ports: null }).ports, null);
+ assert_array_equals(createEvent({ ports: [] }).ports, []);
+ assert_array_equals(createEvent({ ports: undefined }).ports, []);
// Invalid message ports.
assert_throws({ name: 'TypeError' },
@@ -139,6 +144,8 @@ self.addEventListener('message', function(event) {
assert_throws({ name: 'TypeError' },
function() { createEvent({ ports: test_object }); });
assert_throws({ name: 'TypeError' },
+ function() { createEvent({ ports: null }); });
+ assert_throws({ name: 'TypeError' },
function() { createEvent({ ports: this }); });
assert_throws({ name: 'TypeError' },
function() { createEvent({ ports: false }); });
@@ -160,17 +167,19 @@ self.addEventListener('message', function(event) {
createEvent({ get ports() { throw { name: 'Error' }; } }); });
// Note that valueOf() is not called, when the left hand side is
// evaluated.
+ var valueOf = function() { return ports; };
assert_throws({ name: 'TypeError' }, function() {
- createEvent({ ports: { valueOf: function() { return ports; } } }); });
+ createEvent({ ports: { valueOf: valueOf } }); });
+}, '`ports` is specified');
- // All initializers are passed.
+test(function() {
var initializers = {
bubbles: true,
cancelable: true,
data: test_object,
origin: 'wonderful',
lastEventId: 'excellent',
- source: event.source,
+ source: channel1.port1,
ports: ports
};
assert_equals(createEvent(initializers).bubbles, true);
@@ -178,13 +187,8 @@ self.addEventListener('message', function(event) {
assert_equals(createEvent(initializers).data, test_object);
assert_equals(createEvent(initializers).origin, 'wonderful');
assert_equals(createEvent(initializers).lastEventId, 'excellent');
- assert_equals(createEvent(initializers).source, event.source);
+ assert_equals(createEvent(initializers).source, channel1.port1);
assert_equals(createEvent(initializers).ports[0], ports[0]);
assert_equals(createEvent(initializers).ports[1], ports[1]);
assert_equals(createEvent(initializers).ports[2], ports[2]);
-
- event.source.postMessage('success');
- } catch(e) {
- event.source.postMessage('failure: ' + e.message);
- }
- });
+}, 'all initial values are specified');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment