// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "build/build_config.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_tabstrip.h" #include "chrome/browser/ui/browser_window.h" #include "chrome/browser/ui/exclusive_access/exclusive_access_test.h" #include "chrome/browser/ui/exclusive_access/fullscreen_controller.h" #include "chrome/browser/ui/exclusive_access/fullscreen_controller_state_test.h" #include "chrome/test/base/in_process_browser_test.h" #include "content/public/browser/web_contents.h" #include "content/public/common/url_constants.h" #include "content/public/test/browser_test.h" #include "content/public/test/test_utils.h" #include "testing/gtest/include/gtest/gtest.h" // FullscreenControllerStateInteractiveTest ------------------------------------ // Interactive test fixture testing Fullscreen Controller through its states. // // Used to verify that the FullscreenControllerTestWindow models the behavior // of actual windows accurately. The interactive tests are too flaky to run // on infrastructure, and so those tests are disabled. Run them with: // interactive_ui_tests // --gtest_filter="FullscreenControllerStateInteractiveTest.*" // --gtest_also_run_disabled_tests // // More context atop fullscreen_controller_state_test.h. class FullscreenControllerStateInteractiveTest : public InProcessBrowserTest, public FullscreenControllerStateTest { … }; // Soak tests ------------------------------------------------------------------ // Tests all states with all permutations of multiple events to detect lingering // state issues that would bleed over to other states. // I.E. for each state test all combinations of events E1, E2, E3. // // This produces coverage for event sequences that may happen normally but // would not be exposed by traversing to each state via TransitionToState(). // TransitionToState() always takes the same path even when multiple paths // exist. IN_PROC_BROWSER_TEST_F(FullscreenControllerStateInteractiveTest, DISABLED_TransitionsForEachState) { … } // Individual tests for each pair of state and event --------------------------- // An "empty" test is included as part of each "TEST_EVENT" because it makes // running the entire test suite less flaky on MacOS. All of the tests pass // when run individually. #if BUILDFLAG(IS_WIN) #define TEST_EVENT … #else // BUILDFLAG(IS_WIN) #define TEST_EVENT(state, event) … #endif // BUILDFLAG(IS_WIN) // Progress of tests can be examined by inserting the following line: // LOG(INFO) << GetAndClearDebugLog(); } #include "chrome/browser/ui/exclusive_access/fullscreen_controller_state_tests.h" // Specific one-off tests for known issues ------------------------------------- // Used manually to determine what happens on a platform. IN_PROC_BROWSER_TEST_F(FullscreenControllerStateInteractiveTest, DISABLED_ManualTest) { … }