diff options
author | kkania@chromium.org <kkania@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-07 22:27:24 +0000 |
---|---|---|
committer | kkania@chromium.org <kkania@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-07 22:27:24 +0000 |
commit | 36a06bad9e883888e32e95bad815fcf89c00fb1c (patch) | |
tree | 70e0f640d412b76dcfb586a58ddaa16d2dcd4304 /chrome/test | |
parent | 44af5beabc1f3c7e46e34711ab515a1d235ccbc0 (diff) | |
download | chromium_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.json | 6 | ||||
-rw-r--r-- | chrome/test/data/extensions/api_test/tabs/basics/test.js | 103 | ||||
-rw-r--r-- | chrome/test/data/extensions/api_test/tabs/connect/manifest.json | 13 | ||||
-rw-r--r-- | chrome/test/data/extensions/api_test/tabs/connect/tabs_util.js | 77 | ||||
-rw-r--r-- | chrome/test/data/extensions/api_test/tabs/connect/test.html | 102 |
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> |