| // Copyright (c) 2012 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. |
| |
| #include "chrome/browser/ui/exclusive_access/fullscreen_controller_test.h" |
| |
| #include "base/command_line.h" |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/browser_commands.h" |
| #include "chrome/browser/ui/browser_window.h" |
| #include "chrome/browser/ui/exclusive_access/fullscreen_controller.h" |
| #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| #include "chrome/common/chrome_switches.h" |
| #include "content/public/browser/web_contents.h" |
| #include "content/public/test/test_navigation_observer.h" |
| |
| using content::WebContents; |
| |
| const char FullscreenControllerTest::kFullscreenMouseLockHTML[] = |
| "files/fullscreen_mouselock/fullscreen_mouselock.html"; |
| |
| void FullscreenControllerTest::RequestToLockMouse( |
| bool user_gesture, |
| bool last_unlocked_by_target) { |
| WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents(); |
| browser()->RequestToLockMouse(tab, user_gesture, |
| last_unlocked_by_target); |
| } |
| |
| FullscreenController* FullscreenControllerTest::GetFullscreenController() { |
| return GetExclusiveAccessManager()->fullscreen_controller(); |
| } |
| |
| ExclusiveAccessManager* FullscreenControllerTest::GetExclusiveAccessManager() { |
| return browser()->exclusive_access_manager(); |
| } |
| |
| void FullscreenControllerTest::LostMouseLock() { |
| browser()->LostMouseLock(); |
| } |
| |
| bool FullscreenControllerTest::SendEscapeToFullscreenController() { |
| return GetExclusiveAccessManager()->HandleUserPressedEscape(); |
| } |
| |
| bool FullscreenControllerTest::IsFullscreenForBrowser() { |
| return GetFullscreenController()->IsFullscreenForBrowser(); |
| } |
| |
| bool FullscreenControllerTest::IsWindowFullscreenForTabOrPending() { |
| return GetFullscreenController()->IsWindowFullscreenForTabOrPending(); |
| } |
| |
| bool FullscreenControllerTest::IsMouseLockPermissionRequested() { |
| ExclusiveAccessBubbleType type = GetExclusiveAccessBubbleType(); |
| bool mouse_lock = false; |
| exclusive_access_bubble::PermissionRequestedByType(type, NULL, &mouse_lock); |
| return mouse_lock; |
| } |
| |
| bool FullscreenControllerTest::IsFullscreenPermissionRequested() { |
| ExclusiveAccessBubbleType type = GetExclusiveAccessBubbleType(); |
| bool fullscreen = false; |
| exclusive_access_bubble::PermissionRequestedByType(type, &fullscreen, NULL); |
| return fullscreen; |
| } |
| |
| ExclusiveAccessBubbleType |
| FullscreenControllerTest::GetExclusiveAccessBubbleType() { |
| return GetExclusiveAccessManager()->GetExclusiveAccessExitBubbleType(); |
| } |
| |
| bool FullscreenControllerTest::IsFullscreenBubbleDisplayed() { |
| return GetExclusiveAccessBubbleType() != EXCLUSIVE_ACCESS_BUBBLE_TYPE_NONE; |
| } |
| |
| bool FullscreenControllerTest::IsFullscreenBubbleDisplayingButtons() { |
| return exclusive_access_bubble::ShowButtonsForType( |
| GetExclusiveAccessBubbleType()); |
| } |
| |
| void FullscreenControllerTest::AcceptCurrentFullscreenOrMouseLockRequest() { |
| GetExclusiveAccessManager()->OnAcceptExclusiveAccessPermission(); |
| } |
| |
| void FullscreenControllerTest::DenyCurrentFullscreenOrMouseLockRequest() { |
| GetExclusiveAccessManager()->OnDenyExclusiveAccessPermission(); |
| } |
| |
| void FullscreenControllerTest::GoBack() { |
| content::TestNavigationObserver observer( |
| browser()->tab_strip_model()->GetActiveWebContents(), 1); |
| chrome::GoBack(browser(), CURRENT_TAB); |
| observer.Wait(); |
| } |
| |
| void FullscreenControllerTest::Reload() { |
| content::TestNavigationObserver observer( |
| browser()->tab_strip_model()->GetActiveWebContents(), 1); |
| chrome::Reload(browser(), CURRENT_TAB); |
| observer.Wait(); |
| } |
| |
| void FullscreenControllerTest::SetPrivilegedFullscreen(bool is_privileged) { |
| GetFullscreenController()->SetPrivilegedFullscreenForTesting(is_privileged); |
| } |