| // Copyright 2023 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_UI_STARTUP_FIRST_RUN_TEST_UTIL_H_ |
| #define CHROME_BROWSER_UI_STARTUP_FIRST_RUN_TEST_UTIL_H_ |
| |
| #include "base/functional/callback_forward.h" |
| #include "build/build_config.h" |
| #include "chrome/browser/ui/profiles/profile_customization_util.h" |
| #include "chrome/test/base/in_process_browser_test.h" |
| |
| class Profile; |
| class FirstRunService; |
| |
| // Updates command line flags to make the test believe that we are on a fresh |
| // install. Intended to be called from the test body. Note that if a sentinel |
| // file exists (e.g. a PRE_Test ran) this method might have no effect. |
| void SetIsFirstRun(bool is_first_run); |
| |
| // Returns the value of the `prefs::kFirstRunFinished` local pref. |
| bool GetFirstRunFinishedPrefValue(); |
| |
| // Helps with testing the behaviour of the `FirstRunService`. |
| // |
| // In the test body, a browser window is opened, the process is marked as being |
| // in the first run (per `first_run::IsChromeFirstRun()`) and the |
| // `FirstRunService` does not exist yet. |
| class FirstRunServiceBrowserTestBase : public InProcessBrowserTest { |
| public: |
| FirstRunServiceBrowserTestBase(); |
| FirstRunServiceBrowserTestBase(const FirstRunServiceBrowserTestBase&) = |
| delete; |
| FirstRunServiceBrowserTestBase& operator=( |
| const FirstRunServiceBrowserTestBase&) = delete; |
| ~FirstRunServiceBrowserTestBase() override; |
| |
| void SetUpOnMainThread() override; |
| |
| protected: |
| Profile* profile() const; |
| FirstRunService* fre_service() const; |
| |
| // -- Utilities for checks on the profile state after the first run ---------- |
| |
| std::u16string GetProfileName() const; |
| bool IsUsingDefaultProfileName() const; |
| |
| // Returns whether the profile's name is the default one (e.g. "Person 1"). |
| // Also asserts that the name is marked as default (`IsUsingDefaultName`) |
| // according to the pattern of the actual name. |
| bool IsProfileNameDefault() const; |
| |
| private: |
| ProfileNameResolver::ScopedInfoFetchTimeoutOverride |
| profile_name_fetch_timeout_override_ = |
| ProfileNameResolver::CreateScopedInfoFetchTimeoutOverrideForTesting( |
| base::TimeDelta()); |
| }; |
| |
| #endif // CHROME_BROWSER_UI_STARTUP_FIRST_RUN_TEST_UTIL_H_ |