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 #ifndef CHROME_BROWSER_UI_FULLSCREEN_FULLSCREEN_CONTROLLER_TEST_H_ 6 #define CHROME_BROWSER_UI_FULLSCREEN_FULLSCREEN_CONTROLLER_TEST_H_ 7 8 #include "chrome/browser/chrome_notification_types.h" 9 #include "chrome/browser/ui/fullscreen/fullscreen_exit_bubble_type.h" 10 #include "chrome/test/base/in_process_browser_test.h" 11 #include "content/public/browser/notification_service.h" 12 #include "content/public/test/test_utils.h" 13 14 // Observer for NOTIFICATION_FULLSCREEN_CHANGED notifications. 15 class FullscreenNotificationObserver 16 : public content::WindowedNotificationObserver { 17 public: 18 FullscreenNotificationObserver() : WindowedNotificationObserver( 19 chrome::NOTIFICATION_FULLSCREEN_CHANGED, 20 content::NotificationService::AllSources()) {} 21 protected: 22 DISALLOW_COPY_AND_ASSIGN(FullscreenNotificationObserver); 23 }; 24 25 // Observer for NOTIFICATION_MOUSE_LOCK_CHANGED notifications. 26 class MouseLockNotificationObserver 27 : public content::WindowedNotificationObserver { 28 public: 29 MouseLockNotificationObserver() : WindowedNotificationObserver( 30 chrome::NOTIFICATION_MOUSE_LOCK_CHANGED, 31 content::NotificationService::AllSources()) {} 32 protected: 33 DISALLOW_COPY_AND_ASSIGN(MouseLockNotificationObserver); 34 }; 35 36 // Test fixture with convenience functions for fullscreen and mouse lock. 37 class FullscreenControllerTest : public InProcessBrowserTest { 38 protected: 39 FullscreenControllerTest() {} 40 41 void RequestToLockMouse(bool user_gesture, 42 bool last_unlocked_by_target); 43 void LostMouseLock(); 44 bool SendEscapeToFullscreenController(); 45 bool IsFullscreenForBrowser(); 46 bool IsFullscreenForTabOrPending(); 47 bool IsMouseLockPermissionRequested(); 48 bool IsFullscreenPermissionRequested(); 49 FullscreenExitBubbleType GetFullscreenExitBubbleType(); 50 bool IsFullscreenBubbleDisplayed(); 51 bool IsFullscreenBubbleDisplayingButtons(); 52 void AcceptCurrentFullscreenOrMouseLockRequest(); 53 void DenyCurrentFullscreenOrMouseLockRequest(); 54 void GoBack(); 55 void Reload(); 56 void SetPrivilegedFullscreen(bool is_privileged); 57 static const char kFullscreenMouseLockHTML[]; 58 private: 59 void ToggleTabFullscreen_Internal(bool enter_fullscreen, 60 bool retry_until_success); 61 DISALLOW_COPY_AND_ASSIGN(FullscreenControllerTest); 62 }; 63 64 #endif // CHROME_BROWSER_UI_FULLSCREEN_FULLSCREEN_CONTROLLER_TEST_H_ 65