// Copyright (c) 2011 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. #ifndef CHROME_BROWSER_PROFILES_PROFILE_INFO_CACHE_UNITTEST_H_ #define CHROME_BROWSER_PROFILES_PROFILE_INFO_CACHE_UNITTEST_H_ #include #include "chrome/browser/profiles/profile_info_cache_observer.h" #include "chrome/test/base/testing_profile_manager.h" #include "content/public/test/test_browser_thread_bundle.h" #include "testing/gtest/include/gtest/gtest.h" class ProfileInfoCache; namespace base { class FilePath; } // Class used to test that ProfileInfoCache does not try to access any // unexpected profile names. class ProfileNameVerifierObserver : public ProfileInfoCacheObserver { public: explicit ProfileNameVerifierObserver( TestingProfileManager* testing_profile_manager); ~ProfileNameVerifierObserver() override; // ProfileInfoCacheObserver overrides: void OnProfileAdded(const base::FilePath& profile_path) override; void OnProfileWillBeRemoved(const base::FilePath& profile_path) override; void OnProfileWasRemoved(const base::FilePath& profile_path, const base::string16& profile_name) override; void OnProfileNameChanged(const base::FilePath& profile_path, const base::string16& old_profile_name) override; void OnProfileAvatarChanged(const base::FilePath& profile_path) override; private: ProfileInfoCache* GetCache(); std::set profile_names_; TestingProfileManager* testing_profile_manager_; DISALLOW_COPY_AND_ASSIGN(ProfileNameVerifierObserver); }; class ProfileInfoCacheTest : public testing::Test { protected: ProfileInfoCacheTest(); ~ProfileInfoCacheTest() override; void SetUp() override; void TearDown() override; ProfileInfoCache* GetCache(); base::FilePath GetProfilePath(const std::string& base_name); void ResetCache(); protected: TestingProfileManager testing_profile_manager_; private: content::TestBrowserThreadBundle thread_bundle_; ProfileNameVerifierObserver name_observer_; }; #endif // CHROME_BROWSER_PROFILES_PROFILE_INFO_CACHE_UNITTEST_H_