#include "base/feature_list.h"
#include "base/files/file_path.h"
#include "base/functional/callback_forward.h"
#include "base/ranges/ranges.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "chrome/browser/accessibility/caption_bubble_context_browser.h"
#include "chrome/browser/accessibility/live_caption/live_caption_controller_factory.h"
#include "chrome/browser/accessibility/live_caption/live_caption_test_util.h"
#include "chrome/browser/browser_features.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/lifetime/application_lifetime.h"
#include "chrome/browser/profiles/keep_alive/profile_keep_alive_types.h"
#include "chrome/browser/profiles/keep_alive/scoped_profile_keep_alive.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/profiles/profile_test_util.h"
#include "chrome/browser/profiles/profile_window.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h"
#include "components/live_caption/caption_bubble_controller.h"
#include "components/live_caption/live_caption_controller.h"
#include "components/live_caption/pref_names.h"
#include "components/soda/pref_names.h"
#include "components/sync_preferences/pref_service_syncable.h"
#include "content/public/test/browser_test.h"
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "ash/constants/ash_features.h"
#endif
namespace captions {
namespace {
speech::LanguageCode en_us() { … }
speech::LanguageCode fr_fr() { … }
}
Profile* CreateProfile() { … }
class LiveCaptionControllerTest : public LiveCaptionBrowserTest { … };
IN_PROC_BROWSER_TEST_F(LiveCaptionControllerTest, ProfilePrefsAreRegistered) { … }
IN_PROC_BROWSER_TEST_F(LiveCaptionControllerTest,
ProfilePrefsAreRegistered_Incognito) { … }
IN_PROC_BROWSER_TEST_F(LiveCaptionControllerTest, LiveCaptionEnabledChanged) { … }
IN_PROC_BROWSER_TEST_F(LiveCaptionControllerTest,
LiveCaptionEnabledChanged_BubbleVisible) { … }
IN_PROC_BROWSER_TEST_F(LiveCaptionControllerTest, OnSodaInstalled) { … }
IN_PROC_BROWSER_TEST_F(LiveCaptionControllerTest, DISABLED_OnSodaError) { … }
IN_PROC_BROWSER_TEST_F(LiveCaptionControllerTest, DispatchTranscription) { … }
IN_PROC_BROWSER_TEST_F(LiveCaptionControllerTest, OnError) { … }
IN_PROC_BROWSER_TEST_F(LiveCaptionControllerTest, OnAudioStreamEnd) { … }
#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
IN_PROC_BROWSER_TEST_F(LiveCaptionControllerTest, OnToggleFullscreen) {
OnToggleFullscreen();
EXPECT_FALSE(HasBubbleController());
SetLiveCaptionEnabled(true);
EXPECT_TRUE(HasBubbleController());
OnToggleFullscreen();
EXPECT_TRUE(HasBubbleController());
SetLiveCaptionEnabled(false);
OnToggleFullscreen();
EXPECT_FALSE(HasBubbleController());
}
#endif
#if !BUILDFLAG(IS_CHROMEOS_ASH)
IN_PROC_BROWSER_TEST_F(LiveCaptionControllerTest,
LiveCaptionEnabledChanged_MultipleProfiles) { … }
IN_PROC_BROWSER_TEST_F(LiveCaptionControllerTest,
DispatchTranscription_MultipleProfiles) { … }
IN_PROC_BROWSER_TEST_F(LiveCaptionControllerTest, OnError_MultipleProfiles) { … }
IN_PROC_BROWSER_TEST_F(LiveCaptionControllerTest,
OnAudioStreamEnd_MultipleProfiles) { … }
#endif
}