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

Unified Diff: LayoutTests/http/tests/navigatorconnect/system-service.html

Issue 1191393003: Update client side navigator.connect API to use ServicePortCollection [1/3] (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@serviceport
Patch Set: address more comments Created 5 years, 6 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/navigatorconnect/system-service.html
diff --git a/LayoutTests/http/tests/navigatorconnect/system-service.html b/LayoutTests/http/tests/navigatorconnect/system-service.html
deleted file mode 100644
index b6b2f91362e06a87cd758ad94e8be22789be2b29..0000000000000000000000000000000000000000
--- a/LayoutTests/http/tests/navigatorconnect/system-service.html
+++ /dev/null
@@ -1,160 +0,0 @@
-<!DOCTYPE html>
-<title>
- Tests posting messages over a navigator.connect initiated channel to a system
- service.
-</title>
-<script src="../../resources/testharness.js"></script>
-<script src="../../resources/testharnessreport.js"></script>
-<script src="../../resources/testharness-helpers.js"></script>
-<script src="../../resources/get-host-info.js"></script>
-<script src="../serviceworker/resources/test-helpers.js"></script>
-<script src="resources/test-helpers.js"></script>
-<body>
-<script>
-var echo_service_url = 'chrome-layout-test:echo';
-var annotate_service_url = 'chrome-layout-test:annotate';
-var cross_origin = get_host_info().UNAUTHENTICATED_ORIGIN;
-
-// Helper method that waits for a reply on a port, and resolves a promise with
-// the reply.
-function wait_for_reply(test, port) {
- return new Promise(function(resolve) {
- var resolved = false;
- port.onmessage = test.step_func(function(event) {
- assert_false(resolved);
- resolved = true;
- resolve(event.data);
- });
- });
-}
-
-// Helper method that applies the same transformations that would happen when
-// roundtripping some value through the conversions that happen when a service
-// expects values as base::Value.
-// In particular since base::Value can't represent a date directly, converting a
-// Date to a base::Value converts it to the number of seconds since
-// 1 January 1970 00:00:00 UTC. Converting it back to javascript will then keep
-// it as a number.
-function convert_dates(key, value) {
- // Have to use |this[key]| here instead of |value| since |value| is already
- // stringified.
- if (this[key] instanceof Date) {
- return this[key].getTime() / 1000;
- }
- return value;
-}
-
-// Convert |actual| and |expected| to json, using |replacer| on |expected|, and
-// compares the resulting strings.
-function compare_as_json(replacer, actual, expected) {
- assert_equals(JSON.stringify(actual), JSON.stringify(expected, replacer));
-}
-
-// Sends various messages to a port, and compares the response using the passed
-// in |compare| function.
-function test_sending_messages_with_port(port, compare, t) {
- // List of test messages that are send to the service.
- var test_messages = ['ping over n.c',
- 1234,
- ["array", "test"],
- {obj: "test"},
- {date: new Date(2015, 2, 20, 13, 10, 42, 0)},
- new Date()];
- var next_message = 0;
-
- function send_next_message(port) {
- if (next_message >= test_messages.length) return;
- var message = test_messages[next_message++];
- var result = wait_for_reply(t, port);
- port.postMessage(message);
- return result.then(t.step_func(function(response) {
- compare(response, message);
- return send_next_message(port);
- }));
- }
-
- return send_next_message(port);
-}
-
-// Connects to the |target_url|, and then tries sending various messages.
-function test_sending_messages(target_url, compare, t) {
- return navigator.connect(target_url)
- .then(function(port) {
- return test_sending_messages_with_port(port, compare, t);
- });
-}
-
-promise_test(function(t) {
- var target_url = echo_service_url + '?as-string';
- // No special replacer needed, so bind undefined to the replacer parameter.
- var compare = compare_as_json.bind(undefined, undefined);
- return navigator.connect(target_url)
- .then(function(port) {
- return test_sending_messages_with_port(port, compare, t);
- });
- }, 'Messages can be sent and received to a system service when sent as strings.');
-
-promise_test(function(t) {
- var target_url = echo_service_url + '?as-value';
- var compare = compare_as_json.bind(undefined, convert_dates);
- return navigator.connect(target_url)
- .then(function(port) {
- return test_sending_messages_with_port(port, compare, t);
- });
- }, 'Messages can be sent and received to a system service when sent as values.');
-
-promise_test(function(t) {
- function validate_reply(actual, expected) {
- compare_as_json(convert_dates, actual.message_as_value, [expected]);
- assert_equals(actual.message_as_string, '');
- }
- var port;
- return navigator.connect(annotate_service_url + '?as-value')
- .then(function(p) {
- port = p;
- return wait_for_reply(t, port);
- })
- .then(t.step_func(function(response) {
- assert_equals(response.origin, document.location.origin + '/');
- return test_sending_messages_with_port(port, validate_reply, t);
- }));
- }, 'Messages are actually understandable by the browser when sent as values.');
-
-promise_test(function(t) {
- function validate_reply(actual, expected) {
- compare_as_json(undefined, actual.message_as_value, []);
- assert_equals(typeof actual.message_as_string, 'string');
- assert_not_equals(actual.message_as_string, '');
- }
- var port;
- return navigator.connect(annotate_service_url + '?as-string')
- .then(function(p) {
- port = p;
- return wait_for_reply(t, port);
- })
- .then(t.step_func(function(response) {
- assert_equals(response.origin, document.location.origin + '/');
- return test_sending_messages_with_port(port, validate_reply, t);
- }));
- }, 'Messages are only sent as values when the service asks for it.');
-
-
-promise_test(function(t) {
- function validate_reply(actual, expected) {
- compare_as_json(convert_dates, actual.message_as_value, [expected]);
- assert_equals(actual.message_as_string, '');
- }
- var port;
- return cross_origin_connect(t, annotate_service_url + '?as-value')
- .then(function(p) {
- port = p;
- return wait_for_reply(t, port);
- })
- .then(t.step_func(function(response) {
- assert_equals(response.origin, cross_origin + '/');
- return test_sending_messages_with_port(port, validate_reply, t);
- }));
- }, 'Messages are sent as values, even if port is transferred from iframe.');
-
-</script>
-</body>

Powered by Google App Engine
This is Rietveld 408576698