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

Side by Side Diff: chrome/browser/extensions/api/tabs/tabs_test.cc

Issue 569493003: Remove CreateEmptyExtension from extension_function_test_utils (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 3 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 5
6 #include <string> 6 #include <string>
7 7
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/prefs/pref_service.h" 10 #include "base/prefs/pref_service.h"
11 #include "base/strings/string_util.h" 11 #include "base/strings/string_util.h"
12 #include "base/strings/stringprintf.h" 12 #include "base/strings/stringprintf.h"
13 #include "base/values.h" 13 #include "base/values.h"
14 #include "chrome/browser/extensions/api/tabs/tabs_api.h" 14 #include "chrome/browser/extensions/api/tabs/tabs_api.h"
15 #include "chrome/browser/extensions/api/tabs/tabs_constants.h" 15 #include "chrome/browser/extensions/api/tabs/tabs_constants.h"
16 #include "chrome/browser/extensions/extension_function_test_utils.h" 16 #include "chrome/browser/extensions/extension_function_test_utils.h"
17 #include "chrome/browser/extensions/extension_tab_util.h" 17 #include "chrome/browser/extensions/extension_tab_util.h"
18 #include "chrome/browser/prefs/incognito_mode_prefs.h" 18 #include "chrome/browser/prefs/incognito_mode_prefs.h"
19 #include "chrome/browser/profiles/profile.h" 19 #include "chrome/browser/profiles/profile.h"
20 #include "chrome/browser/ui/browser.h" 20 #include "chrome/browser/ui/browser.h"
21 #include "chrome/browser/ui/browser_commands.h" 21 #include "chrome/browser/ui/browser_commands.h"
22 #include "chrome/browser/ui/browser_window.h" 22 #include "chrome/browser/ui/browser_window.h"
23 #include "chrome/browser/ui/tabs/tab_strip_model.h" 23 #include "chrome/browser/ui/tabs/tab_strip_model.h"
24 #include "chrome/test/base/in_process_browser_test.h" 24 #include "chrome/test/base/in_process_browser_test.h"
25 #include "chrome/test/base/ui_test_utils.h" 25 #include "chrome/test/base/ui_test_utils.h"
26 #include "content/public/common/page_zoom.h" 26 #include "content/public/common/page_zoom.h"
27 #include "content/public/common/url_constants.h" 27 #include "content/public/common/url_constants.h"
28 #include "extensions/common/manifest_constants.h" 28 #include "extensions/common/manifest_constants.h"
29 #include "extensions/common/test_util.h"
29 #include "ui/gfx/rect.h" 30 #include "ui/gfx/rect.h"
30 31
31 namespace extensions { 32 namespace extensions {
32 33
33 namespace keys = tabs_constants; 34 namespace keys = tabs_constants;
34 namespace utils = extension_function_test_utils; 35 namespace utils = extension_function_test_utils;
35 36
36 namespace { 37 namespace {
37 38
38 class ExtensionTabsTest : public InProcessBrowserTest { 39 class ExtensionTabsTest : public InProcessBrowserTest {
39 }; 40 };
40 41
41 } 42 }
42 43
43 IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, GetWindow) { 44 IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, GetWindow) {
44 int window_id = ExtensionTabUtil::GetWindowId(browser()); 45 int window_id = ExtensionTabUtil::GetWindowId(browser());
45 46
46 // Invalid window ID error. 47 // Invalid window ID error.
47 scoped_refptr<WindowsGetFunction> function = new WindowsGetFunction(); 48 scoped_refptr<WindowsGetFunction> function = new WindowsGetFunction();
48 scoped_refptr<Extension> extension(utils::CreateEmptyExtension()); 49 scoped_refptr<Extension> extension(test_util::CreateEmptyExtension());
49 function->set_extension(extension.get()); 50 function->set_extension(extension.get());
50 EXPECT_TRUE(MatchPattern( 51 EXPECT_TRUE(MatchPattern(
51 utils::RunFunctionAndReturnError( 52 utils::RunFunctionAndReturnError(
52 function.get(), 53 function.get(),
53 base::StringPrintf("[%u]", window_id + 1), 54 base::StringPrintf("[%u]", window_id + 1),
54 browser()), 55 browser()),
55 keys::kWindowNotFoundError)); 56 keys::kWindowNotFoundError));
56 57
57 // Basic window details. 58 // Basic window details.
58 gfx::Rect bounds; 59 gfx::Rect bounds;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 } 141 }
141 142
142 IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, GetCurrentWindow) { 143 IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, GetCurrentWindow) {
143 int window_id = ExtensionTabUtil::GetWindowId(browser()); 144 int window_id = ExtensionTabUtil::GetWindowId(browser());
144 Browser* new_browser = CreateBrowser(browser()->profile()); 145 Browser* new_browser = CreateBrowser(browser()->profile());
145 int new_id = ExtensionTabUtil::GetWindowId(new_browser); 146 int new_id = ExtensionTabUtil::GetWindowId(new_browser);
146 147
147 // Get the current window using new_browser. 148 // Get the current window using new_browser.
148 scoped_refptr<WindowsGetCurrentFunction> function = 149 scoped_refptr<WindowsGetCurrentFunction> function =
149 new WindowsGetCurrentFunction(); 150 new WindowsGetCurrentFunction();
150 scoped_refptr<Extension> extension(utils::CreateEmptyExtension()); 151 scoped_refptr<Extension> extension(test_util::CreateEmptyExtension());
151 function->set_extension(extension.get()); 152 function->set_extension(extension.get());
152 scoped_ptr<base::DictionaryValue> result(utils::ToDictionary( 153 scoped_ptr<base::DictionaryValue> result(utils::ToDictionary(
153 utils::RunFunctionAndReturnSingleResult(function.get(), 154 utils::RunFunctionAndReturnSingleResult(function.get(),
154 "[]", 155 "[]",
155 new_browser))); 156 new_browser)));
156 157
157 // The id should match the window id of the browser instance that was passed 158 // The id should match the window id of the browser instance that was passed
158 // to RunFunctionAndReturnSingleResult. 159 // to RunFunctionAndReturnSingleResult.
159 EXPECT_EQ(new_id, utils::GetInteger(result.get(), "id")); 160 EXPECT_EQ(new_id, utils::GetInteger(result.get(), "id"));
160 base::ListValue* tabs = NULL; 161 base::ListValue* tabs = NULL;
(...skipping 19 matching lines...) Expand all
180 std::set<int> window_ids; 181 std::set<int> window_ids;
181 std::set<int> result_ids; 182 std::set<int> result_ids;
182 window_ids.insert(ExtensionTabUtil::GetWindowId(browser())); 183 window_ids.insert(ExtensionTabUtil::GetWindowId(browser()));
183 184
184 for (size_t i = 0; i < NUM_WINDOWS - 1; ++i) { 185 for (size_t i = 0; i < NUM_WINDOWS - 1; ++i) {
185 Browser* new_browser = CreateBrowser(browser()->profile()); 186 Browser* new_browser = CreateBrowser(browser()->profile());
186 window_ids.insert(ExtensionTabUtil::GetWindowId(new_browser)); 187 window_ids.insert(ExtensionTabUtil::GetWindowId(new_browser));
187 } 188 }
188 189
189 scoped_refptr<WindowsGetAllFunction> function = new WindowsGetAllFunction(); 190 scoped_refptr<WindowsGetAllFunction> function = new WindowsGetAllFunction();
190 scoped_refptr<Extension> extension(utils::CreateEmptyExtension()); 191 scoped_refptr<Extension> extension(test_util::CreateEmptyExtension());
191 function->set_extension(extension.get()); 192 function->set_extension(extension.get());
192 scoped_ptr<base::ListValue> result(utils::ToList( 193 scoped_ptr<base::ListValue> result(utils::ToList(
193 utils::RunFunctionAndReturnSingleResult(function.get(), 194 utils::RunFunctionAndReturnSingleResult(function.get(),
194 "[]", 195 "[]",
195 browser()))); 196 browser())));
196 197
197 base::ListValue* windows = result.get(); 198 base::ListValue* windows = result.get();
198 EXPECT_EQ(NUM_WINDOWS, windows->GetSize()); 199 EXPECT_EQ(NUM_WINDOWS, windows->GetSize());
199 for (size_t i = 0; i < NUM_WINDOWS; ++i) { 200 for (size_t i = 0; i < NUM_WINDOWS; ++i) {
200 base::DictionaryValue* result_window = NULL; 201 base::DictionaryValue* result_window = NULL;
(...skipping 28 matching lines...) Expand all
229 } 230 }
230 // The returned ids should contain all the current browser instance ids. 231 // The returned ids should contain all the current browser instance ids.
231 EXPECT_EQ(window_ids, result_ids); 232 EXPECT_EQ(window_ids, result_ids);
232 } 233 }
233 234
234 IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, UpdateNoPermissions) { 235 IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, UpdateNoPermissions) {
235 // The test empty extension has no permissions, therefore it should not get 236 // The test empty extension has no permissions, therefore it should not get
236 // tab data in the function result. 237 // tab data in the function result.
237 scoped_refptr<TabsUpdateFunction> update_tab_function( 238 scoped_refptr<TabsUpdateFunction> update_tab_function(
238 new TabsUpdateFunction()); 239 new TabsUpdateFunction());
239 scoped_refptr<Extension> empty_extension(utils::CreateEmptyExtension()); 240 scoped_refptr<Extension> empty_extension(test_util::CreateEmptyExtension());
240 update_tab_function->set_extension(empty_extension.get()); 241 update_tab_function->set_extension(empty_extension.get());
241 // Without a callback the function will not generate a result. 242 // Without a callback the function will not generate a result.
242 update_tab_function->set_has_callback(true); 243 update_tab_function->set_has_callback(true);
243 244
244 scoped_ptr<base::DictionaryValue> result(utils::ToDictionary( 245 scoped_ptr<base::DictionaryValue> result(utils::ToDictionary(
245 utils::RunFunctionAndReturnSingleResult( 246 utils::RunFunctionAndReturnSingleResult(
246 update_tab_function.get(), 247 update_tab_function.get(),
247 "[null, {\"url\": \"about:blank\", \"pinned\": true}]", 248 "[null, {\"url\": \"about:blank\", \"pinned\": true}]",
248 browser()))); 249 browser())));
249 // The url is stripped since the extension does not have tab permissions. 250 // The url is stripped since the extension does not have tab permissions.
250 EXPECT_FALSE(result->HasKey("url")); 251 EXPECT_FALSE(result->HasKey("url"));
251 EXPECT_TRUE(utils::GetBoolean(result.get(), "pinned")); 252 EXPECT_TRUE(utils::GetBoolean(result.get(), "pinned"));
252 } 253 }
253 254
254 IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, 255 IN_PROC_BROWSER_TEST_F(ExtensionTabsTest,
255 DefaultToIncognitoWhenItIsForced) { 256 DefaultToIncognitoWhenItIsForced) {
256 static const char kArgsWithoutExplicitIncognitoParam[] = 257 static const char kArgsWithoutExplicitIncognitoParam[] =
257 "[{\"url\": \"about:blank\"}]"; 258 "[{\"url\": \"about:blank\"}]";
258 // Force Incognito mode. 259 // Force Incognito mode.
259 IncognitoModePrefs::SetAvailability(browser()->profile()->GetPrefs(), 260 IncognitoModePrefs::SetAvailability(browser()->profile()->GetPrefs(),
260 IncognitoModePrefs::FORCED); 261 IncognitoModePrefs::FORCED);
261 // Run without an explicit "incognito" param. 262 // Run without an explicit "incognito" param.
262 scoped_refptr<WindowsCreateFunction> function(new WindowsCreateFunction()); 263 scoped_refptr<WindowsCreateFunction> function(new WindowsCreateFunction());
263 scoped_refptr<Extension> extension(utils::CreateEmptyExtension()); 264 scoped_refptr<Extension> extension(test_util::CreateEmptyExtension());
264 function->set_extension(extension.get()); 265 function->set_extension(extension.get());
265 scoped_ptr<base::DictionaryValue> result(utils::ToDictionary( 266 scoped_ptr<base::DictionaryValue> result(utils::ToDictionary(
266 utils::RunFunctionAndReturnSingleResult( 267 utils::RunFunctionAndReturnSingleResult(
267 function.get(), 268 function.get(),
268 kArgsWithoutExplicitIncognitoParam, 269 kArgsWithoutExplicitIncognitoParam,
269 browser(), 270 browser(),
270 utils::INCLUDE_INCOGNITO))); 271 utils::INCLUDE_INCOGNITO)));
271 272
272 // Make sure it is a new(different) window. 273 // Make sure it is a new(different) window.
273 EXPECT_NE(ExtensionTabUtil::GetWindowId(browser()), 274 EXPECT_NE(ExtensionTabUtil::GetWindowId(browser()),
(...skipping 20 matching lines...) Expand all
294 } 295 }
295 296
296 IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, 297 IN_PROC_BROWSER_TEST_F(ExtensionTabsTest,
297 DefaultToIncognitoWhenItIsForcedAndNoArgs) { 298 DefaultToIncognitoWhenItIsForcedAndNoArgs) {
298 static const char kEmptyArgs[] = "[]"; 299 static const char kEmptyArgs[] = "[]";
299 // Force Incognito mode. 300 // Force Incognito mode.
300 IncognitoModePrefs::SetAvailability(browser()->profile()->GetPrefs(), 301 IncognitoModePrefs::SetAvailability(browser()->profile()->GetPrefs(),
301 IncognitoModePrefs::FORCED); 302 IncognitoModePrefs::FORCED);
302 // Run without an explicit "incognito" param. 303 // Run without an explicit "incognito" param.
303 scoped_refptr<WindowsCreateFunction> function = new WindowsCreateFunction(); 304 scoped_refptr<WindowsCreateFunction> function = new WindowsCreateFunction();
304 scoped_refptr<Extension> extension(utils::CreateEmptyExtension()); 305 scoped_refptr<Extension> extension(test_util::CreateEmptyExtension());
305 function->set_extension(extension.get()); 306 function->set_extension(extension.get());
306 scoped_ptr<base::DictionaryValue> result(utils::ToDictionary( 307 scoped_ptr<base::DictionaryValue> result(utils::ToDictionary(
307 utils::RunFunctionAndReturnSingleResult(function.get(), 308 utils::RunFunctionAndReturnSingleResult(function.get(),
308 kEmptyArgs, 309 kEmptyArgs,
309 browser(), 310 browser(),
310 utils::INCLUDE_INCOGNITO))); 311 utils::INCLUDE_INCOGNITO)));
311 312
312 // Make sure it is a new(different) window. 313 // Make sure it is a new(different) window.
313 EXPECT_NE(ExtensionTabUtil::GetWindowId(browser()), 314 EXPECT_NE(ExtensionTabUtil::GetWindowId(browser()),
314 utils::GetInteger(result.get(), "id")); 315 utils::GetInteger(result.get(), "id"));
(...skipping 20 matching lines...) Expand all
335 IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, 336 IN_PROC_BROWSER_TEST_F(ExtensionTabsTest,
336 DontCreateNormalWindowWhenIncognitoForced) { 337 DontCreateNormalWindowWhenIncognitoForced) {
337 static const char kArgsWithExplicitIncognitoParam[] = 338 static const char kArgsWithExplicitIncognitoParam[] =
338 "[{\"url\": \"about:blank\", \"incognito\": false }]"; 339 "[{\"url\": \"about:blank\", \"incognito\": false }]";
339 // Force Incognito mode. 340 // Force Incognito mode.
340 IncognitoModePrefs::SetAvailability(browser()->profile()->GetPrefs(), 341 IncognitoModePrefs::SetAvailability(browser()->profile()->GetPrefs(),
341 IncognitoModePrefs::FORCED); 342 IncognitoModePrefs::FORCED);
342 343
343 // Run with an explicit "incognito" param. 344 // Run with an explicit "incognito" param.
344 scoped_refptr<WindowsCreateFunction> function = new WindowsCreateFunction(); 345 scoped_refptr<WindowsCreateFunction> function = new WindowsCreateFunction();
345 scoped_refptr<Extension> extension(utils::CreateEmptyExtension()); 346 scoped_refptr<Extension> extension(test_util::CreateEmptyExtension());
346 function->set_extension(extension.get()); 347 function->set_extension(extension.get());
347 EXPECT_TRUE(MatchPattern( 348 EXPECT_TRUE(MatchPattern(
348 utils::RunFunctionAndReturnError(function.get(), 349 utils::RunFunctionAndReturnError(function.get(),
349 kArgsWithExplicitIncognitoParam, 350 kArgsWithExplicitIncognitoParam,
350 browser()), 351 browser()),
351 keys::kIncognitoModeIsForced)); 352 keys::kIncognitoModeIsForced));
352 353
353 // Now try opening a normal window from incognito window. 354 // Now try opening a normal window from incognito window.
354 Browser* incognito_browser = CreateIncognitoBrowser(); 355 Browser* incognito_browser = CreateIncognitoBrowser();
355 // Run with an explicit "incognito" param. 356 // Run with an explicit "incognito" param.
(...skipping 10 matching lines...) Expand all
366 DontCreateIncognitoWindowWhenIncognitoDisabled) { 367 DontCreateIncognitoWindowWhenIncognitoDisabled) {
367 static const char kArgs[] = 368 static const char kArgs[] =
368 "[{\"url\": \"about:blank\", \"incognito\": true }]"; 369 "[{\"url\": \"about:blank\", \"incognito\": true }]";
369 370
370 Browser* incognito_browser = CreateIncognitoBrowser(); 371 Browser* incognito_browser = CreateIncognitoBrowser();
371 // Disable Incognito mode. 372 // Disable Incognito mode.
372 IncognitoModePrefs::SetAvailability(browser()->profile()->GetPrefs(), 373 IncognitoModePrefs::SetAvailability(browser()->profile()->GetPrefs(),
373 IncognitoModePrefs::DISABLED); 374 IncognitoModePrefs::DISABLED);
374 // Run in normal window. 375 // Run in normal window.
375 scoped_refptr<WindowsCreateFunction> function = new WindowsCreateFunction(); 376 scoped_refptr<WindowsCreateFunction> function = new WindowsCreateFunction();
376 scoped_refptr<Extension> extension(utils::CreateEmptyExtension()); 377 scoped_refptr<Extension> extension(test_util::CreateEmptyExtension());
377 function->set_extension(extension.get()); 378 function->set_extension(extension.get());
378 EXPECT_TRUE(MatchPattern( 379 EXPECT_TRUE(MatchPattern(
379 utils::RunFunctionAndReturnError(function.get(), 380 utils::RunFunctionAndReturnError(function.get(),
380 kArgs, 381 kArgs,
381 browser()), 382 browser()),
382 keys::kIncognitoModeIsDisabled)); 383 keys::kIncognitoModeIsDisabled));
383 384
384 // Run in incognito window. 385 // Run in incognito window.
385 function = new WindowsCreateFunction(); 386 function = new WindowsCreateFunction();
386 function->set_extension(extension.get()); 387 function->set_extension(extension.get());
387 EXPECT_TRUE(MatchPattern( 388 EXPECT_TRUE(MatchPattern(
388 utils::RunFunctionAndReturnError(function.get(), 389 utils::RunFunctionAndReturnError(function.get(),
389 kArgs, 390 kArgs,
390 incognito_browser), 391 incognito_browser),
391 keys::kIncognitoModeIsDisabled)); 392 keys::kIncognitoModeIsDisabled));
392 } 393 }
393 394
394 IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, QueryCurrentWindowTabs) { 395 IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, QueryCurrentWindowTabs) {
395 const size_t kExtraWindows = 3; 396 const size_t kExtraWindows = 3;
396 for (size_t i = 0; i < kExtraWindows; ++i) 397 for (size_t i = 0; i < kExtraWindows; ++i)
397 CreateBrowser(browser()->profile()); 398 CreateBrowser(browser()->profile());
398 399
399 GURL url(url::kAboutBlankURL); 400 GURL url(url::kAboutBlankURL);
400 AddTabAtIndexToBrowser(browser(), 0, url, content::PAGE_TRANSITION_LINK); 401 AddTabAtIndexToBrowser(browser(), 0, url, content::PAGE_TRANSITION_LINK);
401 int window_id = ExtensionTabUtil::GetWindowId(browser()); 402 int window_id = ExtensionTabUtil::GetWindowId(browser());
402 403
403 // Get tabs in the 'current' window called from non-focused browser. 404 // Get tabs in the 'current' window called from non-focused browser.
404 scoped_refptr<TabsQueryFunction> function = new TabsQueryFunction(); 405 scoped_refptr<TabsQueryFunction> function = new TabsQueryFunction();
405 function->set_extension(utils::CreateEmptyExtension().get()); 406 function->set_extension(test_util::CreateEmptyExtension().get());
406 scoped_ptr<base::ListValue> result(utils::ToList( 407 scoped_ptr<base::ListValue> result(utils::ToList(
407 utils::RunFunctionAndReturnSingleResult(function.get(), 408 utils::RunFunctionAndReturnSingleResult(function.get(),
408 "[{\"currentWindow\":true}]", 409 "[{\"currentWindow\":true}]",
409 browser()))); 410 browser())));
410 411
411 base::ListValue* result_tabs = result.get(); 412 base::ListValue* result_tabs = result.get();
412 // We should have one initial tab and one added tab. 413 // We should have one initial tab and one added tab.
413 EXPECT_EQ(2u, result_tabs->GetSize()); 414 EXPECT_EQ(2u, result_tabs->GetSize());
414 for (size_t i = 0; i < result_tabs->GetSize(); ++i) { 415 for (size_t i = 0; i < result_tabs->GetSize(); ++i) {
415 base::DictionaryValue* result_tab = NULL; 416 base::DictionaryValue* result_tab = NULL;
416 EXPECT_TRUE(result_tabs->GetDictionary(i, &result_tab)); 417 EXPECT_TRUE(result_tabs->GetDictionary(i, &result_tab));
417 EXPECT_EQ(window_id, utils::GetInteger(result_tab, keys::kWindowIdKey)); 418 EXPECT_EQ(window_id, utils::GetInteger(result_tab, keys::kWindowIdKey));
418 } 419 }
419 420
420 // Get tabs NOT in the 'current' window called from non-focused browser. 421 // Get tabs NOT in the 'current' window called from non-focused browser.
421 function = new TabsQueryFunction(); 422 function = new TabsQueryFunction();
422 function->set_extension(utils::CreateEmptyExtension().get()); 423 function->set_extension(test_util::CreateEmptyExtension().get());
423 result.reset(utils::ToList( 424 result.reset(utils::ToList(
424 utils::RunFunctionAndReturnSingleResult(function.get(), 425 utils::RunFunctionAndReturnSingleResult(function.get(),
425 "[{\"currentWindow\":false}]", 426 "[{\"currentWindow\":false}]",
426 browser()))); 427 browser())));
427 428
428 result_tabs = result.get(); 429 result_tabs = result.get();
429 // We should have one tab for each extra window. 430 // We should have one tab for each extra window.
430 EXPECT_EQ(kExtraWindows, result_tabs->GetSize()); 431 EXPECT_EQ(kExtraWindows, result_tabs->GetSize());
431 for (size_t i = 0; i < kExtraWindows; ++i) { 432 for (size_t i = 0; i < kExtraWindows; ++i) {
432 base::DictionaryValue* result_tab = NULL; 433 base::DictionaryValue* result_tab = NULL;
433 EXPECT_TRUE(result_tabs->GetDictionary(i, &result_tab)); 434 EXPECT_TRUE(result_tabs->GetDictionary(i, &result_tab));
434 EXPECT_NE(window_id, utils::GetInteger(result_tab, keys::kWindowIdKey)); 435 EXPECT_NE(window_id, utils::GetInteger(result_tab, keys::kWindowIdKey));
435 } 436 }
436 } 437 }
437 438
438 IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, DontCreateTabInClosingPopupWindow) { 439 IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, DontCreateTabInClosingPopupWindow) {
439 // Test creates new popup window, closes it right away and then tries to open 440 // Test creates new popup window, closes it right away and then tries to open
440 // a new tab in it. Tab should not be opened in the popup window, but in a 441 // a new tab in it. Tab should not be opened in the popup window, but in a
441 // tabbed browser window. 442 // tabbed browser window.
442 Browser* popup_browser = new Browser( 443 Browser* popup_browser = new Browser(
443 Browser::CreateParams(Browser::TYPE_POPUP, browser()->profile(), 444 Browser::CreateParams(Browser::TYPE_POPUP, browser()->profile(),
444 browser()->host_desktop_type())); 445 browser()->host_desktop_type()));
445 int window_id = ExtensionTabUtil::GetWindowId(popup_browser); 446 int window_id = ExtensionTabUtil::GetWindowId(popup_browser);
446 chrome::CloseWindow(popup_browser); 447 chrome::CloseWindow(popup_browser);
447 448
448 scoped_refptr<TabsCreateFunction> create_tab_function( 449 scoped_refptr<TabsCreateFunction> create_tab_function(
449 new TabsCreateFunction()); 450 new TabsCreateFunction());
450 create_tab_function->set_extension(utils::CreateEmptyExtension().get()); 451 create_tab_function->set_extension(test_util::CreateEmptyExtension().get());
451 // Without a callback the function will not generate a result. 452 // Without a callback the function will not generate a result.
452 create_tab_function->set_has_callback(true); 453 create_tab_function->set_has_callback(true);
453 454
454 static const char kNewBlankTabArgs[] = 455 static const char kNewBlankTabArgs[] =
455 "[{\"url\": \"about:blank\", \"windowId\": %u}]"; 456 "[{\"url\": \"about:blank\", \"windowId\": %u}]";
456 457
457 scoped_ptr<base::DictionaryValue> result(utils::ToDictionary( 458 scoped_ptr<base::DictionaryValue> result(utils::ToDictionary(
458 utils::RunFunctionAndReturnSingleResult( 459 utils::RunFunctionAndReturnSingleResult(
459 create_tab_function.get(), 460 create_tab_function.get(),
460 base::StringPrintf(kNewBlankTabArgs, window_id), 461 base::StringPrintf(kNewBlankTabArgs, window_id),
461 browser()))); 462 browser())));
462 463
463 EXPECT_NE(window_id, utils::GetInteger(result.get(), "windowId")); 464 EXPECT_NE(window_id, utils::GetInteger(result.get(), "windowId"));
464 } 465 }
465 466
466 IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, InvalidUpdateWindowState) { 467 IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, InvalidUpdateWindowState) {
467 int window_id = ExtensionTabUtil::GetWindowId(browser()); 468 int window_id = ExtensionTabUtil::GetWindowId(browser());
468 469
469 static const char kArgsMinimizedWithFocus[] = 470 static const char kArgsMinimizedWithFocus[] =
470 "[%u, {\"state\": \"minimized\", \"focused\": true}]"; 471 "[%u, {\"state\": \"minimized\", \"focused\": true}]";
471 scoped_refptr<WindowsUpdateFunction> function = new WindowsUpdateFunction(); 472 scoped_refptr<WindowsUpdateFunction> function = new WindowsUpdateFunction();
472 scoped_refptr<Extension> extension(utils::CreateEmptyExtension()); 473 scoped_refptr<Extension> extension(test_util::CreateEmptyExtension());
473 function->set_extension(extension.get()); 474 function->set_extension(extension.get());
474 EXPECT_TRUE(MatchPattern( 475 EXPECT_TRUE(MatchPattern(
475 utils::RunFunctionAndReturnError( 476 utils::RunFunctionAndReturnError(
476 function.get(), 477 function.get(),
477 base::StringPrintf(kArgsMinimizedWithFocus, window_id), 478 base::StringPrintf(kArgsMinimizedWithFocus, window_id),
478 browser()), 479 browser()),
479 keys::kInvalidWindowStateError)); 480 keys::kInvalidWindowStateError));
480 481
481 static const char kArgsMaximizedWithoutFocus[] = 482 static const char kArgsMaximizedWithoutFocus[] =
482 "[%u, {\"state\": \"maximized\", \"focused\": false}]"; 483 "[%u, {\"state\": \"maximized\", \"focused\": false}]";
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
564 false); 565 false);
565 content::WebContents* web_contents = browser()->OpenURL(params); 566 content::WebContents* web_contents = browser()->OpenURL(params);
566 int tab_id = ExtensionTabUtil::GetTabId(web_contents); 567 int tab_id = ExtensionTabUtil::GetTabId(web_contents);
567 int window_id = ExtensionTabUtil::GetWindowIdOfTab(web_contents); 568 int window_id = ExtensionTabUtil::GetWindowIdOfTab(web_contents);
568 int tab_index = -1; 569 int tab_index = -1;
569 TabStripModel* tab_strip; 570 TabStripModel* tab_strip;
570 ExtensionTabUtil::GetTabStripModel(web_contents, &tab_strip, &tab_index); 571 ExtensionTabUtil::GetTabStripModel(web_contents, &tab_strip, &tab_index);
571 572
572 scoped_refptr<TabsDuplicateFunction> duplicate_tab_function( 573 scoped_refptr<TabsDuplicateFunction> duplicate_tab_function(
573 new TabsDuplicateFunction()); 574 new TabsDuplicateFunction());
574 scoped_refptr<Extension> empty_extension(utils::CreateEmptyExtension()); 575 scoped_refptr<Extension> empty_extension(test_util::CreateEmptyExtension());
575 duplicate_tab_function->set_extension(empty_extension.get()); 576 duplicate_tab_function->set_extension(empty_extension.get());
576 duplicate_tab_function->set_has_callback(true); 577 duplicate_tab_function->set_has_callback(true);
577 578
578 scoped_ptr<base::DictionaryValue> duplicate_result(utils::ToDictionary( 579 scoped_ptr<base::DictionaryValue> duplicate_result(utils::ToDictionary(
579 utils::RunFunctionAndReturnSingleResult( 580 utils::RunFunctionAndReturnSingleResult(
580 duplicate_tab_function.get(), base::StringPrintf("[%u]", tab_id), 581 duplicate_tab_function.get(), base::StringPrintf("[%u]", tab_id),
581 browser()))); 582 browser())));
582 583
583 int duplicate_tab_id = utils::GetInteger(duplicate_result.get(), "id"); 584 int duplicate_tab_id = utils::GetInteger(duplicate_result.get(), "id");
584 int duplicate_tab_window_id = utils::GetInteger(duplicate_result.get(), 585 int duplicate_tab_window_id = utils::GetInteger(duplicate_result.get(),
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
623 const char* scope); 624 const char* scope);
624 625
625 content::WebContents* OpenUrlAndWaitForLoad(const GURL& url); 626 content::WebContents* OpenUrlAndWaitForLoad(const GURL& url);
626 627
627 private: 628 private:
628 scoped_refptr<Extension> extension_; 629 scoped_refptr<Extension> extension_;
629 }; 630 };
630 631
631 void ExtensionTabsZoomTest::SetUpOnMainThread() { 632 void ExtensionTabsZoomTest::SetUpOnMainThread() {
632 ExtensionTabsTest::SetUpOnMainThread(); 633 ExtensionTabsTest::SetUpOnMainThread();
633 extension_ = utils::CreateEmptyExtension(); 634 extension_ = test_util::CreateEmptyExtension();
634 } 635 }
635 636
636 bool ExtensionTabsZoomTest::RunSetZoom(int tab_id, double zoom_factor) { 637 bool ExtensionTabsZoomTest::RunSetZoom(int tab_id, double zoom_factor) {
637 scoped_refptr<TabsSetZoomFunction> set_zoom_function( 638 scoped_refptr<TabsSetZoomFunction> set_zoom_function(
638 new TabsSetZoomFunction()); 639 new TabsSetZoomFunction());
639 set_zoom_function->set_extension(extension_.get()); 640 set_zoom_function->set_extension(extension_.get());
640 set_zoom_function->set_has_callback(true); 641 set_zoom_function->set_has_callback(true);
641 642
642 return utils::RunFunction( 643 return utils::RunFunction(
643 set_zoom_function.get(), 644 set_zoom_function.get(),
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
904 // Test chrome.tabs.setZoom(). 905 // Test chrome.tabs.setZoom().
905 error = RunSetZoomExpectError(tab_id, 3.14159); 906 error = RunSetZoomExpectError(tab_id, 3.14159);
906 EXPECT_TRUE(MatchPattern(error, manifest_errors::kCannotAccessChromeUrl)); 907 EXPECT_TRUE(MatchPattern(error, manifest_errors::kCannotAccessChromeUrl));
907 908
908 // chrome.tabs.setZoomSettings(). 909 // chrome.tabs.setZoomSettings().
909 error = RunSetZoomSettingsExpectError(tab_id, "manual", "per-tab"); 910 error = RunSetZoomSettingsExpectError(tab_id, "manual", "per-tab");
910 EXPECT_TRUE(MatchPattern(error, manifest_errors::kCannotAccessChromeUrl)); 911 EXPECT_TRUE(MatchPattern(error, manifest_errors::kCannotAccessChromeUrl));
911 } 912 }
912 913
913 } // namespace extensions 914 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698