Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(686)

Side by Side Diff: chrome/test/data/extensions/api_test/get_views/test.js

Issue 2105033003: tabId support to chrome.extensions.getViews() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Tests added Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // API test for chrome.extension.getViews. 5 // API test for chrome.extension.getViews.
6 // browser_tests.exe --gtest_filter=ExtensionApiTest.GetViews 6 // browser_tests.exe --gtest_filter=ExtensionApiTest.GetViews
7 7
8 const assertEq = chrome.test.assertEq; 8 const assertEq = chrome.test.assertEq;
9 const assertTrue = chrome.test.assertTrue; 9 const assertTrue = chrome.test.assertTrue;
10 10
11 // We need to remember the popupWindowId to be able to find it later. 11 // We need to remember the popupWindowId to be able to find it later.
12 var popupWindowId = 0; 12 var popupWindowId = 0;
13 13
14 // Updated and used later to check getViews() tabId tag for options tab
Devlin 2016/07/11 17:23:45 We're sticklers for grammar in comments, so there
catmullings 2016/07/12 18:13:47 Done.
15 var optionsTabId = 0;
16
14 // This function is called by the popup during the test run. 17 // This function is called by the popup during the test run.
15 function popupCallback() { 18 function popupCallback() {
16 // We have now added an popup so the total count goes up one. 19 // We have now added an popup so the total count goes up one.
17 assertEq(2, chrome.extension.getViews().length); 20 assertEq(2, chrome.extension.getViews().length);
18 assertEq(1, chrome.extension.getViews({"windowId": popupWindowId}).length); 21 assertEq(1, chrome.extension.getViews({"windowId": popupWindowId}).length);
19 22 chrome.tabs.create({"url": chrome.extension.getURL("options.html")},
20 chrome.tabs.create({"url": chrome.extension.getURL("options.html")}); 23 function(tab) {
24 // Check if tab returned is defined
Devlin 2016/07/11 17:23:45 indentation for callback functions is always kind
Devlin 2016/07/11 17:23:45 this comment just describes what the code is doing
catmullings 2016/07/12 18:13:47 Done.
catmullings 2016/07/12 18:13:48 Done.
25 optionsTabId = tab.id;
26 });
21 } 27 }
22 28
23 function optionsPageCallback() { 29 function optionsPageCallback() {
24 assertEq(3, chrome.extension.getViews().length); 30 assertEq(3, chrome.extension.getViews().length);
25 assertEq(1, chrome.extension.getViews({"windowId": popupWindowId}).length); 31 assertEq(1, chrome.extension.getViews({"windowId": popupWindowId}).length);
26 assertEq(2, chrome.extension.getViews( 32 assertEq(2, chrome.extension.getViews(
27 {"type": "tab", "windowId": window.id}).length); 33 {"type": "tab", "windowId": window.id}).length);
34
35 chrome.tabs.query({"windowId": window.id}, function(tabs) {
Devlin 2016/07/11 17:23:45 I know you're just following the style from the re
catmullings 2016/07/12 18:13:47 Done.
catmullings 2016/07/12 18:13:48 I'll go ahead and update the rest of the test with
36 // Assert 3 to account for new tab page, web popup, & new tab options.html
Devlin 2016/07/11 17:23:45 2-space indent here.
catmullings 2016/07/12 18:13:48 Done.
37 assertEq(3, tabs.length);
38
39 // Check that only 2 tabs belong to the extension
Devlin 2016/07/11 17:23:45 Here, use a comment to describe why, not what. Th
catmullings 2016/07/12 18:13:47 Done.
Devlin 2016/07/12 18:35:57 Was this actually done?
40 assertEq(2, chrome.extension.getViews({"type":"tab"}).length);
41
42 for (var i = 0; i < tabs.length; i++) {
43 if (tabs[i].windowId == popupWindowId) {
44 assertEq(1, chrome.extension.getViews({"tabId": tabs[i].id}).length);
45 // Test tabId tag with other parameters
46 assertEq(1, chrome.extension.getViews({"windowId": popupWindowId,
47 "tabId": tabs[i].id}).length);
48 assertEq(1, chrome.extension.getViews({"type": "tab",
49 "tabId": tabs[i].id}).length);
50 } else if (tabs[i].id == optionsTabId) {
51 assertEq(1, chrome.extension.getViews({"tabId": tabs[i].id}).length);
52 }
53 }
54
55 });
56
28 chrome.test.notifyPass(); 57 chrome.test.notifyPass();
29 } 58 }
30 59
31 var tests = [ 60 var tests = [
32 function getViews() { 61 function getViews() {
Devlin 2016/07/11 17:23:45 this indentation was probably more correct before.
33 assertTrue(typeof(chrome.extension.getBackgroundPage()) != "undefined"); 62 //printf("Other fn");
Devlin 2016/07/11 17:23:45 Don't forget to remove debugging code.
catmullings 2016/07/12 18:13:47 Done.
Devlin 2016/07/12 18:35:57 Ditto
34 assertEq(1, chrome.extension.getViews().length); 63 assertTrue(typeof(chrome.extension.getBackgroundPage()) != "undefined");
35 assertEq(0, chrome.extension.getViews({"type": "tab"}).length); 64 assertEq(1, chrome.extension.getViews().length);
36 assertEq(0, chrome.extension.getViews({"type": "popup"}).length); 65 assertEq(0, chrome.extension.getViews({"type": "tab"}).length);
66 assertEq(0, chrome.extension.getViews({"type": "popup"}).length);
37 67
38 chrome.windows.getAll({populate: true}, function(windows) { 68 chrome.windows.getAll({populate: true}, function(windows) {
39 assertEq(1, windows.length); 69 assertEq(1, windows.length);
40 70
41 // Create a popup window. 71 // Create a popup window.
72
73 // TODO (catmullings): Fix potential race condition when/if
74 // popupCallback() is called before popupWindowId is set below
42 chrome.windows.create({"url": chrome.extension.getURL("popup.html"), 75 chrome.windows.create({"url": chrome.extension.getURL("popup.html"),
43 "type": "popup"}, function(window) { 76 "type": "popup"}, function(window) {
Devlin 2016/07/11 17:23:45 here, too, indentation was probably right before.
catmullings 2016/07/12 18:13:47 Done.
Devlin 2016/07/12 18:35:57 Ditto
44 assertTrue(window.id > 0); 77 assertTrue(window.id > 0);
45 popupWindowId = window.id; 78 popupWindowId = window.id;
46 // The popup will call back to us through popupCallback (above). 79 // The popup will call back to us through popupCallback (above).
80 });
47 }); 81 });
48 }); 82 }
49 }
50 ]; 83 ];
51 84
52 chrome.test.runTests(tests); 85 chrome.test.runTests(tests);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698