Index: chrome/test/data/extensions/api_test/tabs/basics/move.js |
diff --git a/chrome/test/data/extensions/api_test/tabs/basics/move.js b/chrome/test/data/extensions/api_test/tabs/basics/move.js |
index a88d6ed9e445d7615dc53caf7dcad12bb4f12e85..4befad6ef1fd1a42f15da92b156f66628bb05b7e 100644 |
--- a/chrome/test/data/extensions/api_test/tabs/basics/move.js |
+++ b/chrome/test/data/extensions/api_test/tabs/basics/move.js |
@@ -5,6 +5,7 @@ |
var firstWindowId; |
var secondWindowId; |
var moveTabIds = {}; |
+var kChromeUINewTabURL = "chrome://newtab/"; |
chrome.test.runTests([ |
// Do a series of moves and removes so that we get the following |
@@ -14,10 +15,10 @@ chrome.test.runTests([ |
// Window2: (newtab) |
// |
// After moveToInvalidTab: |
- // Window1: (newtab),a |
- // Window2: b,(newtab) |
+ // Window1: (newtab) |
+ // Window2: b,a,(newtab) |
function setupLetterPages() { |
- var pages = ["chrome://newtab/", pageUrl('a'), pageUrl('b'), |
+ var pages = [kChromeUINewTabURL, pageUrl('a'), pageUrl('b'), |
pageUrl('c'), pageUrl('d'), pageUrl('e')]; |
createWindow(pages, {}, pass(function(winId, tabIds) { |
firstWindowId = winId; |
@@ -26,7 +27,7 @@ chrome.test.runTests([ |
moveTabIds['c'] = tabIds[3]; |
moveTabIds['d'] = tabIds[4]; |
moveTabIds['e'] = tabIds[5]; |
- createWindow(["chrome://newtab/"], {}, pass(function(winId, tabIds) { |
+ createWindow([kChromeUINewTabURL], {}, pass(function(winId, tabIds) { |
secondWindowId = winId; |
})); |
chrome.tabs.getAllInWindow(firstWindowId, pass(function(tabs) { |
@@ -43,7 +44,7 @@ chrome.test.runTests([ |
function checkMoveResults() { |
chrome.tabs.getAllInWindow(firstWindowId, pass(function(tabs) { |
assertEq(4, tabs.length); |
- assertEq("chrome://newtab/", tabs[0].url); |
+ assertEq(kChromeUINewTabURL, tabs[0].url); |
assertEq(pageUrl("a"), tabs[1].url); |
assertEq(pageUrl("e"), tabs[2].url); |
assertEq(pageUrl("c"), tabs[3].url); |
@@ -51,7 +52,7 @@ chrome.test.runTests([ |
chrome.tabs.getAllInWindow(secondWindowId, pass(function(tabs) { |
assertEq(3, tabs.length); |
assertEq(pageUrl("b"), tabs[0].url); |
- assertEq("chrome://newtab/", tabs[1].url); |
+ assertEq(kChromeUINewTabURL, tabs[1].url); |
assertEq(pageUrl("d"), tabs[2].url); |
})); |
})); |
@@ -59,53 +60,85 @@ chrome.test.runTests([ |
chrome.tabs.move(moveTabIds['b'], {"windowId": secondWindowId, "index": 0}, |
pass(function(tabB) { |
- chrome.test.assertEq(0, tabB.index); |
- chrome.tabs.move(moveTabIds['e'], {"index": 2}, |
- pass(function(tabE) { |
- chrome.test.assertEq(2, tabE.index); |
- chrome.tabs.move(moveTabIds['d'], {"windowId": secondWindowId, |
- "index": 2}, pass(function(tabD) { |
- chrome.test.assertEq(2, tabD.index); |
- checkMoveResults(); |
+ assertEq(0, tabB.index); |
+ chrome.tabs.move(moveTabIds['e'], {"index": 2}, |
+ pass(function(tabE) { |
+ assertEq(2, tabE.index); |
+ chrome.tabs.move(moveTabIds['d'], {"windowId": secondWindowId, |
+ "index": 2}, pass(function(tabD) { |
+ assertEq(2, tabD.index); |
+ checkMoveResults(); |
})); |
})); |
})); |
}, |
+ function moveWithoutIndex() { |
+ function checkMoveResults() { |
+ chrome.tabs.getAllInWindow(firstWindowId, pass(function(tabs) { |
+ assertEq(3, tabs.length); |
+ assertEq(kChromeUINewTabURL, tabs[0].url); |
+ assertEq(pageUrl("c"), tabs[1].url); |
+ assertEq(pageUrl("a"), tabs[2].url); |
+ |
+ chrome.tabs.getAllInWindow(secondWindowId, pass(function(tabs) { |
+ assertEq(4, tabs.length); |
+ assertEq(pageUrl("b"), tabs[0].url); |
+ assertEq(kChromeUINewTabURL, tabs[1].url); |
+ assertEq(pageUrl("d"), tabs[2].url); |
+ assertEq(pageUrl("e"), tabs[3].url); |
+ })); |
+ })); |
+ } |
+ |
+ // Not specifying any move properties moves a tab to the end of the window |
+ chrome.tabs.move(moveTabIds['a'], pass(function(tabA) { |
+ assertEq(3, tabA.index); |
+ // Specifying only a windowId moves a tab to the end of that window |
+ chrome.tabs.move(moveTabIds['e'], {"windowId": secondWindowId}, |
+ pass(function(tabE) { |
+ assertEq(3, tabE.index); |
+ checkMoveResults(); |
+ })); |
+ })); |
+ }, |
+ |
function remove() { |
chrome.tabs.remove(moveTabIds["d"], pass(function() { |
chrome.tabs.getAllInWindow(secondWindowId, |
pass(function(tabs) { |
- assertEq(2, tabs.length); |
+ assertEq(3, tabs.length); |
assertEq(pageUrl("b"), tabs[0].url); |
- assertEq("chrome://newtab/", tabs[1].url); |
+ assertEq(kChromeUINewTabURL, tabs[1].url); |
+ assertEq(pageUrl("e"), tabs[2].url); |
})); |
})); |
}, |
function moveMultipleTabs() { |
- chrome.tabs.move([moveTabIds['e'], moveTabIds['c']], |
- {windowId: secondWindowId, index: 1}, |
+ chrome.tabs.move([moveTabIds['c'], moveTabIds['a']], |
+ {"windowId": secondWindowId, "index": 1}, |
pass(function(tabsA) { |
assertEq(2, tabsA.length); |
assertEq(secondWindowId, tabsA[0].windowId); |
- assertEq(pageUrl('e'), tabsA[0].url); |
+ assertEq(pageUrl('c'), tabsA[0].url); |
assertEq(1, tabsA[0].index); |
assertEq(secondWindowId, tabsA[1].windowId); |
- assertEq(pageUrl('c'), tabsA[1].url); |
+ assertEq(pageUrl('a'), tabsA[1].url); |
assertEq(2, tabsA[1].index); |
- chrome.tabs.query({windowId: secondWindowId}, pass(function(tabsB) { |
- assertEq(4, tabsB.length); |
+ chrome.tabs.query({"windowId": secondWindowId}, pass(function(tabsB) { |
+ assertEq(5, tabsB.length); |
})); |
})); |
}, |
function removeMultipleTabs() { |
chrome.tabs.remove([moveTabIds['e'], moveTabIds['c']], pass(function() { |
- chrome.tabs.query({windowId: secondWindowId}, pass(function(tabs) { |
- assertEq(2, tabs.length); |
+ chrome.tabs.query({"windowId": secondWindowId}, pass(function(tabs) { |
+ assertEq(3, tabs.length); |
assertEq(pageUrl("b"), tabs[0].url); |
- assertEq("chrome://newtab/", tabs[1].url); |
+ assertEq(pageUrl("a"), tabs[1].url); |
+ assertEq(kChromeUINewTabURL, tabs[2].url); |
})); |
})); |
}, |
@@ -115,14 +148,14 @@ chrome.test.runTests([ |
var error_msg = "Invalid value for argument 2. Property 'index': " + |
"Value must not be less than 0."; |
try { |
- chrome.tabs.move(moveTabIds['b'], {index: -1}, function(tab) { |
+ chrome.tabs.move(moveTabIds['b'], {"index": -1}, function(tab) { |
chrome.test.fail("Moved a tab to an invalid index"); |
}); |
} catch (e) { |
assertEq(error_msg, e.message); |
} |
- chrome.tabs.move(moveTabIds['b'], {index: 10000}, pass(function(tabB) { |
- assertEq(1, tabB.index); |
+ chrome.tabs.move(moveTabIds['b'], {"index": 10000}, pass(function(tabB) { |
+ assertEq(2, tabB.index); |
})); |
}, |
@@ -130,9 +163,10 @@ chrome.test.runTests([ |
function moveToCurrentWindow() { |
chrome.windows.getCurrent(pass(function(win) { |
var targetWin = win.id == firstWindowId ? secondWindowId : firstWindowId; |
- chrome.tabs.query({windowId: targetWin}, pass(function(tabs) { |
+ chrome.tabs.query({"windowId": targetWin}, pass(function(tabs) { |
chrome.tabs.move(tabs[0].id, |
- {windowId: chrome.windows.WINDOW_ID_CURRENT, index:0}, |
+ {"windowId": chrome.windows.WINDOW_ID_CURRENT, |
+ "index": 0}, |
pass(function(tab) { |
assertEq(win.id, tab.windowId); |
})); |