Index: chrome/test/data/extensions/api_test/tabs/basics/pinned.html |
=================================================================== |
--- chrome/test/data/extensions/api_test/tabs/basics/pinned.html (revision 112170) |
+++ chrome/test/data/extensions/api_test/tabs/basics/pinned.html (working copy) |
@@ -1,85 +1,7 @@ |
+<!-- |
+ * Copyright (c) 2011 The Chromium Authors. All rights reserved. Use of this |
+ * source code is governed by a BSD-style license that can be found in the |
+ * LICENSE file. |
+--> |
<script src="tabs_util.js"></script> |
- |
-<script> |
-var firstWindowId; |
- |
-chrome.test.runTests([ |
- function setupWindow() { |
- createWindow(["about:blank", "chrome://newtab/", pageUrl("a")], {}, |
- pass(function(winId, tabIds) { |
- firstWindowId = winId; |
- })); |
- }, |
- |
- function createPinned() { |
- var winOptions = {"windowId": firstWindowId, "pinned": true}; |
- var onUpdatedCompleted = chrome.test.listenForever( |
- chrome.tabs.onUpdated, |
- function(tabId, changeInfo, tab) { |
- if ('pinned' in changeInfo) { |
- assertEq(false, changeInfo.pinned); |
- assertEq(false, tab.pinned); |
- onUpdatedCompleted(); |
- } |
- } |
- ); |
- chrome.tabs.create(winOptions, pass(function(tab) { |
- assertEq(true, tab.pinned); |
- chrome.tabs.update(tab.id, {"pinned":false}, pass(function() { |
- // Leave a clean slate for the next test. |
- chrome.tabs.remove(tab.id); |
- })); |
- })); |
- }, |
- |
- function updatePinned() { |
- // A helper function that (un)pins a tab and verifies that both the callback |
- // and the chrome.tabs.onUpdated event listeners are called. |
- var pinTab = function(id, pinnedState, callback) { |
- var onUpdatedCompleted = chrome.test.listenForever( |
- chrome.tabs.onUpdated, |
- function(tabId, changeInfo, tab) { |
- if ('pinned' in changeInfo) { |
- assertEq(tabId, id); |
- assertEq(pinnedState, tab.pinned); |
- onUpdatedCompleted(); |
- if (callback) |
- callback(tab); |
- } |
- } |
- ); |
- chrome.tabs.update(id, { "pinned": pinnedState }, pass(function(tab) { |
- assertEq(pinnedState, tab.pinned); |
- })); |
- }; |
- |
- // We pin and unpin these tabs because the TabStripModelObserver used to |
- // have multiple notification code paths depending on the tab moves as a |
- // result of being pinned or unpinned. |
- // This works as follows: |
- // 1. Pin first tab (does not move, pinning) |
- // 2. Pin 3rd tab (moves to 2nd tab, pinning) |
- // 3. Unpin 1st tab (moves to 2nd tab, unpinning) |
- // 4. Unpin (new) 1st tab (does not move. unpinning) |
- chrome.tabs.getAllInWindow(firstWindowId, |
- pass(function(tabs) { |
- assertEq(tabs.length, 3); |
- for (var i = 0; i < tabs.length; i++) |
- assertEq(false, tabs[i].pinned); |
- |
- pinTab(tabs[0].id, true, function(tab) { |
- assertEq(tabs[0].index, tab.index); |
- pinTab(tabs[2].id, true, function(tab) { |
- assertEq(1, tab.index); |
- pinTab(tabs[0].id, false, function(tab) { |
- assertEq(1, tab.index); |
- pinTab(tabs[2].id, false, function (tab) { |
- assertEq(0, tab.index); |
- }); |
- }); |
- }); |
- }); |
- })); |
- } |
-]); |
-</script> |
+<script src="pinned.js"></script> |