diff options
Diffstat (limited to 'chrome/test')
8 files changed, 150 insertions, 0 deletions
diff --git a/chrome/test/data/extensions/api_test/override1/api_test.js b/chrome/test/data/extensions/api_test/override1/api_test.js new file mode 100755 index 0000000..84d0bb1 --- /dev/null +++ b/chrome/test/data/extensions/api_test/override1/api_test.js @@ -0,0 +1,107 @@ +// 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 assertTrue(test, message) { + if (test !== true) { + if (typeof(test) == "string") { + if (message) { + message = test + "\n" + message; + } else { + message = test; + } + } + fail(message); + } +} + +function assertNoLastError() { + if (chrome.extension.lastError != undefined) { + fail("lastError.message == " + chrome.extension.lastError.message); + } +} + +// Wrapper for generating test functions, that takes care of calling +// assertNoLastError() and succeed() for you. +function testFunction(func) { + return function() { + assertNoLastError(); + try { + func.apply(null, arguments); + } catch (e) { + var stack = null; + if (typeof(e.stack) != "undefined") { + stack = e.stack.toString() + } + var msg = "Exception during execution of testFunction in " + + currentTest.name; + if (stack) { + msg += "\n" + stack; + } else { + msg += "\n(no stack available)"; + } + fail(msg); + } + succeed(); + }; +} diff --git a/chrome/test/data/extensions/api_test/override1/background.html b/chrome/test/data/extensions/api_test/override1/background.html new file mode 100644 index 0000000..0f02a821 --- /dev/null +++ b/chrome/test/data/extensions/api_test/override1/background.html @@ -0,0 +1,2 @@ +<script src="api_test.js"></script>
+<script src="test.js"></script>
diff --git a/chrome/test/data/extensions/api_test/override1/downloads.html b/chrome/test/data/extensions/api_test/override1/downloads.html new file mode 100644 index 0000000..565343c --- /dev/null +++ b/chrome/test/data/extensions/api_test/override1/downloads.html @@ -0,0 +1,6 @@ +<title>download1</title>
+<script>
+console.log("download1");
+chrome.test.pass();
+</script>
+Downloads Override
diff --git a/chrome/test/data/extensions/api_test/override1/history.html b/chrome/test/data/extensions/api_test/override1/history.html new file mode 100644 index 0000000..ba1e65b --- /dev/null +++ b/chrome/test/data/extensions/api_test/override1/history.html @@ -0,0 +1,4 @@ +<script>
+chrome.test.pass();
+</script>
+History Override
diff --git a/chrome/test/data/extensions/api_test/override1/manifest.json b/chrome/test/data/extensions/api_test/override1/manifest.json new file mode 100644 index 0000000..1fd8311 --- /dev/null +++ b/chrome/test/data/extensions/api_test/override1/manifest.json @@ -0,0 +1,12 @@ +{
+ "name": "Override Test 1",
+ "version": "0.1",
+ "description": "Test chrome:// overrides",
+ "background_page": "background.html",
+ "permissions": [
+ "tabs"
+ ],
+ "chrome_url_overrides": {
+ "newtab": "newtab.html"
+ }
+}
diff --git a/chrome/test/data/extensions/api_test/override1/newtab.html b/chrome/test/data/extensions/api_test/override1/newtab.html new file mode 100644 index 0000000..a1028a2 --- /dev/null +++ b/chrome/test/data/extensions/api_test/override1/newtab.html @@ -0,0 +1,4 @@ +<script>
+chrome.test.pass();
+</script>
+New Tab Override
diff --git a/chrome/test/data/extensions/api_test/override1/nonexistant.html b/chrome/test/data/extensions/api_test/override1/nonexistant.html new file mode 100644 index 0000000..66cfbd0 --- /dev/null +++ b/chrome/test/data/extensions/api_test/override1/nonexistant.html @@ -0,0 +1,4 @@ +<script>
+chrome.test.pass();
+</script>
+Nonexistant Override
diff --git a/chrome/test/data/extensions/api_test/override1/test.js b/chrome/test/data/extensions/api_test/override1/test.js new file mode 100644 index 0000000..1684f2f --- /dev/null +++ b/chrome/test/data/extensions/api_test/override1/test.js @@ -0,0 +1,11 @@ +var tests = [
+ function newtab() {
+ chrome.tabs.create({"url": "chrome://newtab/"},
+ testFunction(function(response) {
+ console.log("AFTER");
+ }));
+ }
+];
+
+runNextTest();
+
|