Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(64)

Side by Side Diff: components/translate/core/browser/language_state_unittest.cc

Issue 133273029: Move LanguageState to the translate component (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "chrome/browser/tab_contents/language_state.h" 5 #include "components/translate/core/browser/language_state.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "chrome/browser/tab_contents/language_state_observer.h" 8 #include "components/translate/core/browser/translate_client.h"
9 #include "chrome/browser/ui/tabs/tab_strip_model.h"
10 #include "chrome/test/base/browser_with_test_window_test.h"
11 #include "content/public/browser/web_contents.h"
12 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
13 10
14 namespace { 11 namespace {
15 12
16 class MockLanguageStateObserver : public LanguageStateObserver { 13 class MockTranslateClient : public TranslateClient {
17 public: 14 public:
18 MockLanguageStateObserver() 15 MockTranslateClient()
19 : on_is_page_translated_changed_called_(false), 16 : on_is_page_translated_changed_called_(false),
20 on_translate_enabled_changed_called_(false) { 17 on_translate_enabled_changed_called_(false) {
21 } 18 }
22 19
23 virtual ~MockLanguageStateObserver() {} 20 void Reset() {
21 on_is_page_translated_changed_called_ = false;
22 on_translate_enabled_changed_called_ = false;
23 }
24 24
25 virtual void OnIsPageTranslatedChanged( 25 virtual ~MockTranslateClient() {}
26 content::WebContents* source) OVERRIDE { 26
27 virtual void OnIsPageTranslatedChanged() OVERRIDE {
27 on_is_page_translated_changed_called_ = true; 28 on_is_page_translated_changed_called_ = true;
28 } 29 }
29 30
30 virtual void OnTranslateEnabledChanged( 31 virtual void OnTranslateEnabledChanged() OVERRIDE {
31 content::WebContents* source) OVERRIDE {
32 on_translate_enabled_changed_called_ = true; 32 on_translate_enabled_changed_called_ = true;
33 } 33 }
34 34
35 virtual bool IsLinkNavigation() OVERRIDE {
36 return false;
37 }
38
35 bool on_is_page_translated_changed_called() const { 39 bool on_is_page_translated_changed_called() const {
36 return on_is_page_translated_changed_called_; 40 return on_is_page_translated_changed_called_;
37 } 41 }
38 42
39 bool on_translate_enabled_changed_called() const { 43 bool on_translate_enabled_changed_called() const {
40 return on_translate_enabled_changed_called_; 44 return on_translate_enabled_changed_called_;
41 } 45 }
42 46
43 private: 47 private:
44 bool on_is_page_translated_changed_called_; 48 bool on_is_page_translated_changed_called_;
45 bool on_translate_enabled_changed_called_; 49 bool on_translate_enabled_changed_called_;
46 50
47 DISALLOW_COPY_AND_ASSIGN(MockLanguageStateObserver); 51 DISALLOW_COPY_AND_ASSIGN(MockTranslateClient);
48 }; 52 };
49 53
50 } // namespace 54 } // namespace
51 55
52 typedef BrowserWithTestWindowTest LanguageStateTest; 56 TEST(LanguageStateTest, IsPageTranslated) {
53 57 scoped_ptr<MockTranslateClient> client(
54 TEST_F(LanguageStateTest, IsPageTranslated) { 58 new MockTranslateClient);
55 LanguageState language_state(NULL); 59 LanguageState language_state(client.get());
56 EXPECT_FALSE(language_state.IsPageTranslated()); 60 EXPECT_FALSE(language_state.IsPageTranslated());
57 61
58 // Navigate to a French page. 62 // Navigate to a French page.
59 language_state.LanguageDetermined("fr", true); 63 language_state.LanguageDetermined("fr", true);
60 EXPECT_EQ("fr", language_state.original_language()); 64 EXPECT_EQ("fr", language_state.original_language());
61 EXPECT_EQ("fr", language_state.current_language()); 65 EXPECT_EQ("fr", language_state.current_language());
62 EXPECT_FALSE(language_state.IsPageTranslated()); 66 EXPECT_FALSE(language_state.IsPageTranslated());
63 67
64 // Translate the page into English. 68 // Translate the page into English.
65 language_state.SetCurrentLanguage("en"); 69 language_state.SetCurrentLanguage("en");
66 EXPECT_EQ("fr", language_state.original_language()); 70 EXPECT_EQ("fr", language_state.original_language());
67 EXPECT_EQ("en", language_state.current_language()); 71 EXPECT_EQ("en", language_state.current_language());
68 EXPECT_TRUE(language_state.IsPageTranslated()); 72 EXPECT_TRUE(language_state.IsPageTranslated());
69 73
70 // Move on another page in Japanese. 74 // Move on another page in Japanese.
71 language_state.LanguageDetermined("ja", true); 75 language_state.LanguageDetermined("ja", true);
72 EXPECT_EQ("ja", language_state.original_language()); 76 EXPECT_EQ("ja", language_state.original_language());
73 EXPECT_EQ("ja", language_state.current_language()); 77 EXPECT_EQ("ja", language_state.current_language());
74 EXPECT_FALSE(language_state.IsPageTranslated()); 78 EXPECT_FALSE(language_state.IsPageTranslated());
75 } 79 }
76 80
77 TEST_F(LanguageStateTest, Observer) { 81 TEST(LanguageStateTest, Client) {
78 GURL url("http://foo/");
79 AddTab(browser(), url);
80 content::NavigationController& navigation_controller =
81 browser()->tab_strip_model()->GetWebContentsAt(0)->GetController();
82 82
83 scoped_ptr<MockLanguageStateObserver> observer( 83 scoped_ptr<MockTranslateClient> client(
84 new MockLanguageStateObserver); 84 new MockTranslateClient);
85 LanguageState language_state(&navigation_controller); 85 LanguageState language_state(client.get());
86 language_state.set_observer(observer.get());
87 86
88 // Enable/Disable translate. 87 // Enable/Disable translate.
89 EXPECT_FALSE(language_state.translate_enabled()); 88 EXPECT_FALSE(language_state.translate_enabled());
90 EXPECT_FALSE(observer->on_translate_enabled_changed_called()); 89 EXPECT_FALSE(client->on_translate_enabled_changed_called());
91 language_state.SetTranslateEnabled(true); 90 language_state.SetTranslateEnabled(true);
92 EXPECT_TRUE(language_state.translate_enabled()); 91 EXPECT_TRUE(language_state.translate_enabled());
93 EXPECT_TRUE(observer->on_translate_enabled_changed_called()); 92 EXPECT_TRUE(client->on_translate_enabled_changed_called());
94 93
95 observer.reset(new MockLanguageStateObserver); 94 client->Reset();
96 language_state.set_observer(observer.get());
97 language_state.SetTranslateEnabled(false); 95 language_state.SetTranslateEnabled(false);
98 EXPECT_FALSE(language_state.translate_enabled()); 96 EXPECT_FALSE(language_state.translate_enabled());
99 EXPECT_TRUE(observer->on_translate_enabled_changed_called()); 97 EXPECT_TRUE(client->on_translate_enabled_changed_called());
100 98
101 // Navigate to a French page. 99 // Navigate to a French page.
102 observer.reset(new MockLanguageStateObserver); 100 client->Reset();
103 language_state.set_observer(observer.get());
104 language_state.LanguageDetermined("fr", true); 101 language_state.LanguageDetermined("fr", true);
105 EXPECT_FALSE(language_state.translate_enabled()); 102 EXPECT_FALSE(language_state.translate_enabled());
106 EXPECT_FALSE(observer->on_is_page_translated_changed_called()); 103 EXPECT_FALSE(client->on_is_page_translated_changed_called());
107 EXPECT_FALSE(observer->on_translate_enabled_changed_called()); 104 EXPECT_FALSE(client->on_translate_enabled_changed_called());
108 105
109 // Translate. 106 // Translate.
110 language_state.SetCurrentLanguage("en"); 107 language_state.SetCurrentLanguage("en");
111 EXPECT_TRUE(language_state.IsPageTranslated()); 108 EXPECT_TRUE(language_state.IsPageTranslated());
112 EXPECT_TRUE(observer->on_is_page_translated_changed_called()); 109 EXPECT_TRUE(client->on_is_page_translated_changed_called());
113 110
114 // Translate feature must be enabled after an actual translation. 111 // Translate feature must be enabled after an actual translation.
115 EXPECT_TRUE(language_state.translate_enabled()); 112 EXPECT_TRUE(language_state.translate_enabled());
116 EXPECT_TRUE(observer->on_translate_enabled_changed_called()); 113 EXPECT_TRUE(client->on_translate_enabled_changed_called());
117 } 114 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698