fullscreen_controller_test.cc revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
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
3// found in the LICENSE file.
4
5#include "chrome/browser/ui/fullscreen/fullscreen_controller_test.h"
6
7#include "base/command_line.h"
8#include "chrome/browser/ui/browser.h"
9#include "chrome/browser/ui/browser_commands.h"
10#include "chrome/browser/ui/browser_window.h"
11#include "chrome/browser/ui/fullscreen/fullscreen_controller.h"
12#include "chrome/browser/ui/tabs/tab_strip_model.h"
13#include "chrome/common/chrome_switches.h"
14#include "content/public/browser/web_contents.h"
15#include "content/public/test/test_navigation_observer.h"
16
17using content::WebContents;
18
19const char FullscreenControllerTest::kFullscreenMouseLockHTML[] =
20    "files/fullscreen_mouselock/fullscreen_mouselock.html";
21
22void FullscreenControllerTest::RequestToLockMouse(
23    bool user_gesture,
24    bool last_unlocked_by_target) {
25  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
26  browser()->RequestToLockMouse(tab, user_gesture,
27      last_unlocked_by_target);
28}
29
30void FullscreenControllerTest::LostMouseLock() {
31  browser()->LostMouseLock();
32}
33
34bool FullscreenControllerTest::SendEscapeToFullscreenController() {
35  return browser()->fullscreen_controller()->HandleUserPressedEscape();
36}
37
38bool FullscreenControllerTest::IsFullscreenForBrowser() {
39  return browser()->fullscreen_controller()->IsFullscreenForBrowser();
40}
41
42bool FullscreenControllerTest::IsWindowFullscreenForTabOrPending() {
43  return browser()->fullscreen_controller()->
44      IsWindowFullscreenForTabOrPending();
45}
46
47bool FullscreenControllerTest::IsMouseLockPermissionRequested() {
48  FullscreenExitBubbleType type =
49      browser()->fullscreen_controller()->GetFullscreenExitBubbleType();
50  bool mouse_lock = false;
51  fullscreen_bubble::PermissionRequestedByType(type, NULL, &mouse_lock);
52  return mouse_lock;
53}
54
55bool FullscreenControllerTest::IsFullscreenPermissionRequested() {
56  FullscreenExitBubbleType type =
57      browser()->fullscreen_controller()->GetFullscreenExitBubbleType();
58  bool fullscreen = false;
59  fullscreen_bubble::PermissionRequestedByType(type, &fullscreen, NULL);
60  return fullscreen;
61}
62
63FullscreenExitBubbleType
64    FullscreenControllerTest::GetFullscreenExitBubbleType() {
65  return browser()->fullscreen_controller()->GetFullscreenExitBubbleType();
66}
67
68bool FullscreenControllerTest::IsFullscreenBubbleDisplayed() {
69  FullscreenExitBubbleType type =
70      browser()->fullscreen_controller()->GetFullscreenExitBubbleType();
71  return type != FEB_TYPE_NONE;
72}
73
74bool FullscreenControllerTest::IsFullscreenBubbleDisplayingButtons() {
75  FullscreenExitBubbleType type =
76      browser()->fullscreen_controller()->GetFullscreenExitBubbleType();
77  return fullscreen_bubble::ShowButtonsForType(type);
78}
79
80void FullscreenControllerTest::AcceptCurrentFullscreenOrMouseLockRequest() {
81  browser()->fullscreen_controller()->OnAcceptFullscreenPermission();
82}
83
84void FullscreenControllerTest::DenyCurrentFullscreenOrMouseLockRequest() {
85  browser()->fullscreen_controller()->OnDenyFullscreenPermission();
86}
87
88void FullscreenControllerTest::GoBack() {
89  content::TestNavigationObserver observer(
90      browser()->tab_strip_model()->GetActiveWebContents(), 1);
91  chrome::GoBack(browser(), CURRENT_TAB);
92  observer.Wait();
93}
94
95void FullscreenControllerTest::Reload() {
96  content::TestNavigationObserver observer(
97      browser()->tab_strip_model()->GetActiveWebContents(), 1);
98  chrome::Reload(browser(), CURRENT_TAB);
99  observer.Wait();
100}
101
102void FullscreenControllerTest::SetPrivilegedFullscreen(bool is_privileged) {
103  browser()->fullscreen_controller()->
104      SetPrivilegedFullscreenForTesting(is_privileged);
105}
106