Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(97)

Unified Diff: LayoutTests/http/tests/serviceworker/chromium/resources/notificationclick-can-focus.js

Issue 879403005: [ServiceWorker] Tests for Clients.openWindow(). (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@window_interaction_tests
Patch Set: cleanup and add test helper Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: LayoutTests/http/tests/serviceworker/chromium/resources/notificationclick-can-focus.js
diff --git a/LayoutTests/http/tests/serviceworker/chromium/resources/notificationclick-can-focus.js b/LayoutTests/http/tests/serviceworker/chromium/resources/notificationclick-can-focus.js
index 43eb21196c9172ff890508698e6feb0db2f1ddce..c09b586539514bf5f01539a89ec87fc0cf86a520 100644
--- a/LayoutTests/http/tests/serviceworker/chromium/resources/notificationclick-can-focus.js
+++ b/LayoutTests/http/tests/serviceworker/chromium/resources/notificationclick-can-focus.js
@@ -1,44 +1,20 @@
-var client = null;
+// This helper will setup a small test framework that will use TESTS and run
+// them iteratively and call self.postMessage('quit') when done.
+// This helper also exposes |client|, |postMessage()|, |runNextTestOrQuit()|,
+// |synthesizeNotificationClick()| and |initialize()|.
+importScripts('sw-test-helpers.js');
-function initialize() {
- return self.clients.getAll().then(function(clients) {
- client = clients[0];
- });
-}
-
-function synthesizeNotificationClick() {
- var promise = new Promise(function(resolve) {
- var title = "fake notification";
-
- registration.showNotification(title).then(function() {
- client.postMessage({type: 'click', title: title});
- });
-
- var handler = function(e) {
- self.removeEventListener('notificationclick', handler);
- e.notification.close();
-
- resolve(e);
- };
-
- self.addEventListener('notificationclick', handler);
- });
-
- return promise;
-}
-
-var currentTest = -1;
var TESTS = [
function testWithNoNotificationClick() {
client.focus().catch(function() {
- client.postMessage('focus() outside of a notificationclick event failed');
+ self.postMessage('focus() outside of a notificationclick event failed');
}).then(runNextTestOrQuit);
},
function testInStackOutOfWaitUntil() {
synthesizeNotificationClick().then(function() {
client.focus().then(function() {
- client.postMessage('focus() in notificationclick outside of waitUntil but in stack succeeded');
+ self.postMessage('focus() in notificationclick outside of waitUntil but in stack succeeded');
}).then(runNextTestOrQuit);
});
},
@@ -47,7 +23,7 @@ var TESTS = [
synthesizeNotificationClick().then(function() {
self.clients.getAll().then(function() {
client.focus().catch(function() {
- client.postMessage('focus() in notificationclick outside of waitUntil not in stack failed');
+ self.postMessage('focus() in notificationclick outside of waitUntil not in stack failed');
}).then(runNextTestOrQuit);
});
});
@@ -57,7 +33,7 @@ var TESTS = [
synthesizeNotificationClick().then(function(e) {
e.waitUntil(self.clients.getAll().then(function() {
return client.focus().then(function() {
- client.postMessage('focus() in notificationclick\'s waitUntil suceeded');
+ self.postMessage('focus() in notificationclick\'s waitUntil suceeded');
}).then(runNextTestOrQuit);
}));
});
@@ -69,7 +45,7 @@ var TESTS = [
return client.focus().then(function() {
return client.focus();
}).catch(function() {
- client.postMessage('focus() called twice failed');
+ self.postMessage('focus() called twice failed');
}).then(runNextTestOrQuit);
}));
});
@@ -85,7 +61,7 @@ var TESTS = [
synthesizeNotificationClick().then(function(e) {
e.waitUntil(p.then(function() {
return client.focus().catch(function() {
- client.postMessage('focus() failed after timeout');
+ self.postMessage('focus() failed after timeout');
}).then(runNextTestOrQuit);
}));
});
@@ -95,29 +71,20 @@ var TESTS = [
synthesizeNotificationClick().then(function(e) {
e.waitUntil(clients.openWindow('/foo.html').then(function() {
client.focus().catch(function() {
- client.postMessage('focus() failed because a window was opened before');
+ self.postMessage('focus() failed because a window was opened before');
}).then(runNextTestOrQuit);
}));
});
},
];
-function runNextTestOrQuit() {
- ++currentTest;
- if (currentTest >= TESTS.length) {
- client.postMessage('quit');
- return;
- }
- TESTS[currentTest]();
-}
-
self.onmessage = function(e) {
if (e.data == "start") {
initialize().then(runNextTestOrQuit);
} else {
initialize().then(function() {
- client.postMessage('received unexpected message');
- client.postMessage('quit');
+ self.postMessage('received unexpected message');
+ self.postMessage('quit');
});
}
}

Powered by Google App Engine
This is Rietveld 408576698