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

Unified Diff: extensions/test/data/test_unittest_custom_bindings.js

Issue 399363002: Add support for writing unit tests for Mojo-backed apps/extensions APIs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 5 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: extensions/test/data/test_unittest_custom_bindings.js
diff --git a/extensions/renderer/resources/test_custom_bindings.js b/extensions/test/data/test_unittest_custom_bindings.js
similarity index 87%
copy from extensions/renderer/resources/test_custom_bindings.js
copy to extensions/test/data/test_unittest_custom_bindings.js
index 5fd45495247c5def8a319ef9895dd59d07155640..d84c290d1d18ebb4d79bd85d172e97b9bcfdba09 100644
--- a/extensions/renderer/resources/test_custom_bindings.js
+++ b/extensions/test/data/test_unittest_custom_bindings.js
@@ -2,21 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// test_custom_bindings.js
-// mini-framework for ExtensionApiTest browser tests
+// test_unittest_custom_bindings.js
+// An implementation of chrome.test for ApiTestBase unit tests.
+// This is a fork of src/extensions/renderer/resources/test_custom_bindings.js.
not at google - send to devlin 2014/07/18 15:09:14 I'm not sure about this. It seems like you could a
Sam McNally 2014/07/21 03:56:28 Done.
var binding = require('binding').Binding.create('test');
-var chrome = requireNative('chrome').GetChrome();
-var GetExtensionAPIDefinitionsForTest =
- requireNative('apiDefinitions').GetExtensionAPIDefinitionsForTest;
-var GetAvailability = requireNative('v8_context').GetAvailability;
-var GetAPIFeatures = requireNative('test_features').GetAPIFeatures;
+var nativesPromise = requireAsync('testNatives');
var uncaughtExceptionHandler = require('uncaught_exception_handler');
-var userGestures = requireNative('user_gestures');
-
-var RunWithNativesEnabledModuleSystem =
- requireNative('v8_context').RunWithNativesEnabledModuleSystem;
binding.registerCustomHook(function(api) {
var chromeTest = api.compiledApi;
@@ -36,10 +29,30 @@ binding.registerCustomHook(function(api) {
return test ? (test.name || test.generatedName) : "(no test)";
}
+ apiFunctions.setHandleRequest('notifyPass', function() {
+ nativesPromise.then(function(natives) {
+ natives.NotifyPass();
+ });
+ });
+
+ apiFunctions.setHandleRequest('notifyFail', function(message) {
+ nativesPromise.then(function(natives) {
+ natives.NotifyFail(message);
+ });
+ });
+
+ apiFunctions.setHandleRequest('log', function() {
+ nativesPromise.then(function(natives) {
+ natives.Log($Array.join(arguments, ' '));
+ });
+ });
+
function testDone() {
- // Use setTimeout here to allow previous test contexts to be
- // eligible for garbage collection.
- setTimeout(chromeTest.runNextTest, 0);
+ // Use a promise here to allow previous test contexts to be eligible for
+ // garbage collection.
+ Promise.resolve().then(function() {
+ chromeTest.runNextTest();
+ });
}
function allTestsDone() {
@@ -126,7 +139,7 @@ binding.registerCustomHook(function(api) {
});
apiFunctions.setHandleRequest('runWithModuleSystem', function(callback) {
- RunWithNativesEnabledModuleSystem(callback);
+ throw new Error('Not implemented');
});
apiFunctions.setHandleRequest('assertTrue', function(test, message) {
@@ -324,31 +337,36 @@ binding.registerCustomHook(function(api) {
});
apiFunctions.setHandleRequest('runTests', function(tests) {
- chromeTest.tests = tests;
- testCount = chromeTest.tests.length;
- chromeTest.runNextTest();
+ var testWrappers = {};
+ $Array.forEach(tests, function(testCase) {
+ testWrappers[testName(testCase)] = function() {
+ chromeTest.tests = [testCase];
+ testCount = 1;
+ chromeTest.runNextTest();
+ return true;
+ }
+ });
+ return testWrappers;
});
apiFunctions.setHandleRequest('getApiDefinitions', function() {
- return GetExtensionAPIDefinitionsForTest();
+ throw new Error('Not implemented');
});
apiFunctions.setHandleRequest('getApiFeatures', function() {
- return GetAPIFeatures();
+ throw new Error('Not implemented');
});
apiFunctions.setHandleRequest('isProcessingUserGesture', function() {
- return userGestures.IsProcessingUserGesture();
+ throw new Error('Not implemented');
});
apiFunctions.setHandleRequest('runWithUserGesture', function(callback) {
- chromeTest.assertEq(typeof(callback), 'function');
- return userGestures.RunWithUserGesture(callback);
+ throw new Error('Not implemented');
});
apiFunctions.setHandleRequest('runWithoutUserGesture', function(callback) {
- chromeTest.assertEq(typeof(callback), 'function');
- return userGestures.RunWithoutUserGesture(callback);
+ throw new Error('Not implemented');
});
apiFunctions.setHandleRequest('setExceptionHandler', function(callback) {
@@ -358,3 +376,4 @@ binding.registerCustomHook(function(api) {
});
exports.binding = binding.generate();
+
not at google - send to devlin 2014/07/18 15:09:14 not this
Sam McNally 2014/07/21 03:56:28 Done.

Powered by Google App Engine
This is Rietveld 408576698