summaryrefslogtreecommitdiffstats
path: root/chrome/test
diff options
context:
space:
mode:
authorkkania@chromium.org <kkania@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-07 22:27:24 +0000
committerkkania@chromium.org <kkania@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-07 22:27:24 +0000
commit36a06bad9e883888e32e95bad815fcf89c00fb1c (patch)
tree70e0f640d412b76dcfb586a58ddaa16d2dcd4304 /chrome/test
parent44af5beabc1f3c7e46e34711ab515a1d235ccbc0 (diff)
downloadchromium_src-36a06bad9e883888e32e95bad815fcf89c00fb1c.zip
chromium_src-36a06bad9e883888e32e95bad815fcf89c00fb1c.tar.gz
chromium_src-36a06bad9e883888e32e95bad815fcf89c00fb1c.tar.bz2
Revert 35737 (Chrome OS failing) - Include more extension browser tests on mac and linux. Some minor changes and reorganization.
BUG=none TEST=none Review URL: http://codereview.chromium.org/504064 TBR=kkania@chromium.org Review URL: http://codereview.chromium.org/518068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35743 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test')
-rw-r--r--chrome/test/data/extensions/api_test/tabs/basics/echo.js (renamed from chrome/test/data/extensions/api_test/tabs/connect/echo.js)0
-rw-r--r--chrome/test/data/extensions/api_test/tabs/basics/manifest.json6
-rw-r--r--chrome/test/data/extensions/api_test/tabs/basics/test.js103
-rw-r--r--chrome/test/data/extensions/api_test/tabs/connect/manifest.json13
-rw-r--r--chrome/test/data/extensions/api_test/tabs/connect/tabs_util.js77
-rw-r--r--chrome/test/data/extensions/api_test/tabs/connect/test.html102
6 files changed, 90 insertions, 211 deletions
diff --git a/chrome/test/data/extensions/api_test/tabs/connect/echo.js b/chrome/test/data/extensions/api_test/tabs/basics/echo.js
index 413a1d4..413a1d4 100644
--- a/chrome/test/data/extensions/api_test/tabs/connect/echo.js
+++ b/chrome/test/data/extensions/api_test/tabs/basics/echo.js
diff --git a/chrome/test/data/extensions/api_test/tabs/basics/manifest.json b/chrome/test/data/extensions/api_test/tabs/basics/manifest.json
index 0ffa68f..dfc45f3 100644
--- a/chrome/test/data/extensions/api_test/tabs/basics/manifest.json
+++ b/chrome/test/data/extensions/api_test/tabs/basics/manifest.json
@@ -3,5 +3,11 @@
"version": "0.1",
"description": "end-to-end browser test for chrome.tabs API",
"background_page": "test.html",
+ "content_scripts": [
+ {
+ "matches": ["http://*/*"],
+ "js": ["echo.js"]
+ }
+ ],
"permissions": ["tabs"]
}
diff --git a/chrome/test/data/extensions/api_test/tabs/basics/test.js b/chrome/test/data/extensions/api_test/tabs/basics/test.js
index 7f43fcc..a516ddc 100644
--- a/chrome/test/data/extensions/api_test/tabs/basics/test.js
+++ b/chrome/test/data/extensions/api_test/tabs/basics/test.js
@@ -15,14 +15,6 @@ var pass = chrome.test.callbackPass;
var assertEq = chrome.test.assertEq;
var assertTrue = chrome.test.assertTrue;
-// The browser tests on windows run with the homepage set to the ntp.
-// On mac and linux, the homepage is google.
-var kDefaultUrl;
-if (navigator.userAgent.indexOf("Win") != -1) // if running on windows
- kDefaultUrl = "chrome://newtab/"
-else
- kDefaultUrl = "http://www.google.com/"
-
function pageUrl(letter) {
return chrome.extension.getURL(letter + ".html");
}
@@ -43,7 +35,7 @@ chrome.test.runTests([
assertTrue(tab.index > firstTabIndex);
assertEq(firstWindowId, tab.windowId);
assertEq(false, tab.selected);
- assertEq(kDefaultUrl, tab.url);
+ assertEq("chrome://newtab/", tab.url);
}));
},
@@ -495,18 +487,91 @@ chrome.test.runTests([
chrome.windows.remove(windowEventsWindow.id, pass());
},
- // Regression test for crbug.com/28325. Does not perfectly reproduce the issue
- // unfortunately.
- function moveWindowsAndCreate() {
- setupWindow(["", ""], pass(function(win1, win1Tabs) {
- createWindow([""], pass(function(win2, win2Tabs) {
- chrome.tabs.move(win1Tabs[1], {"windowId": win2, "index": 2},
- pass(function(tab) {
- chrome.tabs.create({"windowId": win1, "url": "chrome://newtab/"});
- }));
+ function setupConnect() {
+ // The web page that our content script will be injected into.
+ var relativePath = '/files/extensions/api_test/tabs/basics/relative.html';
+ var testUrl = 'http://localhost:1337' + relativePath;
+
+ setupWindow([testUrl], pass(function(winId, tabIds) {
+ testTabId = tabIds[0];
+ waitForAllTabs(pass());
+ }));
+ },
+
+ function connectMultipleConnects() {
+ var connectCount = 0;
+ function connect10() {
+ var port = chrome.tabs.connect(testTabId);
+ chrome.test.listenOnce(port.onMessage, function(msg) {
+ assertEq(++connectCount, msg.connections);
+ if (connectCount < 10)
+ connect10();
+ });
+ port.postMessage("GET");
+ }
+ connect10();
+ },
+
+ function connectName() {
+ var name = "akln3901n12la";
+ var port = chrome.tabs.connect(testTabId, {"name": name});
+ chrome.test.listenOnce(port.onMessage, function(msg) {
+ assertEq(name, msg.name);
+
+ var port = chrome.tabs.connect(testTabId);
+ chrome.test.listenOnce(port.onMessage, function(msg) {
+ assertEq('', msg.name);
+ });
+ port.postMessage("GET");
+ });
+ port.postMessage("GET");
+ },
+
+ function connectPostMessageTypes() {
+ var port = chrome.tabs.connect(testTabId);
+ // Test the content script echoes the message back.
+ var echoMsg = {"num": 10, "string": "hi", "array": [1,2,3,4,5],
+ "obj":{"dec": 1.0}};
+ chrome.test.listenOnce(port.onMessage, function(msg) {
+ assertEq(echoMsg.num, msg.num);
+ assertEq(echoMsg.string, msg.string);
+ assertEq(echoMsg.array[4], msg.array[4]);
+ assertEq(echoMsg.obj.dec, msg.obj.dec);
+ });
+ port.postMessage(echoMsg);
+ },
+
+ function connectPostManyMessages() {
+ var port = chrome.tabs.connect(testTabId);
+ var count = 0;
+ var done = chrome.test.listenForever(port.onMessage, function(msg) {
+ assertEq(count++, msg);
+ if (count == 999) {
+ done();
+ }
+ });
+ for (var i = 0; i < 1000; i++) {
+ port.postMessage(i);
+ }
+ },
+
+ /* TODO: Enable this test once we do checking on the tab id for
+ chrome.tabs.connect (crbug.com/27565).
+ function connectNoTab() {
+ chrome.tabs.create({}, pass(function(tab) {
+ chrome.tabs.remove(tab.id, pass(function() {
+ var port = chrome.tabs.connect(tab.id);
+ assertEq(null, port);
}));
}));
- }
+ }, */
+
+ function sendRequest() {
+ var request = "test";
+ chrome.tabs.sendRequest(testTabId, request, pass(function(response) {
+ assertEq(request, response);
+ }));
+ },
// TODO(asargent)
// It would be an improvement to check the captureVisibleTab results
diff --git a/chrome/test/data/extensions/api_test/tabs/connect/manifest.json b/chrome/test/data/extensions/api_test/tabs/connect/manifest.json
deleted file mode 100644
index dfc45f3..0000000
--- a/chrome/test/data/extensions/api_test/tabs/connect/manifest.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "name": "chrome.tabs",
- "version": "0.1",
- "description": "end-to-end browser test for chrome.tabs API",
- "background_page": "test.html",
- "content_scripts": [
- {
- "matches": ["http://*/*"],
- "js": ["echo.js"]
- }
- ],
- "permissions": ["tabs"]
-}
diff --git a/chrome/test/data/extensions/api_test/tabs/connect/tabs_util.js b/chrome/test/data/extensions/api_test/tabs/connect/tabs_util.js
deleted file mode 100644
index f087948..0000000
--- a/chrome/test/data/extensions/api_test/tabs/connect/tabs_util.js
+++ /dev/null
@@ -1,77 +0,0 @@
-// Utility functions to help with tabs/windows testing.
-
-// Removes current windows and creates one window with tabs set to
-// the urls in the array |tabUrls|. At least one url must be specified.
-// The |callback| should look like function(windowId, tabIds) {...}.
-function setupWindow(tabUrls, callback) {
- createWindow(tabUrls, function(winId, tabIds) {
- // Remove all other windows.
- var removedCount = 0;
- chrome.windows.getAll({}, function(windows) {
- for (var i in windows) {
- if (windows[i].id != winId) {
- chrome.windows.remove(windows[i].id, function() {
- removedCount++;
- if (removedCount == windows.length - 1)
- callback(winId, tabIds);
- });
- }
- }
- if (windows.length == 1)
- callback(winId, tabIds);
- });
- });
-}
-
-// Creates one window with tabs set to the urls in the array |tabUrls|.
-// At least one url must be specified.
-// The |callback| should look like function(windowId, tabIds) {...}.
-function createWindow(tabUrls, callback) {
- chrome.windows.create({"url": tabUrls[0]}, function(win) {
- assertTrue(win.id > 0);
- var newTabIds = [];
-
- // Create tabs and populate newTabIds array.
- chrome.tabs.getSelected(win.id, function (tab) {
- newTabIds.push(tab.id);
- for (var i = 1; i < tabUrls.length; i++) {
- chrome.tabs.create({"windowId": win.id, "url": tabUrls[i]},
- function(tab){
- newTabIds.push(tab.id);
- if (newTabIds.length == tabUrls.length)
- callback(win.id, newTabIds);
- });
- }
- if (tabUrls.length == 1)
- callback(win.id, newTabIds);
- });
- });
-}
-
-// Waits until all tabs (yes, in every window) have status "complete".
-// This is useful to prevent test overlap when testing tab events.
-// |callback| should look like function() {...}.
-function waitForAllTabs(callback) {
- // Wait for all tabs to load.
- function waitForTabs(){
- chrome.windows.getAll({"populate": true}, function(windows) {
- var ready = true;
- for (var i in windows){
- for (var j in windows[i].tabs) {
- if (windows[i].tabs[j].status != "complete") {
- ready = false;
- break;
- }
- }
- if (!ready)
- break;
- }
- if (ready)
- callback();
- else
- window.setTimeout(waitForTabs, 30);
- });
- }
- waitForTabs();
-}
-
diff --git a/chrome/test/data/extensions/api_test/tabs/connect/test.html b/chrome/test/data/extensions/api_test/tabs/connect/test.html
deleted file mode 100644
index d6279ed..0000000
--- a/chrome/test/data/extensions/api_test/tabs/connect/test.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<script src="tabs_util.js" />
-<script>
-var firstWindowId = null;
-var secondWindowId = null;
-var firstTabIndex = null;
-var testTabId = null;
-
-var windowEventsWindow = null;
-var moveTabIds = {};
-
-var pass = chrome.test.callbackPass;
-var assertEq = chrome.test.assertEq;
-var assertTrue = chrome.test.assertTrue;
-
-chrome.test.runTests([
- function setupConnect() {
- // The web page that our content script will be injected into.
- var relativePath = '/files/extensions/api_test/tabs/basics/relative.html';
- var testUrl = 'http://localhost:1337' + relativePath;
-
- setupWindow([testUrl], pass(function(winId, tabIds) {
- testTabId = tabIds[0];
- waitForAllTabs(pass());
- }));
- },
-
- function connectMultipleConnects() {
- var connectCount = 0;
- function connect10() {
- var port = chrome.tabs.connect(testTabId);
- chrome.test.listenOnce(port.onMessage, function(msg) {
- assertEq(++connectCount, msg.connections);
- if (connectCount < 10)
- connect10();
- });
- port.postMessage("GET");
- }
- connect10();
- },
-
- function connectName() {
- var name = "akln3901n12la";
- var port = chrome.tabs.connect(testTabId, {"name": name});
- chrome.test.listenOnce(port.onMessage, function(msg) {
- assertEq(name, msg.name);
-
- var port = chrome.tabs.connect(testTabId);
- chrome.test.listenOnce(port.onMessage, function(msg) {
- assertEq('', msg.name);
- });
- port.postMessage("GET");
- });
- port.postMessage("GET");
- },
-
- function connectPostMessageTypes() {
- var port = chrome.tabs.connect(testTabId);
- // Test the content script echoes the message back.
- var echoMsg = {"num": 10, "string": "hi", "array": [1,2,3,4,5],
- "obj":{"dec": 1.0}};
- chrome.test.listenOnce(port.onMessage, function(msg) {
- assertEq(echoMsg.num, msg.num);
- assertEq(echoMsg.string, msg.string);
- assertEq(echoMsg.array[4], msg.array[4]);
- assertEq(echoMsg.obj.dec, msg.obj.dec);
- });
- port.postMessage(echoMsg);
- },
-
- function connectPostManyMessages() {
- var port = chrome.tabs.connect(testTabId);
- var count = 0;
- var done = chrome.test.listenForever(port.onMessage, function(msg) {
- assertEq(count++, msg);
- if (count == 999) {
- done();
- }
- });
- for (var i = 0; i < 1000; i++) {
- port.postMessage(i);
- }
- },
-
- /* TODO: Enable this test once we do checking on the tab id for
- chrome.tabs.connect (crbug.com/27565).
- function connectNoTab() {
- chrome.tabs.create({}, pass(function(tab) {
- chrome.tabs.remove(tab.id, pass(function() {
- var port = chrome.tabs.connect(tab.id);
- assertEq(null, port);
- }));
- }));
- }, */
-
- function sendRequest() {
- var request = "test";
- chrome.tabs.sendRequest(testTabId, request, pass(function(response) {
- assertEq(request, response);
- }));
- }
-]);
-</script>