OLD | NEW |
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 #include "base/command_line.h" | 5 #include "base/command_line.h" |
6 #include "build/build_config.h" | 6 #include "build/build_config.h" |
7 #include "chrome/browser/ui/browser.h" | 7 #include "chrome/browser/ui/browser.h" |
8 #include "chrome/browser/ui/browser_tabstrip.h" | 8 #include "chrome/browser/ui/browser_tabstrip.h" |
9 #include "chrome/browser/ui/fullscreen/fullscreen_controller.h" | 9 #include "chrome/browser/ui/fullscreen/fullscreen_controller.h" |
10 #include "chrome/browser/ui/fullscreen/fullscreen_controller_state_test.h" | 10 #include "chrome/browser/ui/fullscreen/fullscreen_controller_state_test.h" |
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
319 // Tests all states with all permutations of multiple events to detect lingering | 319 // Tests all states with all permutations of multiple events to detect lingering |
320 // state issues that would bleed over to other states. | 320 // state issues that would bleed over to other states. |
321 // I.E. for each state test all combinations of events E1, E2, E3. | 321 // I.E. for each state test all combinations of events E1, E2, E3. |
322 // | 322 // |
323 // This produces coverage for event sequences that may happen normally but | 323 // This produces coverage for event sequences that may happen normally but |
324 // would not be exposed by traversing to each state via TransitionToState(). | 324 // would not be exposed by traversing to each state via TransitionToState(). |
325 // TransitionToState() always takes the same path even when multiple paths | 325 // TransitionToState() always takes the same path even when multiple paths |
326 // exist. | 326 // exist. |
327 TEST_F(FullscreenControllerStateUnitTest, TransitionsForEachState) { | 327 TEST_F(FullscreenControllerStateUnitTest, TransitionsForEachState) { |
328 // A tab is needed for tab fullscreen. | 328 // A tab is needed for tab fullscreen. |
329 AddTab(browser(), GURL(content::kAboutBlankURL)); | 329 AddTab(browser(), GURL(url::kAboutBlankURL)); |
330 TestTransitionsForEachState(); | 330 TestTransitionsForEachState(); |
331 // Progress of test can be examined via LOG(INFO) << GetAndClearDebugLog(); | 331 // Progress of test can be examined via LOG(INFO) << GetAndClearDebugLog(); |
332 } | 332 } |
333 | 333 |
334 | 334 |
335 // Individual tests for each pair of state and event --------------------------- | 335 // Individual tests for each pair of state and event --------------------------- |
336 | 336 |
337 #define TEST_EVENT(state, event) \ | 337 #define TEST_EVENT(state, event) \ |
338 TEST_F(FullscreenControllerStateUnitTest, state##__##event) { \ | 338 TEST_F(FullscreenControllerStateUnitTest, state##__##event) { \ |
339 AddTab(browser(), GURL(content::kAboutBlankURL)); \ | 339 AddTab(browser(), GURL(url::kAboutBlankURL)); \ |
340 ASSERT_NO_FATAL_FAILURE(TestStateAndEvent(state, event)) \ | 340 ASSERT_NO_FATAL_FAILURE(TestStateAndEvent(state, event)) \ |
341 << GetAndClearDebugLog(); \ | 341 << GetAndClearDebugLog(); \ |
342 } | 342 } |
343 // Progress of tests can be examined by inserting the following line: | 343 // Progress of tests can be examined by inserting the following line: |
344 // LOG(INFO) << GetAndClearDebugLog(); } | 344 // LOG(INFO) << GetAndClearDebugLog(); } |
345 | 345 |
346 #include "chrome/browser/ui/fullscreen/fullscreen_controller_state_tests.h" | 346 #include "chrome/browser/ui/fullscreen/fullscreen_controller_state_tests.h" |
347 | 347 |
348 | 348 |
349 // Specific one-off tests for known issues ------------------------------------- | 349 // Specific one-off tests for known issues ------------------------------------- |
350 | 350 |
351 // TODO(scheib) Toggling Tab fullscreen while pending Tab or | 351 // TODO(scheib) Toggling Tab fullscreen while pending Tab or |
352 // Browser fullscreen is broken currently http://crbug.com/154196 | 352 // Browser fullscreen is broken currently http://crbug.com/154196 |
353 TEST_F(FullscreenControllerStateUnitTest, | 353 TEST_F(FullscreenControllerStateUnitTest, |
354 DISABLED_ToggleTabWhenPendingBrowser) { | 354 DISABLED_ToggleTabWhenPendingBrowser) { |
355 // Only possible without reentrancy. | 355 // Only possible without reentrancy. |
356 if (FullscreenControllerStateTest::IsWindowFullscreenStateChangedReentrant()) | 356 if (FullscreenControllerStateTest::IsWindowFullscreenStateChangedReentrant()) |
357 return; | 357 return; |
358 AddTab(browser(), GURL(content::kAboutBlankURL)); | 358 AddTab(browser(), GURL(url::kAboutBlankURL)); |
359 ASSERT_NO_FATAL_FAILURE( | 359 ASSERT_NO_FATAL_FAILURE( |
360 TransitionToState(STATE_TO_BROWSER_FULLSCREEN_NO_CHROME)) | 360 TransitionToState(STATE_TO_BROWSER_FULLSCREEN_NO_CHROME)) |
361 << GetAndClearDebugLog(); | 361 << GetAndClearDebugLog(); |
362 | 362 |
363 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_TRUE)) << GetAndClearDebugLog(); | 363 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_TRUE)) << GetAndClearDebugLog(); |
364 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_FALSE)) << GetAndClearDebugLog(); | 364 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_FALSE)) << GetAndClearDebugLog(); |
365 ASSERT_TRUE(InvokeEvent(WINDOW_CHANGE)) << GetAndClearDebugLog(); | 365 ASSERT_TRUE(InvokeEvent(WINDOW_CHANGE)) << GetAndClearDebugLog(); |
366 } | 366 } |
367 | 367 |
368 // TODO(scheib) Toggling Tab fullscreen while pending Tab or | 368 // TODO(scheib) Toggling Tab fullscreen while pending Tab or |
369 // Browser fullscreen is broken currently http://crbug.com/154196 | 369 // Browser fullscreen is broken currently http://crbug.com/154196 |
370 TEST_F(FullscreenControllerStateUnitTest, DISABLED_ToggleTabWhenPendingTab) { | 370 TEST_F(FullscreenControllerStateUnitTest, DISABLED_ToggleTabWhenPendingTab) { |
371 // Only possible without reentrancy. | 371 // Only possible without reentrancy. |
372 if (FullscreenControllerStateTest::IsWindowFullscreenStateChangedReentrant()) | 372 if (FullscreenControllerStateTest::IsWindowFullscreenStateChangedReentrant()) |
373 return; | 373 return; |
374 AddTab(browser(), GURL(content::kAboutBlankURL)); | 374 AddTab(browser(), GURL(url::kAboutBlankURL)); |
375 ASSERT_NO_FATAL_FAILURE( | 375 ASSERT_NO_FATAL_FAILURE( |
376 TransitionToState(STATE_TO_TAB_FULLSCREEN)) | 376 TransitionToState(STATE_TO_TAB_FULLSCREEN)) |
377 << GetAndClearDebugLog(); | 377 << GetAndClearDebugLog(); |
378 | 378 |
379 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_TRUE)) << GetAndClearDebugLog(); | 379 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_TRUE)) << GetAndClearDebugLog(); |
380 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_FALSE)) << GetAndClearDebugLog(); | 380 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_FALSE)) << GetAndClearDebugLog(); |
381 ASSERT_TRUE(InvokeEvent(WINDOW_CHANGE)) << GetAndClearDebugLog(); | 381 ASSERT_TRUE(InvokeEvent(WINDOW_CHANGE)) << GetAndClearDebugLog(); |
382 } | 382 } |
383 | 383 |
384 // Debugging utility: Display the transition tables. Intentionally disabled | 384 // Debugging utility: Display the transition tables. Intentionally disabled |
(...skipping 25 matching lines...) Expand all Loading... |
410 output << "\n\nAll transitions:"; | 410 output << "\n\nAll transitions:"; |
411 output << GetStateTransitionsAsString(); | 411 output << GetStateTransitionsAsString(); |
412 LOG(INFO) << output.str(); | 412 LOG(INFO) << output.str(); |
413 } | 413 } |
414 | 414 |
415 // Test that the fullscreen exit bubble is closed by | 415 // Test that the fullscreen exit bubble is closed by |
416 // WindowFullscreenStateChanged() if fullscreen is exited via BrowserWindow. | 416 // WindowFullscreenStateChanged() if fullscreen is exited via BrowserWindow. |
417 // This currently occurs when an extension exits fullscreen via changing the | 417 // This currently occurs when an extension exits fullscreen via changing the |
418 // browser bounds. | 418 // browser bounds. |
419 TEST_F(FullscreenControllerStateUnitTest, ExitFullscreenViaBrowserWindow) { | 419 TEST_F(FullscreenControllerStateUnitTest, ExitFullscreenViaBrowserWindow) { |
420 AddTab(browser(), GURL(content::kAboutBlankURL)); | 420 AddTab(browser(), GURL(url::kAboutBlankURL)); |
421 ASSERT_TRUE(InvokeEvent(TOGGLE_FULLSCREEN)); | 421 ASSERT_TRUE(InvokeEvent(TOGGLE_FULLSCREEN)); |
422 ASSERT_TRUE(InvokeEvent(WINDOW_CHANGE)); | 422 ASSERT_TRUE(InvokeEvent(WINDOW_CHANGE)); |
423 ASSERT_TRUE(browser()->window()->IsFullscreen()); | 423 ASSERT_TRUE(browser()->window()->IsFullscreen()); |
424 // Exit fullscreen without going through fullscreen controller. | 424 // Exit fullscreen without going through fullscreen controller. |
425 browser()->window()->ExitFullscreen(); | 425 browser()->window()->ExitFullscreen(); |
426 ChangeWindowFullscreenState(); | 426 ChangeWindowFullscreenState(); |
427 EXPECT_EQ(FEB_TYPE_NONE, | 427 EXPECT_EQ(FEB_TYPE_NONE, |
428 browser()->fullscreen_controller()->GetFullscreenExitBubbleType()); | 428 browser()->fullscreen_controller()->GetFullscreenExitBubbleType()); |
429 } | 429 } |
430 | 430 |
431 // Test that switching tabs takes the browser out of tab fullscreen. | 431 // Test that switching tabs takes the browser out of tab fullscreen. |
432 TEST_F(FullscreenControllerStateUnitTest, ExitTabFullscreenViaSwitchingTab) { | 432 TEST_F(FullscreenControllerStateUnitTest, ExitTabFullscreenViaSwitchingTab) { |
433 AddTab(browser(), GURL(content::kAboutBlankURL)); | 433 AddTab(browser(), GURL(url::kAboutBlankURL)); |
434 AddTab(browser(), GURL(content::kAboutBlankURL)); | 434 AddTab(browser(), GURL(url::kAboutBlankURL)); |
435 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_TRUE)); | 435 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_TRUE)); |
436 ASSERT_TRUE(InvokeEvent(WINDOW_CHANGE)); | 436 ASSERT_TRUE(InvokeEvent(WINDOW_CHANGE)); |
437 ASSERT_TRUE(browser()->window()->IsFullscreen()); | 437 ASSERT_TRUE(browser()->window()->IsFullscreen()); |
438 | 438 |
439 browser()->tab_strip_model()->SelectNextTab(); | 439 browser()->tab_strip_model()->SelectNextTab(); |
440 ChangeWindowFullscreenState(); | 440 ChangeWindowFullscreenState(); |
441 EXPECT_FALSE(browser()->window()->IsFullscreen()); | 441 EXPECT_FALSE(browser()->window()->IsFullscreen()); |
442 } | 442 } |
443 | 443 |
444 // Test that switching tabs via detaching the active tab (which is in tab | 444 // Test that switching tabs via detaching the active tab (which is in tab |
445 // fullscreen) takes the browser out of tab fullscreen. This case can | 445 // fullscreen) takes the browser out of tab fullscreen. This case can |
446 // occur if the user is in both tab fullscreen and immersive browser fullscreen. | 446 // occur if the user is in both tab fullscreen and immersive browser fullscreen. |
447 TEST_F(FullscreenControllerStateUnitTest, ExitTabFullscreenViaDetachingTab) { | 447 TEST_F(FullscreenControllerStateUnitTest, ExitTabFullscreenViaDetachingTab) { |
448 AddTab(browser(), GURL(content::kAboutBlankURL)); | 448 AddTab(browser(), GURL(url::kAboutBlankURL)); |
449 AddTab(browser(), GURL(content::kAboutBlankURL)); | 449 AddTab(browser(), GURL(url::kAboutBlankURL)); |
450 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_TRUE)); | 450 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_TRUE)); |
451 ASSERT_TRUE(InvokeEvent(WINDOW_CHANGE)); | 451 ASSERT_TRUE(InvokeEvent(WINDOW_CHANGE)); |
452 ASSERT_TRUE(browser()->window()->IsFullscreen()); | 452 ASSERT_TRUE(browser()->window()->IsFullscreen()); |
453 | 453 |
454 scoped_ptr<content::WebContents> web_contents( | 454 scoped_ptr<content::WebContents> web_contents( |
455 browser()->tab_strip_model()->DetachWebContentsAt(0)); | 455 browser()->tab_strip_model()->DetachWebContentsAt(0)); |
456 ChangeWindowFullscreenState(); | 456 ChangeWindowFullscreenState(); |
457 EXPECT_FALSE(browser()->window()->IsFullscreen()); | 457 EXPECT_FALSE(browser()->window()->IsFullscreen()); |
458 } | 458 } |
459 | 459 |
460 // Test that replacing the web contents for a tab which is in tab fullscreen | 460 // Test that replacing the web contents for a tab which is in tab fullscreen |
461 // takes the browser out of tab fullscreen. This can occur if the user | 461 // takes the browser out of tab fullscreen. This can occur if the user |
462 // navigates to a prerendered page from a page which is tab fullscreen. | 462 // navigates to a prerendered page from a page which is tab fullscreen. |
463 TEST_F(FullscreenControllerStateUnitTest, ExitTabFullscreenViaReplacingTab) { | 463 TEST_F(FullscreenControllerStateUnitTest, ExitTabFullscreenViaReplacingTab) { |
464 AddTab(browser(), GURL(content::kAboutBlankURL)); | 464 AddTab(browser(), GURL(url::kAboutBlankURL)); |
465 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_TRUE)); | 465 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_TRUE)); |
466 ASSERT_TRUE(InvokeEvent(WINDOW_CHANGE)); | 466 ASSERT_TRUE(InvokeEvent(WINDOW_CHANGE)); |
467 ASSERT_TRUE(browser()->window()->IsFullscreen()); | 467 ASSERT_TRUE(browser()->window()->IsFullscreen()); |
468 | 468 |
469 content::WebContents* new_web_contents = content::WebContents::Create( | 469 content::WebContents* new_web_contents = content::WebContents::Create( |
470 content::WebContents::CreateParams(profile())); | 470 content::WebContents::CreateParams(profile())); |
471 scoped_ptr<content::WebContents> old_web_contents( | 471 scoped_ptr<content::WebContents> old_web_contents( |
472 browser()->tab_strip_model()->ReplaceWebContentsAt( | 472 browser()->tab_strip_model()->ReplaceWebContentsAt( |
473 0, new_web_contents)); | 473 0, new_web_contents)); |
474 ChangeWindowFullscreenState(); | 474 ChangeWindowFullscreenState(); |
475 EXPECT_FALSE(browser()->window()->IsFullscreen()); | 475 EXPECT_FALSE(browser()->window()->IsFullscreen()); |
476 } | 476 } |
477 | 477 |
478 // Tests that, in a browser configured for Fullscreen-Within-Tab mode, | 478 // Tests that, in a browser configured for Fullscreen-Within-Tab mode, |
479 // fullscreening a screen-captured tab will NOT cause any fullscreen state | 479 // fullscreening a screen-captured tab will NOT cause any fullscreen state |
480 // change to the browser window. Furthermore, the test switches between tabs to | 480 // change to the browser window. Furthermore, the test switches between tabs to |
481 // confirm a captured tab will be resized by FullscreenController to the capture | 481 // confirm a captured tab will be resized by FullscreenController to the capture |
482 // video resolution once the widget is detached from the UI. | 482 // video resolution once the widget is detached from the UI. |
483 // | 483 // |
484 // See 'FullscreenWithinTab Note' in fullscreen_controller.h. | 484 // See 'FullscreenWithinTab Note' in fullscreen_controller.h. |
485 TEST_F(FullscreenControllerStateUnitTest, OneCapturedFullscreenedTab) { | 485 TEST_F(FullscreenControllerStateUnitTest, OneCapturedFullscreenedTab) { |
486 content::WebContentsDelegate* const wc_delegate = | 486 content::WebContentsDelegate* const wc_delegate = |
487 static_cast<content::WebContentsDelegate*>(browser()); | 487 static_cast<content::WebContentsDelegate*>(browser()); |
488 if (!wc_delegate->EmbedsFullscreenWidget()) { | 488 if (!wc_delegate->EmbedsFullscreenWidget()) { |
489 LOG(WARNING) << "Skipping test since fullscreen-within-tab is disabled."; | 489 LOG(WARNING) << "Skipping test since fullscreen-within-tab is disabled."; |
490 return; | 490 return; |
491 } | 491 } |
492 | 492 |
493 AddTab(browser(), GURL(content::kAboutBlankURL)); | 493 AddTab(browser(), GURL(url::kAboutBlankURL)); |
494 AddTab(browser(), GURL(content::kAboutBlankURL)); | 494 AddTab(browser(), GURL(url::kAboutBlankURL)); |
495 content::WebContents* const first_tab = | 495 content::WebContents* const first_tab = |
496 browser()->tab_strip_model()->GetWebContentsAt(0); | 496 browser()->tab_strip_model()->GetWebContentsAt(0); |
497 content::WebContents* const second_tab = | 497 content::WebContents* const second_tab = |
498 browser()->tab_strip_model()->GetWebContentsAt(1); | 498 browser()->tab_strip_model()->GetWebContentsAt(1); |
499 | 499 |
500 // Activate the first tab and tell its WebContents it is being captured. | 500 // Activate the first tab and tell its WebContents it is being captured. |
501 browser()->tab_strip_model()->ActivateTabAt(0, true); | 501 browser()->tab_strip_model()->ActivateTabAt(0, true); |
502 const gfx::Size kCaptureSize(1280, 720); | 502 const gfx::Size kCaptureSize(1280, 720); |
503 first_tab->IncrementCapturerCount(kCaptureSize); | 503 first_tab->IncrementCapturerCount(kCaptureSize); |
504 ASSERT_FALSE(browser()->window()->IsFullscreen()); | 504 ASSERT_FALSE(browser()->window()->IsFullscreen()); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
550 // | 550 // |
551 // See 'FullscreenWithinTab Note' in fullscreen_controller.h. | 551 // See 'FullscreenWithinTab Note' in fullscreen_controller.h. |
552 TEST_F(FullscreenControllerStateUnitTest, TwoFullscreenedTabsOneCaptured) { | 552 TEST_F(FullscreenControllerStateUnitTest, TwoFullscreenedTabsOneCaptured) { |
553 content::WebContentsDelegate* const wc_delegate = | 553 content::WebContentsDelegate* const wc_delegate = |
554 static_cast<content::WebContentsDelegate*>(browser()); | 554 static_cast<content::WebContentsDelegate*>(browser()); |
555 if (!wc_delegate->EmbedsFullscreenWidget()) { | 555 if (!wc_delegate->EmbedsFullscreenWidget()) { |
556 LOG(WARNING) << "Skipping test since fullscreen-within-tab is disabled."; | 556 LOG(WARNING) << "Skipping test since fullscreen-within-tab is disabled."; |
557 return; | 557 return; |
558 } | 558 } |
559 | 559 |
560 AddTab(browser(), GURL(content::kAboutBlankURL)); | 560 AddTab(browser(), GURL(url::kAboutBlankURL)); |
561 AddTab(browser(), GURL(content::kAboutBlankURL)); | 561 AddTab(browser(), GURL(url::kAboutBlankURL)); |
562 content::WebContents* const first_tab = | 562 content::WebContents* const first_tab = |
563 browser()->tab_strip_model()->GetWebContentsAt(0); | 563 browser()->tab_strip_model()->GetWebContentsAt(0); |
564 content::WebContents* const second_tab = | 564 content::WebContents* const second_tab = |
565 browser()->tab_strip_model()->GetWebContentsAt(1); | 565 browser()->tab_strip_model()->GetWebContentsAt(1); |
566 | 566 |
567 // Start capturing the first tab, fullscreen it, then switch to the second tab | 567 // Start capturing the first tab, fullscreen it, then switch to the second tab |
568 // and fullscreen that. The second tab will cause the browser window to | 568 // and fullscreen that. The second tab will cause the browser window to |
569 // expand to fill the screen. | 569 // expand to fill the screen. |
570 browser()->tab_strip_model()->ActivateTabAt(0, true); | 570 browser()->tab_strip_model()->ActivateTabAt(0, true); |
571 const gfx::Size kCaptureSize(1280, 720); | 571 const gfx::Size kCaptureSize(1280, 720); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
611 // See 'FullscreenWithinTab Note' in fullscreen_controller.h. | 611 // See 'FullscreenWithinTab Note' in fullscreen_controller.h. |
612 TEST_F(FullscreenControllerStateUnitTest, | 612 TEST_F(FullscreenControllerStateUnitTest, |
613 BackgroundCapturedTabExitsFullscreen) { | 613 BackgroundCapturedTabExitsFullscreen) { |
614 content::WebContentsDelegate* const wc_delegate = | 614 content::WebContentsDelegate* const wc_delegate = |
615 static_cast<content::WebContentsDelegate*>(browser()); | 615 static_cast<content::WebContentsDelegate*>(browser()); |
616 if (!wc_delegate->EmbedsFullscreenWidget()) { | 616 if (!wc_delegate->EmbedsFullscreenWidget()) { |
617 LOG(WARNING) << "Skipping test since fullscreen-within-tab is disabled."; | 617 LOG(WARNING) << "Skipping test since fullscreen-within-tab is disabled."; |
618 return; | 618 return; |
619 } | 619 } |
620 | 620 |
621 AddTab(browser(), GURL(content::kAboutBlankURL)); | 621 AddTab(browser(), GURL(url::kAboutBlankURL)); |
622 AddTab(browser(), GURL(content::kAboutBlankURL)); | 622 AddTab(browser(), GURL(url::kAboutBlankURL)); |
623 content::WebContents* const first_tab = | 623 content::WebContents* const first_tab = |
624 browser()->tab_strip_model()->GetWebContentsAt(0); | 624 browser()->tab_strip_model()->GetWebContentsAt(0); |
625 content::WebContents* const second_tab = | 625 content::WebContents* const second_tab = |
626 browser()->tab_strip_model()->GetWebContentsAt(1); | 626 browser()->tab_strip_model()->GetWebContentsAt(1); |
627 | 627 |
628 // Start capturing the first tab, fullscreen it, then switch to the second tab | 628 // Start capturing the first tab, fullscreen it, then switch to the second tab |
629 // and fullscreen that. The second tab will cause the browser window to | 629 // and fullscreen that. The second tab will cause the browser window to |
630 // expand to fill the screen. | 630 // expand to fill the screen. |
631 browser()->tab_strip_model()->ActivateTabAt(0, true); | 631 browser()->tab_strip_model()->ActivateTabAt(0, true); |
632 const gfx::Size kCaptureSize(1280, 720); | 632 const gfx::Size kCaptureSize(1280, 720); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
670 // See 'FullscreenWithinTab Note' in fullscreen_controller.h. | 670 // See 'FullscreenWithinTab Note' in fullscreen_controller.h. |
671 TEST_F(FullscreenControllerStateUnitTest, | 671 TEST_F(FullscreenControllerStateUnitTest, |
672 OneCapturedTabFullscreenedBeforeBrowserFullscreen) { | 672 OneCapturedTabFullscreenedBeforeBrowserFullscreen) { |
673 content::WebContentsDelegate* const wc_delegate = | 673 content::WebContentsDelegate* const wc_delegate = |
674 static_cast<content::WebContentsDelegate*>(browser()); | 674 static_cast<content::WebContentsDelegate*>(browser()); |
675 if (!wc_delegate->EmbedsFullscreenWidget()) { | 675 if (!wc_delegate->EmbedsFullscreenWidget()) { |
676 LOG(WARNING) << "Skipping test since fullscreen-within-tab is disabled."; | 676 LOG(WARNING) << "Skipping test since fullscreen-within-tab is disabled."; |
677 return; | 677 return; |
678 } | 678 } |
679 | 679 |
680 AddTab(browser(), GURL(content::kAboutBlankURL)); | 680 AddTab(browser(), GURL(url::kAboutBlankURL)); |
681 content::WebContents* const tab = | 681 content::WebContents* const tab = |
682 browser()->tab_strip_model()->GetWebContentsAt(0); | 682 browser()->tab_strip_model()->GetWebContentsAt(0); |
683 | 683 |
684 // Start capturing the tab and fullscreen it. The state of the browser window | 684 // Start capturing the tab and fullscreen it. The state of the browser window |
685 // should remain unchanged. | 685 // should remain unchanged. |
686 browser()->tab_strip_model()->ActivateTabAt(0, true); | 686 browser()->tab_strip_model()->ActivateTabAt(0, true); |
687 const gfx::Size kCaptureSize(1280, 720); | 687 const gfx::Size kCaptureSize(1280, 720); |
688 tab->IncrementCapturerCount(kCaptureSize); | 688 tab->IncrementCapturerCount(kCaptureSize); |
689 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_TRUE)); | 689 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_TRUE)); |
690 EXPECT_TRUE(wc_delegate->IsFullscreenForTabOrPending(tab)); | 690 EXPECT_TRUE(wc_delegate->IsFullscreenForTabOrPending(tab)); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
724 // See 'FullscreenWithinTab Note' in fullscreen_controller.h. | 724 // See 'FullscreenWithinTab Note' in fullscreen_controller.h. |
725 TEST_F(FullscreenControllerStateUnitTest, | 725 TEST_F(FullscreenControllerStateUnitTest, |
726 CapturedFullscreenedTabTransferredBetweenBrowserWindows) { | 726 CapturedFullscreenedTabTransferredBetweenBrowserWindows) { |
727 content::WebContentsDelegate* const wc_delegate = | 727 content::WebContentsDelegate* const wc_delegate = |
728 static_cast<content::WebContentsDelegate*>(browser()); | 728 static_cast<content::WebContentsDelegate*>(browser()); |
729 if (!wc_delegate->EmbedsFullscreenWidget()) { | 729 if (!wc_delegate->EmbedsFullscreenWidget()) { |
730 LOG(WARNING) << "Skipping test since fullscreen-within-tab is disabled."; | 730 LOG(WARNING) << "Skipping test since fullscreen-within-tab is disabled."; |
731 return; | 731 return; |
732 } | 732 } |
733 | 733 |
734 AddTab(browser(), GURL(content::kAboutBlankURL)); | 734 AddTab(browser(), GURL(url::kAboutBlankURL)); |
735 AddTab(browser(), GURL(content::kAboutBlankURL)); | 735 AddTab(browser(), GURL(url::kAboutBlankURL)); |
736 content::WebContents* const tab = | 736 content::WebContents* const tab = |
737 browser()->tab_strip_model()->GetWebContentsAt(0); | 737 browser()->tab_strip_model()->GetWebContentsAt(0); |
738 | 738 |
739 // Activate the first tab and tell its WebContents it is being captured. | 739 // Activate the first tab and tell its WebContents it is being captured. |
740 browser()->tab_strip_model()->ActivateTabAt(0, true); | 740 browser()->tab_strip_model()->ActivateTabAt(0, true); |
741 const gfx::Size kCaptureSize(1280, 720); | 741 const gfx::Size kCaptureSize(1280, 720); |
742 tab->IncrementCapturerCount(kCaptureSize); | 742 tab->IncrementCapturerCount(kCaptureSize); |
743 ASSERT_FALSE(browser()->window()->IsFullscreen()); | 743 ASSERT_FALSE(browser()->window()->IsFullscreen()); |
744 ASSERT_FALSE(wc_delegate->IsFullscreenForTabOrPending(tab)); | 744 ASSERT_FALSE(wc_delegate->IsFullscreenForTabOrPending(tab)); |
745 ASSERT_FALSE(GetFullscreenController()->IsWindowFullscreenForTabOrPending()); | 745 ASSERT_FALSE(GetFullscreenController()->IsWindowFullscreenForTabOrPending()); |
746 | 746 |
747 // Enter tab fullscreen. Since the tab is being captured, the browser window | 747 // Enter tab fullscreen. Since the tab is being captured, the browser window |
748 // should not expand to fill the screen. | 748 // should not expand to fill the screen. |
749 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_TRUE)); | 749 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_TRUE)); |
750 EXPECT_FALSE(browser()->window()->IsFullscreen()); | 750 EXPECT_FALSE(browser()->window()->IsFullscreen()); |
751 EXPECT_TRUE(wc_delegate->IsFullscreenForTabOrPending(tab)); | 751 EXPECT_TRUE(wc_delegate->IsFullscreenForTabOrPending(tab)); |
752 EXPECT_FALSE(GetFullscreenController()->IsWindowFullscreenForTabOrPending()); | 752 EXPECT_FALSE(GetFullscreenController()->IsWindowFullscreenForTabOrPending()); |
753 | 753 |
754 // Create the second browser window. | 754 // Create the second browser window. |
755 const scoped_ptr<BrowserWindow> second_browser_window(CreateBrowserWindow()); | 755 const scoped_ptr<BrowserWindow> second_browser_window(CreateBrowserWindow()); |
756 const scoped_ptr<Browser> second_browser(CreateBrowser( | 756 const scoped_ptr<Browser> second_browser(CreateBrowser( |
757 browser()->profile(), | 757 browser()->profile(), |
758 browser()->type(), | 758 browser()->type(), |
759 false, | 759 false, |
760 browser()->host_desktop_type(), | 760 browser()->host_desktop_type(), |
761 second_browser_window.get())); | 761 second_browser_window.get())); |
762 AddTab(second_browser.get(), GURL(content::kAboutBlankURL)); | 762 AddTab(second_browser.get(), GURL(url::kAboutBlankURL)); |
763 content::WebContentsDelegate* const second_wc_delegate = | 763 content::WebContentsDelegate* const second_wc_delegate = |
764 static_cast<content::WebContentsDelegate*>(second_browser.get()); | 764 static_cast<content::WebContentsDelegate*>(second_browser.get()); |
765 | 765 |
766 // Detach the tab from the first browser window and attach it to the second. | 766 // Detach the tab from the first browser window and attach it to the second. |
767 // The tab should remain in fullscreen mode and neither browser window should | 767 // The tab should remain in fullscreen mode and neither browser window should |
768 // have expanded. It is correct for both FullscreenControllers to agree the | 768 // have expanded. It is correct for both FullscreenControllers to agree the |
769 // tab is in fullscreen mode. | 769 // tab is in fullscreen mode. |
770 browser()->tab_strip_model()->DetachWebContentsAt(0); | 770 browser()->tab_strip_model()->DetachWebContentsAt(0); |
771 second_browser->tab_strip_model()-> | 771 second_browser->tab_strip_model()-> |
772 InsertWebContentsAt(0, tab, TabStripModel::ADD_ACTIVE); | 772 InsertWebContentsAt(0, tab, TabStripModel::ADD_ACTIVE); |
(...skipping 24 matching lines...) Expand all Loading... |
797 EXPECT_FALSE(browser()->window()->IsFullscreen()); | 797 EXPECT_FALSE(browser()->window()->IsFullscreen()); |
798 EXPECT_FALSE(wc_delegate->IsFullscreenForTabOrPending(tab)); | 798 EXPECT_FALSE(wc_delegate->IsFullscreenForTabOrPending(tab)); |
799 EXPECT_FALSE(second_wc_delegate->IsFullscreenForTabOrPending(tab)); | 799 EXPECT_FALSE(second_wc_delegate->IsFullscreenForTabOrPending(tab)); |
800 EXPECT_FALSE(GetFullscreenController()->IsWindowFullscreenForTabOrPending()); | 800 EXPECT_FALSE(GetFullscreenController()->IsWindowFullscreenForTabOrPending()); |
801 EXPECT_FALSE(second_browser->fullscreen_controller()-> | 801 EXPECT_FALSE(second_browser->fullscreen_controller()-> |
802 IsWindowFullscreenForTabOrPending()); | 802 IsWindowFullscreenForTabOrPending()); |
803 | 803 |
804 // Required tear-down specific to this test. | 804 // Required tear-down specific to this test. |
805 second_browser->tab_strip_model()->CloseAllTabs(); | 805 second_browser->tab_strip_model()->CloseAllTabs(); |
806 } | 806 } |
OLD | NEW |