OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/translate/core/browser/language_state.h" | 5 #include "components/translate/core/browser/language_state.h" |
6 | 6 |
7 #include "base/macros.h" | 7 #include "base/macros.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "components/translate/core/browser/language_state.h" | 9 #include "components/translate/core/browser/language_state.h" |
10 #include "components/translate/core/browser/translate_driver.h" | 10 #include "components/translate/core/browser/mock_translate_driver.h" |
11 #include "testing/gtest/include/gtest/gtest.h" | 11 #include "testing/gtest/include/gtest/gtest.h" |
12 #include "url/gurl.h" | 12 #include "url/gurl.h" |
13 | 13 |
| 14 using translate::testing::MockTranslateDriver; |
| 15 |
14 namespace translate { | 16 namespace translate { |
15 | 17 |
16 namespace { | |
17 | |
18 const std::string kHtmlMimeType = "text/html"; | |
19 | |
20 class MockTranslateDriver : public TranslateDriver { | |
21 public: | |
22 MockTranslateDriver() | |
23 : on_is_page_translated_changed_called_(false), | |
24 on_translate_enabled_changed_called_(false), | |
25 language_state_(this) { | |
26 } | |
27 | |
28 void Reset() { | |
29 on_is_page_translated_changed_called_ = false; | |
30 on_translate_enabled_changed_called_ = false; | |
31 } | |
32 | |
33 virtual ~MockTranslateDriver() {} | |
34 | |
35 void OnIsPageTranslatedChanged() override { | |
36 on_is_page_translated_changed_called_ = true; | |
37 } | |
38 | |
39 void OnTranslateEnabledChanged() override { | |
40 on_translate_enabled_changed_called_ = true; | |
41 } | |
42 | |
43 bool IsLinkNavigation() override { return false; } | |
44 | |
45 void TranslatePage(int page_seq_no, | |
46 const std::string& translate_script, | |
47 const std::string& source_lang, | |
48 const std::string& target_lang) override {} | |
49 | |
50 void RevertTranslation(int page_seq_no) override {} | |
51 | |
52 bool IsOffTheRecord() override { return false; } | |
53 | |
54 const std::string& GetContentsMimeType() override { return kHtmlMimeType; } | |
55 | |
56 const GURL& GetLastCommittedURL() override { return GURL::EmptyGURL(); } | |
57 | |
58 const GURL& GetVisibleURL() override { return GURL::EmptyGURL(); } | |
59 | |
60 bool HasCurrentPage() override { return true; } | |
61 | |
62 void OpenUrlInNewTab(const GURL& url) override {} | |
63 | |
64 bool on_is_page_translated_changed_called() const { | |
65 return on_is_page_translated_changed_called_; | |
66 } | |
67 | |
68 bool on_translate_enabled_changed_called() const { | |
69 return on_translate_enabled_changed_called_; | |
70 } | |
71 | |
72 private: | |
73 bool on_is_page_translated_changed_called_; | |
74 bool on_translate_enabled_changed_called_; | |
75 LanguageState language_state_; | |
76 | |
77 DISALLOW_COPY_AND_ASSIGN(MockTranslateDriver); | |
78 }; | |
79 | |
80 } // namespace | |
81 | |
82 TEST(LanguageStateTest, IsPageTranslated) { | 18 TEST(LanguageStateTest, IsPageTranslated) { |
83 scoped_ptr<MockTranslateDriver> driver( | 19 scoped_ptr<MockTranslateDriver> driver( |
84 new MockTranslateDriver); | 20 new MockTranslateDriver); |
85 LanguageState language_state(driver.get()); | 21 LanguageState language_state(driver.get()); |
86 EXPECT_FALSE(language_state.IsPageTranslated()); | 22 EXPECT_FALSE(language_state.IsPageTranslated()); |
87 | 23 |
88 // Navigate to a French page. | 24 // Navigate to a French page. |
89 language_state.LanguageDetermined("fr", true); | 25 language_state.LanguageDetermined("fr", true); |
90 EXPECT_EQ("fr", language_state.original_language()); | 26 EXPECT_EQ("fr", language_state.original_language()); |
91 EXPECT_EQ("fr", language_state.current_language()); | 27 EXPECT_EQ("fr", language_state.current_language()); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 language_state.SetCurrentLanguage("en"); | 69 language_state.SetCurrentLanguage("en"); |
134 EXPECT_TRUE(language_state.IsPageTranslated()); | 70 EXPECT_TRUE(language_state.IsPageTranslated()); |
135 EXPECT_TRUE(driver->on_is_page_translated_changed_called()); | 71 EXPECT_TRUE(driver->on_is_page_translated_changed_called()); |
136 | 72 |
137 // Translate feature must be enabled after an actual translation. | 73 // Translate feature must be enabled after an actual translation. |
138 EXPECT_TRUE(language_state.translate_enabled()); | 74 EXPECT_TRUE(language_state.translate_enabled()); |
139 EXPECT_TRUE(driver->on_translate_enabled_changed_called()); | 75 EXPECT_TRUE(driver->on_translate_enabled_changed_called()); |
140 } | 76 } |
141 | 77 |
142 } // namespace translate | 78 } // namespace translate |
OLD | NEW |