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

Unified Diff: chrome/test/data/webui/webui_resource_async_browsertest.js

Issue 1622663002: WebUI: Replace cr.sendWithCallback with cr.sendWithPromise. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Migrating caller + cleanups. Created 4 years, 11 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: chrome/test/data/webui/webui_resource_async_browsertest.js
diff --git a/chrome/test/data/webui/webui_resource_async_browsertest.js b/chrome/test/data/webui/webui_resource_async_browsertest.js
new file mode 100644
index 0000000000000000000000000000000000000000..0a25be4cddc1359526e9a81f9f88d0e8cafd3275
--- /dev/null
+++ b/chrome/test/data/webui/webui_resource_async_browsertest.js
@@ -0,0 +1,83 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview Framework for running async JS tests for cr.js utility methods.
+ */
+
+/** @const {string} Path to source root. */
+var ROOT_PATH = '../../../../';
+
+/**
+ * Test fixture for testing async methods of cr.js.
+ * @constructor
+ * @extends testing.Test
+ */
+function WebUIResourceAsyncTest() {}
+
+WebUIResourceAsyncTest.prototype = {
+ __proto__: testing.Test.prototype,
+
+ /** @override */
+ browsePreload: DUMMY_URL,
Dan Beam 2016/01/23 02:48:51 where does this magic come from?
dpapad 2016/01/25 18:34:22 https://code.google.com/p/chromium/codesearch#chro
+
+ /** @override */
+ isAsync: true,
+
+ /** @override */
+ runAccessibilityChecks: false,
+
+ /** @override */
+ extraLibraries: [
+ ROOT_PATH + 'third_party/mocha/mocha.js',
+ ROOT_PATH + 'chrome/test/data/webui/mocha_adapter.js',
+ ROOT_PATH + 'ui/webui/resources/js/cr.js',
+ ],
+};
+
+TEST_F('WebUIResourceAsyncTest', 'SendWithPromise', function() {
+ var expectedChromeSendMessageName = 'echoMessage';
+
+ /**
+ * TODO(dpapad): Move this helper method in test_api.js.
+ * @param {string} name chrome.send message name.
+ * @return {!Promise} Fires when chrome.send is called with the given message
+ * name.
+ */
+ function whenChromeSendCalled(name) {
+ return new Promise(function(resolve, reject) {
+ registerMessageCallback(name, null, resolve);
+ });
+ }
+
+ suite('cr.js', function() {
+ setup(function() {
+ // Simulate a WebUI handler that echoes back all parameters passed to it.
+ whenChromeSendCalled(expectedChromeSendMessageName).then(
+ function(args) {
+ assertEquals('cr.webUIResponse', args[0]);
+ var globalCallbackArgs = args.slice(1);
+ window['cr']['webUIResponse'].apply(null, globalCallbackArgs);
Dan Beam 2016/01/23 02:48:51 why can't this just be cr.webUIResponse.apply(cr,
dpapad 2016/01/25 18:34:22 Done.
+ });
+ });
+
+ test('sendWithPromise_MultipleArgs', function() {
+ return cr.sendWithPromise(
+ expectedChromeSendMessageName, 'foo', 'bar').then(
+ function(response) {
+ assertEquals(['foo', 'bar'].join(), response.join());
+ });
+ });
+
+ test('sendWithPromise_NoArgs', function() {
+ return cr.sendWithPromise(expectedChromeSendMessageName).then(
+ function(response) {
+ assertEquals(undefined, response);
+ });
+ });
+ });
+
+ // Run all registered tests.
+ mocha.run();
+});

Powered by Google App Engine
This is Rietveld 408576698