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

Unified Diff: third_party/WebKit/LayoutTests/presentation/presentation-controller-close-connection.html

Issue 2730123003: [Presentation API] Add layout test for connection.close() and fix test failures (Closed)
Patch Set: remove unnecessary forward declarations Created 3 years, 9 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: third_party/WebKit/LayoutTests/presentation/presentation-controller-close-connection.html
diff --git a/third_party/WebKit/LayoutTests/presentation/presentation-controller-close-connection.html b/third_party/WebKit/LayoutTests/presentation/presentation-controller-close-connection.html
new file mode 100644
index 0000000000000000000000000000000000000000..30b6e3eace704855232a5a03ab7e966e26fa72b9
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/presentation/presentation-controller-close-connection.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script src="../resources/testharness.js"></script>
+<script src="../resources/testharnessreport.js"></script>
+<script src="../resources/mojo-helpers.js"></script>
+<script src="resources/presentation-service-mock.js"></script>
+<button>click me</button>
+<script>
+
+var button = document.querySelector('button');
+var receiverConnectionClosed = false;
+var connection = null;
+
+async_test(t => {
+ presentationServiceMock.then(service => {
+ // This is receiving the user gesture and runs the callback.
+ waitForClick(() => {
+ new PresentationRequest("https://example.com/").start().then(
+ theConnection => {
+ connection = theConnection;
+ connection.onclose = (closeEvent) => {
+ assert_equals(closeEvent.reason, "closed");
+ assert_equals(closeEvent.message, "");
+ assert_equals(connection.state, "closed");
+ assert_true(receiverConnectionClosed);
+ t.done();
+ };
+ connection.onconnect = () => {
+ // Open a receiver page and pass controller connection's
+ // controllerConnectionPtr and receiverConnectionRequest to it.
+ w = window.open("resources/presentation-receiver-close-connection.html");
+ w.controllerConnectionPtr = service.getControllerConnectionPtr();
+ w.receiverConnectionRequest = service.getReceiverConnectionRequest();
+ w.shouldCallClose = false;
+ };
+ });
+ }, button);
+ });
+
+ window.addEventListener("message", t.step_func(e => {
+ if (e.data == "receiver connection closed") {
+ receiverConnectionClosed = true;
+ } else if (e.data == "receiver connection ready") {
+ assert_not_equals(connection, null);
+ connection.close();
+ }
+ }));
+}, "controller connection.close() should fire both controller's and receiver's onclose event handler");
+
+</script>
+</body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698