Index: extensions/test/data/unit_test_environment_specific_bindings.js |
diff --git a/extensions/test/data/unit_test_environment_specific_bindings.js b/extensions/test/data/unit_test_environment_specific_bindings.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..245d050d6325400bc5c7722c790620dc9a8d83aa |
--- /dev/null |
+++ b/extensions/test/data/unit_test_environment_specific_bindings.js |
@@ -0,0 +1,50 @@ |
+// Copyright 2014 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. |
+ |
+var nativesPromise = requireAsync('testNatives'); |
+ |
+function registerHooks(api) { |
+ var chromeTest = api.compiledApi; |
+ var apiFunctions = api.apiFunctions; |
+ |
+ 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(runNextTest) { |
+ // Use a promise here to allow previous test contexts to be eligible for |
+ // garbage collection. |
+ Promise.resolve().then(function() { |
+ runNextTest(); |
+ }); |
+} |
+ |
+function exportTests(tests, runTests, exports) { |
+ $Array.forEach(tests, function(test) { |
+ exports[test.name] = function() { |
+ runTests([test]); |
+ return true; |
+ } |
+ }); |
+} |
+ |
+exports.registerHooks = registerHooks; |
+exports.testDone = testDone; |
+exports.exportTests = exportTests; |