• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #include "components/translate/core/browser/translate_manager.h"
6 
7 #include "chrome/browser/chrome_notification_types.h"
8 #include "chrome/browser/prefs/session_startup_pref.h"
9 #include "chrome/browser/translate/chrome_translate_client.h"
10 #include "chrome/browser/translate/translate_browser_test_utils.h"
11 #include "chrome/browser/ui/browser.h"
12 #include "chrome/browser/ui/tabs/tab_strip_model.h"
13 #include "chrome/test/base/in_process_browser_test.h"
14 #include "chrome/test/base/ui_test_utils.h"
15 #include "components/translate/core/common/language_detection_details.h"
16 #include "url/gurl.h"
17 
18 class TranslateManagerBrowserTest : public InProcessBrowserTest {};
19 
20 // Test is flaky on Win http://crbug.com/166334
21 #if defined(OS_WIN)
22 #define MAYBE_PRE_TranslateSessionRestore DISABLED_PRE_TranslateSessionRestore
23 #else
24 #define MAYBE_PRE_TranslateSessionRestore PRE_TranslateSessionRestore
25 #endif
26 // Test that session restore restores the translate infobar and other translate
27 // settings.
IN_PROC_BROWSER_TEST_F(TranslateManagerBrowserTest,MAYBE_PRE_TranslateSessionRestore)28 IN_PROC_BROWSER_TEST_F(TranslateManagerBrowserTest,
29                        MAYBE_PRE_TranslateSessionRestore) {
30   test::ScopedCLDDynamicDataHarness dynamic_data_scope;
31   ASSERT_NO_FATAL_FAILURE(dynamic_data_scope.Init());
32   SessionStartupPref pref(SessionStartupPref::LAST);
33   SessionStartupPref::SetStartupPref(browser()->profile(), pref);
34 
35   content::WebContents* current_web_contents =
36       browser()->tab_strip_model()->GetActiveWebContents();
37   ChromeTranslateClient* chrome_translate_client =
38       ChromeTranslateClient::FromWebContents(current_web_contents);
39   content::Source<content::WebContents> source(current_web_contents);
40 
41   ui_test_utils::WindowedNotificationObserverWithDetails<
42     LanguageDetectionDetails>
43       fr_language_detected_signal(chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED,
44                                   source);
45 
46   GURL french_url = ui_test_utils::GetTestUrl(
47       base::FilePath(), base::FilePath(FILE_PATH_LITERAL("french_page.html")));
48   ui_test_utils::NavigateToURL(browser(), french_url);
49   fr_language_detected_signal.Wait();
50   LanguageDetectionDetails details;
51   EXPECT_TRUE(fr_language_detected_signal.GetDetailsFor(
52         source.map_key(), &details));
53   EXPECT_EQ("fr", details.adopted_language);
54   EXPECT_EQ("fr",
55             chrome_translate_client->GetLanguageState().original_language());
56 }
57 
58 #if defined (OS_WIN)
59 #define MAYBE_TranslateSessionRestore DISABLED_TranslateSessionRestore
60 #else
61 #define MAYBE_TranslateSessionRestore TranslateSessionRestore
62 #endif
IN_PROC_BROWSER_TEST_F(TranslateManagerBrowserTest,MAYBE_TranslateSessionRestore)63 IN_PROC_BROWSER_TEST_F(TranslateManagerBrowserTest,
64                        MAYBE_TranslateSessionRestore) {
65   test::ScopedCLDDynamicDataHarness dynamic_data_scope;
66   ASSERT_NO_FATAL_FAILURE(dynamic_data_scope.Init());
67   content::WebContents* current_web_contents =
68       browser()->tab_strip_model()->GetActiveWebContents();
69   content::Source<content::WebContents> source(current_web_contents);
70 
71   ui_test_utils::WindowedNotificationObserverWithDetails<
72     LanguageDetectionDetails>
73       fr_language_detected_signal(chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED,
74                                   source);
75   fr_language_detected_signal.Wait();
76 }
77