summaryrefslogtreecommitdiffstats
path: root/chrome/test
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/test')
-rwxr-xr-xchrome/test/data/extensions/api_test/override1/api_test.js107
-rw-r--r--chrome/test/data/extensions/api_test/override1/background.html2
-rw-r--r--chrome/test/data/extensions/api_test/override1/downloads.html6
-rw-r--r--chrome/test/data/extensions/api_test/override1/history.html4
-rw-r--r--chrome/test/data/extensions/api_test/override1/manifest.json12
-rw-r--r--chrome/test/data/extensions/api_test/override1/newtab.html4
-rw-r--r--chrome/test/data/extensions/api_test/override1/nonexistant.html4
-rw-r--r--chrome/test/data/extensions/api_test/override1/test.js11
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();
+