| 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>
|
|
|