Index: chrome/test/data/extensions/api_test/storage/api_test.js |
diff --git a/chrome/test/data/extensions/api_test/storage/api_test.js b/chrome/test/data/extensions/api_test/storage/api_test.js |
new file mode 100755 |
index 0000000000000000000000000000000000000000..985cff395ad412ee090ce1120f21453871ba30a8 |
--- /dev/null |
+++ b/chrome/test/data/extensions/api_test/storage/api_test.js |
@@ -0,0 +1,77 @@ |
+// api_test.js |
+// mini-framework for ExtensionApiTest browser tests |
+// TODO(erikkay) - figure out a way to share this code across extensions |
+ |
+var completed = false; |
+var tests; |
+var currentTest; |
+ |
+function complete() { |
+ completed = true; |
+ |
+ // a bit of a hack just to try to get the script to stop running at this point |
+ throw "completed"; |
+} |
+ |
+function fail(message) { |
+ if (completed) throw "completed"; |
+ |
+ var stack; |
+ try { |
+ crash.me += 0; // intentional exception to get the stack trace |
+ } catch (e) { |
+ stack = e.stack.split("\n"); |
+ stack = stack.slice(2); // remove title and fail() |
+ stack = stack.join("\n"); |
+ } |
+ |
+ if (!message) { |
+ message = "FAIL (no message)"; |
+ } |
+ message += "\n" + stack; |
+ console.log("[FAIL] " + currentTest.name + ": " + message); |
+ chrome.test.fail(message); |
+ complete(); |
+} |
+ |
+function allTestsSucceeded() { |
+ console.log("All tests succeeded"); |
+ if (completed) throw "completed"; |
+ |
+ chrome.test.pass(); |
+ complete(); |
+} |
+ |
+function runNextTest() { |
+ currentTest = tests.shift(); |
+ if (!currentTest) { |
+ allTestsSucceeded(); |
+ return; |
+ } |
+ currentTest.call(); |
+} |
+ |
+function succeed() { |
+ console.log("[SUCCESS] " + currentTest.name); |
+ runNextTest(); |
+} |
+ |
+window.onerror = function(message, url, code) { |
+ if (completed) return; |
+ |
+ fail(message); |
+}; |
+ |
+function expectTrue(test, message) { |
+ if (test !== true) { |
+ if (typeof(test) == "string") { |
+ if (message) { |
+ message = test + "\n" + message; |
+ } else { |
+ message = test; |
+ } |
+ } |
+ fail(message); |
+ } |
+} |
+ |