Do not announce robot account token before account ID is available
[chromium-blink-merge.git] / chrome / test / data / extensions / api_test / tabs / basics / query.js
blob173a2751bf5f7ace65b87ac96df64f5fb605b905
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 var testWindowId;
6 var active_tabs = [];
7 var highlighted_tabs = [];
8 var window_tabs = [];
9 var pinned_tabs = [];
10 var active_and_window_tabs = [];
12 chrome.test.runTests([
13 function setup() {
14 var tabs = ['http://example.org/a.html', 'http://www.google.com/favicon.ico'];
15 chrome.windows.create({url: tabs}, pass(function(window) {
16 assertEq(2, window.tabs.length);
17 testWindowId = window.id;
18 chrome.tabs.create({
19 windowId: testWindowId,
20 url: 'about:blank',
21 pinned: true
22 }, pass(function(tab) {
23 assertTrue(tab.pinned);
24 assertEq(testWindowId, tab.windowId);
25 }));
26 }));
29 function queryAll() {
30 chrome.tabs.query({}, pass(function(tabs) {
31 assertEq(4, tabs.length);
32 for (var x = 0; x < tabs.length; x++) {
33 if (tabs[x].highlighted)
34 highlighted_tabs.push(tabs[x]);
35 if (tabs[x].active)
36 active_tabs.push(tabs[x]);
37 if (tabs[x].windowId == testWindowId) {
38 window_tabs.push(tabs[x]);
39 if (tabs[x].active)
40 active_and_window_tabs.push(tabs[x]);
42 if (tabs[x].pinned)
43 pinned_tabs.push(tabs[x]);
45 }));
48 function queryHighlighted() {
49 chrome.tabs.query({highlighted:true}, pass(function(tabs) {
50 assertEq(highlighted_tabs.length, tabs.length);
51 for (var x = 0; x < tabs.length; x++)
52 assertTrue(tabs[x].highlighted);
53 }));
54 chrome.tabs.query({highlighted:false}, pass(function(tabs) {
55 assertEq(4-highlighted_tabs.length, tabs.length);
56 for (var x = 0; x < tabs.length; x++)
57 assertFalse(tabs[x].highlighted);
58 }));
61 function queryActive() {
62 chrome.tabs.query({active: true}, pass(function(tabs) {
63 assertEq(active_tabs.length, tabs.length);
64 for (var x = 0; x < tabs.length; x++)
65 assertTrue(tabs[x].active);
66 }));
67 chrome.tabs.query({active: false}, pass(function(tabs) {
68 assertEq(4-active_tabs.length, tabs.length);
69 for (var x = 0; x < tabs.length; x++)
70 assertFalse(tabs[x].active);
71 }));
74 function queryWindowID() {
75 chrome.tabs.query({windowId: testWindowId}, pass(function(tabs) {
76 assertEq(window_tabs.length, tabs.length);
77 for (var x = 0; x < tabs.length; x++)
78 assertEq(testWindowId, tabs[x].windowId);
79 }));
82 function queryCurrentWindow() {
83 chrome.windows.getCurrent(function(win) {
84 chrome.tabs.query({windowId: chrome.windows.WINDOW_ID_CURRENT},
85 pass(function(tabs) {
86 // The current window should only contain this test page.
87 assertEq(1, tabs.length);
88 assertEq(win.id, tabs[0].windowId);
89 assertEq(location.href, tabs[0].url);
90 assertEq(location.href, tabs[0].title);
91 }));
92 });
95 function queryPinned() {
96 chrome.tabs.query({pinned: true}, pass(function(tabs) {
97 assertEq(pinned_tabs.length, tabs.length);
98 for (var x = 0; x < tabs.length; x++)
99 assertTrue(tabs[x].pinned);
100 }));
101 chrome.tabs.query({pinned: false}, pass(function(tabs) {
102 assertEq(4-pinned_tabs.length, tabs.length);
103 for (var x = 0; x < tabs.length; x++)
104 assertFalse(tabs[x].pinned);
105 }));
108 function queryActiveAndWindowID() {
109 chrome.tabs.query({
110 active: true,
111 windowId: testWindowId
112 }, pass(function(tabs) {
113 assertEq(active_and_window_tabs.length, tabs.length);
114 for (var x = 0; x < tabs.length; x++) {
115 assertTrue(tabs[x].active);
116 assertEq(testWindowId, tabs[x].windowId);
118 }));
121 function queryUrl() {
122 chrome.tabs.query({url: "http://*.example.org/*"}, pass(function(tabs) {
123 assertEq(1, tabs.length);
124 assertEq("http://example.org/a.html", tabs[0].url);
125 }));
128 function queryUrlAsArray() {
129 chrome.tabs.query({url: ["http://*.example.org/*"]}, pass(function(tabs) {
130 assertEq(1, tabs.length);
131 assertEq("http://example.org/a.html", tabs[0].url);
132 }));
135 function queryUrlAsArray2() {
136 chrome.tabs.query({url: ["http://*.example.org/*", "*://*.google.com/*"]}, pass(function(tabs) {
137 assertEq(2, tabs.length);
138 assertEq("http://example.org/a.html", tabs[0].url);
139 assertEq("http://www.google.com/favicon.ico", tabs[1].url);
140 }));
143 function queryStatus() {
144 chrome.tabs.query({status: "complete"}, pass(function(tabs) {
145 for (var x = 0; x < tabs.length; x++)
146 assertEq("complete", tabs[x].status);
147 }));
150 function queryTitle() {
151 chrome.tabs.query({title: "*query.html"}, pass(function(tabs) {
152 assertEq(1, tabs.length);
153 assertEq(chrome.extension.getURL("query.html"), tabs[0].title);
154 }));
157 function queryWindowType() {
158 chrome.tabs.query({windowType: "normal"}, pass(function(tabs) {
159 assertEq(4, tabs.length);
160 for (var x = 0; x < tabs.length; x++) {
161 chrome.windows.get(tabs[x].windowId, pass(function(win) {
162 assertTrue(win.type == "normal");
163 assertEq(false, win.alwaysOnTop);
164 }));
166 }));
167 chrome.windows.create({
168 url: 'about:blank',
169 type: 'popup'
170 }, pass(function(win) {
171 chrome.windows.create({
172 url: 'about:blank',
173 type: 'popup'
174 }, pass(function(win) {
175 chrome.tabs.query({
176 windowId: win.id,
177 windowType: 'popup'
178 }, pass(function(tabs) {
179 assertEq(1, tabs.length);
180 }));
181 chrome.tabs.query({windowType: 'popup'}, pass(function(tabs) {
182 assertEq(2, tabs.length);
183 }));
184 chrome.tabs.query({
185 windowType: 'popup',
186 url: 'about:*'
187 }, pass(function(tabs) {
188 assertEq(2, tabs.length);
189 }));
190 }));
191 }));
194 function queryIndex() {
195 chrome.tabs.query({index: 0}, pass(function(tabs) {
196 // Each of the 4 windows should have a tab at index 0.
197 assertEq(4, tabs.length);
198 for (var i = 0; i < tabs.length; i++)
199 assertEq(0, tabs[0].index);
200 }));
203 function queryIncognito() {
204 chrome.windows.create(
205 {url: ['http://a.com', 'http://a.com'], incognito: true},
206 pass(function(win) {
207 assertEq(null, win);
208 chrome.tabs.query({url: 'http://a.com/'}, pass(function(tabs) {
209 assertEq(0, tabs.length);
210 }));
211 }));