| Index: chrome/test/data/extensions/api_test/tabs/basics/query.js
|
| ===================================================================
|
| --- chrome/test/data/extensions/api_test/tabs/basics/query.js (revision 0)
|
| +++ chrome/test/data/extensions/api_test/tabs/basics/query.js (revision 0)
|
| @@ -0,0 +1,165 @@
|
| +// 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.
|
| +
|
| +var testWindowId;
|
| +var active_tabs = [];
|
| +var highlighted_tabs = [];
|
| +var window_tabs = [];
|
| +var pinned_tabs = [];
|
| +var active_and_window_tabs = [];
|
| +
|
| +chrome.test.runTests([
|
| + function setup() {
|
| + var tabs = ['http://example.org/a.html', 'http://google.com'];
|
| + chrome.windows.create({url: tabs}, pass(function(window) {
|
| + assertEq(2, window.tabs.length);
|
| + testWindowId = window.id;
|
| + chrome.tabs.create({
|
| + windowId: testWindowId,
|
| + url: 'about:blank',
|
| + pinned: true
|
| + }, pass(function(tab) {
|
| + assertTrue(tab.pinned);
|
| + assertEq(testWindowId, tab.windowId);
|
| + }));
|
| + }));
|
| + },
|
| +
|
| + function queryAll() {
|
| + chrome.tabs.query({}, pass(function(tabs) {
|
| + assertEq(4, tabs.length);
|
| + for (var x = 0; x < tabs.length; x++) {
|
| + if (tabs[x].highlighted)
|
| + highlighted_tabs.push(tabs[x]);
|
| + if (tabs[x].active)
|
| + active_tabs.push(tabs[x]);
|
| + if (tabs[x].windowId == testWindowId) {
|
| + window_tabs.push(tabs[x]);
|
| + if (tabs[x].active)
|
| + active_and_window_tabs.push(tabs[x]);
|
| + }
|
| + if (tabs[x].pinned)
|
| + pinned_tabs.push(tabs[x]);
|
| + }
|
| + }));
|
| + },
|
| +
|
| + function queryHighlighted() {
|
| + chrome.tabs.query({highlighted:true}, pass(function(tabs) {
|
| + assertEq(highlighted_tabs.length, tabs.length);
|
| + for (var x = 0; x < tabs.length; x++)
|
| + assertTrue(tabs[x].highlighted);
|
| + }));
|
| + chrome.tabs.query({highlighted:false}, pass(function(tabs) {
|
| + assertEq(4-highlighted_tabs.length, tabs.length);
|
| + for (var x = 0; x < tabs.length; x++)
|
| + assertFalse(tabs[x].highlighted);
|
| + }));
|
| + },
|
| +
|
| + function queryActive() {
|
| + chrome.tabs.query({active: true}, pass(function(tabs) {
|
| + assertEq(active_tabs.length, tabs.length);
|
| + for (var x = 0; x < tabs.length; x++)
|
| + assertTrue(tabs[x].active);
|
| + }));
|
| + chrome.tabs.query({active: false}, pass(function(tabs) {
|
| + assertEq(4-active_tabs.length, tabs.length);
|
| + for (var x = 0; x < tabs.length; x++)
|
| + assertFalse(tabs[x].active);
|
| + }));
|
| + },
|
| +
|
| + function queryWindowID() {
|
| + chrome.tabs.query({windowId: testWindowId}, pass(function(tabs) {
|
| + assertEq(window_tabs.length, tabs.length);
|
| + for (var x = 0; x < tabs.length; x++)
|
| + assertEq(testWindowId, tabs[x].windowId);
|
| + }));
|
| + },
|
| +
|
| + function queryPinned() {
|
| + chrome.tabs.query({pinned: true}, pass(function(tabs) {
|
| + assertEq(pinned_tabs.length, tabs.length);
|
| + for (var x = 0; x < tabs.length; x++)
|
| + assertTrue(tabs[x].pinned);
|
| + }));
|
| + chrome.tabs.query({pinned: false}, pass(function(tabs) {
|
| + assertEq(4-pinned_tabs.length, tabs.length);
|
| + for (var x = 0; x < tabs.length; x++)
|
| + assertFalse(tabs[x].pinned);
|
| + }));
|
| + },
|
| +
|
| + function queryActiveAndWindowID() {
|
| + chrome.tabs.query({
|
| + active: true,
|
| + windowId: testWindowId
|
| + }, pass(function(tabs) {
|
| + assertEq(active_and_window_tabs.length, tabs.length);
|
| + for (var x = 0; x < tabs.length; x++) {
|
| + assertTrue(tabs[x].active);
|
| + assertEq(testWindowId, tabs[x].windowId);
|
| + }
|
| + }));
|
| + },
|
| +
|
| + function queryUrl() {
|
| + chrome.tabs.query({url: "http://*.example.org/*"}, pass(function(tabs) {
|
| + assertEq(1, tabs.length);
|
| + assertEq("http://example.org/a.html", tabs[0].url);
|
| + }));
|
| + },
|
| +
|
| + function queryStatus() {
|
| + chrome.tabs.query({status: "complete"}, pass(function(tabs) {
|
| + for (var x = 0; x < tabs.length; x++)
|
| + assertEq("complete", tabs[x].status);
|
| + }));
|
| + },
|
| +
|
| + function queryTitle() {
|
| + chrome.tabs.query({title: "*query.html"}, pass(function(tabs) {
|
| + assertEq(1, tabs.length);
|
| + assertEq(chrome.extension.getURL("query.html"), tabs[0].title);
|
| + }));
|
| + },
|
| +
|
| + function queryWindowType() {
|
| + chrome.tabs.query({windowType: "normal"}, pass(function(tabs) {
|
| + assertEq(4, tabs.length);
|
| + for (var x = 0; x < tabs.length; x++) {
|
| + chrome.windows.get(tabs[x].windowId, pass(function(win) {
|
| + assertTrue(win.type == "normal");
|
| + }));
|
| + }
|
| + }));
|
| + chrome.windows.create({
|
| + url: 'about:blank',
|
| + type: 'popup'
|
| + }, pass(function(win) {
|
| + chrome.windows.create({
|
| + url: 'about:blank',
|
| + type: 'popup'
|
| + }, pass(function(win) {
|
| + chrome.tabs.query({
|
| + windowId: win.id,
|
| + windowType: 'popup'
|
| + }, pass(function(tabs) {
|
| + assertEq(1, tabs.length);
|
| + }));
|
| + chrome.tabs.query({windowType: 'popup'}, pass(function(tabs) {
|
| + assertEq(2, tabs.length);
|
| + }));
|
| + chrome.tabs.query({
|
| + windowType: 'popup',
|
| + url: 'about:*'
|
| + }, pass(function(tabs) {
|
| + assertEq(2, tabs.length);
|
| + }));
|
| + }));
|
| + }));
|
| + }
|
| +]);
|
| +
|
|
|