| 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 |