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

Side by Side Diff: chrome/browser/ui/views/translate/translate_bubble_view_unittest.cc

Issue 1923143003: Implement the 2016Q2 Translate UI designe spec out in (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move close button tracking code to OnWidgetClosing() Created 4 years, 7 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/ui/views/translate/translate_bubble_view.h" 5 #include "chrome/browser/ui/views/translate/translate_bubble_view.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/strings/utf_string_conversions.h"
10 #include "chrome/browser/ui/translate/translate_bubble_model.h" 11 #include "chrome/browser/ui/translate/translate_bubble_model.h"
11 #include "chrome/browser/ui/translate/translate_bubble_view_state_transition.h" 12 #include "chrome/browser/ui/translate/translate_bubble_view_state_transition.h"
12 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
14 #include "ui/events/event_constants.h"
15 #include "ui/events/event_utils.h"
16 #include "ui/gfx/range/range.h"
17 #include "ui/views/bubble/bubble_frame_view.h"
13 #include "ui/views/controls/button/checkbox.h" 18 #include "ui/views/controls/button/checkbox.h"
14 #include "ui/views/controls/combobox/combobox.h" 19 #include "ui/views/controls/combobox/combobox.h"
20 #include "ui/views/controls/styled_label.h"
15 #include "ui/views/test/combobox_test_api.h" 21 #include "ui/views/test/combobox_test_api.h"
16 #include "ui/views/test/views_test_base.h" 22 #include "ui/views/test/views_test_base.h"
17 #include "ui/views/widget/widget.h" 23 #include "ui/views/widget/widget.h"
18 24
19 namespace { 25 namespace {
20 26
21 class MockTranslateBubbleModel : public TranslateBubbleModel { 27 class MockTranslateBubbleModel : public TranslateBubbleModel {
22 public: 28 public:
23 explicit MockTranslateBubbleModel(TranslateBubbleModel::ViewState view_state) 29 explicit MockTranslateBubbleModel(TranslateBubbleModel::ViewState view_state)
24 : view_state_transition_(view_state), 30 : view_state_transition_(view_state),
25 error_type_(translate::TranslateErrors::NONE), 31 error_type_(translate::TranslateErrors::NONE),
26 original_language_index_(0), 32 original_language_index_(0),
27 target_language_index_(1), 33 target_language_index_(1),
28 never_translate_language_(false), 34 never_translate_language_(false),
29 never_translate_site_(false), 35 never_translate_site_(false),
30 should_always_translate_(false), 36 should_always_translate_(false),
37 always_translate_checked_(false),
31 set_always_translate_called_count_(0), 38 set_always_translate_called_count_(0),
32 translate_called_(false), 39 translate_called_(false),
33 revert_translation_called_(false), 40 revert_translation_called_(false),
34 translation_declined_(false), 41 translation_declined_(false),
35 original_language_index_on_translation_(-1), 42 original_language_index_on_translation_(-1),
36 target_language_index_on_translation_(-1) {} 43 target_language_index_on_translation_(-1) {}
37 44
38 TranslateBubbleModel::ViewState GetViewState() const override { 45 TranslateBubbleModel::ViewState GetViewState() const override {
39 return view_state_transition_.view_state(); 46 return view_state_transition_.view_state();
40 } 47 }
41 48
42 void SetViewState(TranslateBubbleModel::ViewState view_state) override { 49 void SetViewState(TranslateBubbleModel::ViewState view_state) override {
43 view_state_transition_.SetViewState(view_state); 50 view_state_transition_.SetViewState(view_state);
44 } 51 }
45 52
46 void ShowError(translate::TranslateErrors::Type error_type) override { 53 void ShowError(translate::TranslateErrors::Type error_type) override {
47 error_type_ = error_type; 54 error_type_ = error_type;
48 } 55 }
49 56
50 void GoBackFromAdvanced() override { 57 void GoBackFromAdvanced() override {
51 view_state_transition_.GoBackFromAdvanced(); 58 view_state_transition_.GoBackFromAdvanced();
52 } 59 }
53 60
54 int GetNumberOfLanguages() const override { return 1000; } 61 int GetNumberOfLanguages() const override { return 1000; }
55 62
56 base::string16 GetLanguageNameAt(int index) const override { 63 base::string16 GetLanguageNameAt(int index) const override {
57 return base::string16(); 64 return base::ASCIIToUTF16("English");
58 } 65 }
59 66
60 int GetOriginalLanguageIndex() const override { 67 int GetOriginalLanguageIndex() const override {
61 return original_language_index_; 68 return original_language_index_;
62 } 69 }
63 70
64 void UpdateOriginalLanguageIndex(int index) override { 71 void UpdateOriginalLanguageIndex(int index) override {
65 original_language_index_ = index; 72 original_language_index_ = index;
66 } 73 }
67 74
68 int GetTargetLanguageIndex() const override { return target_language_index_; } 75 int GetTargetLanguageIndex() const override { return target_language_index_; }
69 76
70 void UpdateTargetLanguageIndex(int index) override { 77 void UpdateTargetLanguageIndex(int index) override {
71 target_language_index_ = index; 78 target_language_index_ = index;
72 } 79 }
73 80
74 void DeclineTranslation() override { translation_declined_ = true; } 81 void DeclineTranslation() override { translation_declined_ = true; }
75 82
76 void SetNeverTranslateLanguage(bool value) override { 83 void SetNeverTranslateLanguage(bool value) override {
77 never_translate_language_ = value; 84 never_translate_language_ = value;
78 } 85 }
79 86
80 void SetNeverTranslateSite(bool value) override { 87 void SetNeverTranslateSite(bool value) override {
81 never_translate_site_ = value; 88 never_translate_site_ = value;
82 } 89 }
83 90
91 bool GetAlwaysTranslateChecked() const override {
92 return always_translate_checked_;
93 }
84 bool ShouldAlwaysTranslate() const override { 94 bool ShouldAlwaysTranslate() const override {
85 return should_always_translate_; 95 return should_always_translate_;
86 } 96 }
87 97
88 void SetAlwaysTranslate(bool value) override { 98 void SetAlwaysTranslate(bool value) override {
89 should_always_translate_ = value; 99 should_always_translate_ = value;
90 set_always_translate_called_count_++; 100 set_always_translate_called_count_++;
91 } 101 }
92 102
93 void Translate() override { 103 void Translate() override {
(...skipping 12 matching lines...) Expand all
106 target_language_index_on_translation_ == target_language_index_; 116 target_language_index_on_translation_ == target_language_index_;
107 } 117 }
108 118
109 TranslateBubbleViewStateTransition view_state_transition_; 119 TranslateBubbleViewStateTransition view_state_transition_;
110 translate::TranslateErrors::Type error_type_; 120 translate::TranslateErrors::Type error_type_;
111 int original_language_index_; 121 int original_language_index_;
112 int target_language_index_; 122 int target_language_index_;
113 bool never_translate_language_; 123 bool never_translate_language_;
114 bool never_translate_site_; 124 bool never_translate_site_;
115 bool should_always_translate_; 125 bool should_always_translate_;
126 bool always_translate_checked_;
116 int set_always_translate_called_count_; 127 int set_always_translate_called_count_;
117 bool translate_called_; 128 bool translate_called_;
118 bool revert_translation_called_; 129 bool revert_translation_called_;
119 bool translation_declined_; 130 bool translation_declined_;
120 int original_language_index_on_translation_; 131 int original_language_index_on_translation_;
121 int target_language_index_on_translation_; 132 int target_language_index_on_translation_;
122 }; 133 };
123 134
124 } // namespace 135 } // namespace
125 136
(...skipping 10 matching lines...) Expand all
136 views::Widget::InitParams params = 147 views::Widget::InitParams params =
137 CreateParams(views::Widget::InitParams::TYPE_WINDOW); 148 CreateParams(views::Widget::InitParams::TYPE_WINDOW);
138 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 149 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
139 150
140 anchor_widget_.reset(new views::Widget()); 151 anchor_widget_.reset(new views::Widget());
141 anchor_widget_->Init(params); 152 anchor_widget_->Init(params);
142 anchor_widget_->Show(); 153 anchor_widget_->Show();
143 154
144 mock_model_ = new MockTranslateBubbleModel( 155 mock_model_ = new MockTranslateBubbleModel(
145 TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE); 156 TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE);
157
158 base::FeatureList::ClearInstanceForTesting();
159 base::FeatureList::SetInstance(base::WrapUnique(new base::FeatureList));
160 }
161
162 void TurnOnTranslate2016Q2UIFlag() {
163 base::FeatureList::ClearInstanceForTesting();
164 std::unique_ptr<base::FeatureList> feature_list(new base::FeatureList);
165 feature_list->InitializeFromCommandLine(
166 translate::kTranslateUI2016Q2.name, "");
167 base::FeatureList::SetInstance(std::move(feature_list));
168 }
169
170 void CreateAndShowBubble() {
146 std::unique_ptr<TranslateBubbleModel> model(mock_model_); 171 std::unique_ptr<TranslateBubbleModel> model(mock_model_);
147 bubble_ = new TranslateBubbleView(anchor_widget_->GetContentsView(), 172 bubble_ = new TranslateBubbleView(anchor_widget_->GetContentsView(),
148 std::move(model), 173 std::move(model),
149 translate::TranslateErrors::NONE, NULL); 174 translate::TranslateErrors::NONE, NULL);
150 views::BubbleDialogDelegateView::CreateBubble(bubble_)->Show(); 175 views::BubbleDialogDelegateView::CreateBubble(bubble_)->Show();
151 } 176 }
152 177
178
groby-ooo-7-16 2016/04/29 05:26:14 Please remove second blank line
ftang 2016/04/29 14:52:29 Done.
153 void TearDown() override { 179 void TearDown() override {
154 bubble_->GetWidget()->CloseNow(); 180 bubble_->GetWidget()->CloseNow();
155 anchor_widget_.reset(); 181 anchor_widget_.reset();
156 182
157 views::ViewsTestBase::TearDown(); 183 views::ViewsTestBase::TearDown();
158 } 184 }
159 185
160 views::Combobox* denial_combobox() { return bubble_->denial_combobox_; } 186 views::Combobox* denial_combobox() { return bubble_->denial_combobox_; }
161 bool denial_button_clicked() { return mock_model_->translation_declined_; } 187 bool denial_button_clicked() { return mock_model_->translation_declined_; }
162 188
163 std::unique_ptr<views::Widget> anchor_widget_; 189 std::unique_ptr<views::Widget> anchor_widget_;
164 MockTranslateBubbleModel* mock_model_; 190 MockTranslateBubbleModel* mock_model_;
165 TranslateBubbleView* bubble_; 191 TranslateBubbleView* bubble_;
166 }; 192 };
167 193
168 TEST_F(TranslateBubbleViewTest, TranslateButton) { 194 TEST_F(TranslateBubbleViewTest, TranslateButton) {
195 CreateAndShowBubble();
169 EXPECT_FALSE(mock_model_->translate_called_); 196 EXPECT_FALSE(mock_model_->translate_called_);
170 197
171 // Press the "Translate" button. 198 // Press the "Translate" button.
199 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_TRANSLATE);
200 EXPECT_TRUE(mock_model_->translate_called_);
201 }
202
203 TEST_F(TranslateBubbleViewTest, TranslateButtonIn2016Q2UI) {
204 TurnOnTranslate2016Q2UIFlag();
205 CreateAndShowBubble();
206 EXPECT_FALSE(mock_model_->translate_called_);
207
208 // Press the "Translate" button.
172 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_TRANSLATE); 209 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_TRANSLATE);
173 EXPECT_TRUE(mock_model_->translate_called_); 210 EXPECT_TRUE(mock_model_->translate_called_);
174 } 211 }
175 212
213 TEST_F(TranslateBubbleViewTest, CloseButtonIn2016Q2UI) {
214 TurnOnTranslate2016Q2UIFlag();
215 CreateAndShowBubble();
216 EXPECT_FALSE(mock_model_->translate_called_);
217 EXPECT_FALSE(mock_model_->translation_declined_);
218 EXPECT_FALSE(bubble_->GetWidget()->IsClosed());
219
220 // Press the "Close" button.
221 bubble_->GetBubbleFrameView()->ButtonPressed(
222 bubble_->GetBubbleFrameView()->close_,
223 ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
224 ui::EventTimeForNow(), ui::EF_NONE, ui::EF_NONE));
225
226 EXPECT_FALSE(mock_model_->translate_called_);
227 EXPECT_TRUE(mock_model_->translation_declined_);
228 }
229
176 TEST_F(TranslateBubbleViewTest, ComboboxNope) { 230 TEST_F(TranslateBubbleViewTest, ComboboxNope) {
231 CreateAndShowBubble();
177 views::test::ComboboxTestApi test_api(denial_combobox()); 232 views::test::ComboboxTestApi test_api(denial_combobox());
178 EXPECT_FALSE(denial_button_clicked()); 233 EXPECT_FALSE(denial_button_clicked());
179 EXPECT_FALSE(bubble_->GetWidget()->IsClosed()); 234 EXPECT_FALSE(bubble_->GetWidget()->IsClosed());
180 235
181 test_api.PerformActionAt(static_cast<int>( 236 test_api.PerformActionAt(static_cast<int>(
182 TranslateBubbleView::DenialComboboxIndex::DONT_TRANSLATE)); 237 TranslateBubbleView::DenialComboboxIndex::DONT_TRANSLATE));
183 EXPECT_TRUE(denial_button_clicked()); 238 EXPECT_TRUE(denial_button_clicked());
184 EXPECT_TRUE(bubble_->GetWidget()->IsClosed()); 239 EXPECT_TRUE(bubble_->GetWidget()->IsClosed());
185 } 240 }
186 241
242 TEST_F(TranslateBubbleViewTest, ComboboxNopeIn2016Q2UI) {
243 TurnOnTranslate2016Q2UIFlag();
244 CreateAndShowBubble();
245 views::test::ComboboxTestApi test_api(denial_combobox());
246 EXPECT_FALSE(denial_button_clicked());
247 EXPECT_FALSE(bubble_->GetWidget()->IsClosed());
248
249 test_api.PerformActionAt(static_cast<int>(
250 TranslateBubbleView::DenialComboboxIndex::DONT_TRANSLATE));
251
252 // In the 2016Q2 UI, we should not close nor take action.
253 EXPECT_FALSE(denial_button_clicked());
254 EXPECT_FALSE(bubble_->GetWidget()->IsClosed());
255 }
256
187 TEST_F(TranslateBubbleViewTest, ComboboxNeverTranslateLanguage) { 257 TEST_F(TranslateBubbleViewTest, ComboboxNeverTranslateLanguage) {
258 CreateAndShowBubble();
188 views::test::ComboboxTestApi test_api(denial_combobox()); 259 views::test::ComboboxTestApi test_api(denial_combobox());
189 EXPECT_FALSE(bubble_->GetWidget()->IsClosed()); 260 EXPECT_FALSE(bubble_->GetWidget()->IsClosed());
190 EXPECT_FALSE(mock_model_->never_translate_language_); 261 EXPECT_FALSE(mock_model_->never_translate_language_);
262 EXPECT_FALSE(denial_button_clicked());
263
264 test_api.PerformActionAt(static_cast<int>(
265 TranslateBubbleView::DenialComboboxIndex::NEVER_TRANSLATE_LANGUAGE));
266 EXPECT_TRUE(denial_button_clicked());
267 EXPECT_TRUE(mock_model_->never_translate_language_);
268 EXPECT_TRUE(bubble_->GetWidget()->IsClosed());
269 }
270
271 TEST_F(TranslateBubbleViewTest, ComboboxNeverTranslateLanguageIn2016Q2UI) {
272 TurnOnTranslate2016Q2UIFlag();
273 CreateAndShowBubble();
274 views::test::ComboboxTestApi test_api(denial_combobox());
275 EXPECT_FALSE(bubble_->GetWidget()->IsClosed());
276 EXPECT_FALSE(mock_model_->never_translate_language_);
191 EXPECT_FALSE(denial_button_clicked()); 277 EXPECT_FALSE(denial_button_clicked());
192 278
193 test_api.PerformActionAt(static_cast<int>( 279 test_api.PerformActionAt(static_cast<int>(
194 TranslateBubbleView::DenialComboboxIndex::NEVER_TRANSLATE_LANGUAGE)); 280 TranslateBubbleView::DenialComboboxIndex::NEVER_TRANSLATE_LANGUAGE));
195 EXPECT_TRUE(denial_button_clicked()); 281 EXPECT_TRUE(denial_button_clicked());
196 EXPECT_TRUE(mock_model_->never_translate_language_); 282 EXPECT_TRUE(mock_model_->never_translate_language_);
197 EXPECT_TRUE(bubble_->GetWidget()->IsClosed()); 283 EXPECT_TRUE(bubble_->GetWidget()->IsClosed());
198 } 284 }
199 285
200 TEST_F(TranslateBubbleViewTest, ComboboxNeverTranslateSite) { 286 TEST_F(TranslateBubbleViewTest, ComboboxNeverTranslateSite) {
287 CreateAndShowBubble();
201 views::test::ComboboxTestApi test_api(denial_combobox()); 288 views::test::ComboboxTestApi test_api(denial_combobox());
202 EXPECT_FALSE(mock_model_->never_translate_site_); 289 EXPECT_FALSE(mock_model_->never_translate_site_);
203 EXPECT_FALSE(denial_button_clicked()); 290 EXPECT_FALSE(denial_button_clicked());
291 EXPECT_FALSE(bubble_->GetWidget()->IsClosed());
292
293 test_api.PerformActionAt(static_cast<int>(
294 TranslateBubbleView::DenialComboboxIndex::NEVER_TRANSLATE_SITE));
295 EXPECT_TRUE(denial_button_clicked());
296 EXPECT_TRUE(mock_model_->never_translate_site_);
297 EXPECT_TRUE(bubble_->GetWidget()->IsClosed());
298 }
299
300 TEST_F(TranslateBubbleViewTest, ComboboxNeverTranslateSiteIn2016Q2UI) {
301 TurnOnTranslate2016Q2UIFlag();
302 CreateAndShowBubble();
303 views::test::ComboboxTestApi test_api(denial_combobox());
304 EXPECT_FALSE(mock_model_->never_translate_site_);
305 EXPECT_FALSE(denial_button_clicked());
204 EXPECT_FALSE(bubble_->GetWidget()->IsClosed()); 306 EXPECT_FALSE(bubble_->GetWidget()->IsClosed());
205 307
206 test_api.PerformActionAt(static_cast<int>( 308 test_api.PerformActionAt(static_cast<int>(
207 TranslateBubbleView::DenialComboboxIndex::NEVER_TRANSLATE_SITE)); 309 TranslateBubbleView::DenialComboboxIndex::NEVER_TRANSLATE_SITE));
208 EXPECT_TRUE(denial_button_clicked()); 310 EXPECT_TRUE(denial_button_clicked());
209 EXPECT_TRUE(mock_model_->never_translate_site_); 311 EXPECT_TRUE(mock_model_->never_translate_site_);
210 EXPECT_TRUE(bubble_->GetWidget()->IsClosed()); 312 EXPECT_TRUE(bubble_->GetWidget()->IsClosed());
211 } 313 }
212 314
213 TEST_F(TranslateBubbleViewTest, AdvancedLink) { 315 TEST_F(TranslateBubbleViewTest, AdvancedLink) {
316 CreateAndShowBubble();
214 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE, 317 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE,
215 bubble_->GetViewState()); 318 bubble_->GetViewState());
216 319
217 // Click the "Advanced" link. 320 // Click the "Advanced" link.
218 bubble_->HandleLinkClicked(TranslateBubbleView::LINK_ID_ADVANCED); 321 bubble_->HandleLinkClicked(TranslateBubbleView::LINK_ID_ADVANCED);
219 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_ADVANCED, bubble_->GetViewState()); 322 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_ADVANCED, bubble_->GetViewState());
220 } 323 }
221 324
325 TEST_F(TranslateBubbleViewTest, AdvancedLinkIn2016Q2UI) {
326 TurnOnTranslate2016Q2UIFlag();
327 CreateAndShowBubble();
328 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE,
329 bubble_->GetViewState());
330
331 // call the StyledLabelLinkClicked();
332 views::StyledLabel styled_label(base::ASCIIToUTF16("test"), nullptr);
333 bubble_->StyledLabelLinkClicked(&styled_label, gfx::Range(), ui::EF_NONE);
334 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_ADVANCED, bubble_->GetViewState());
335 }
336
222 TEST_F(TranslateBubbleViewTest, ShowOriginalButton) { 337 TEST_F(TranslateBubbleViewTest, ShowOriginalButton) {
338 CreateAndShowBubble();
223 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_AFTER_TRANSLATE); 339 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_AFTER_TRANSLATE);
224 340
225 // Click the "Show original" button to revert translation. 341 // Click the "Show original" button to revert translation.
226 EXPECT_FALSE(mock_model_->revert_translation_called_); 342 EXPECT_FALSE(mock_model_->revert_translation_called_);
227 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_SHOW_ORIGINAL); 343 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_SHOW_ORIGINAL);
228 EXPECT_TRUE(mock_model_->revert_translation_called_); 344 EXPECT_TRUE(mock_model_->revert_translation_called_);
229 } 345 }
230 346
231 TEST_F(TranslateBubbleViewTest, TryAgainButton) { 347 TEST_F(TranslateBubbleViewTest, TryAgainButton) {
348 CreateAndShowBubble();
232 bubble_->SwitchToErrorView(translate::TranslateErrors::NETWORK); 349 bubble_->SwitchToErrorView(translate::TranslateErrors::NETWORK);
233 350
234 EXPECT_EQ(translate::TranslateErrors::NETWORK, mock_model_->error_type_); 351 EXPECT_EQ(translate::TranslateErrors::NETWORK, mock_model_->error_type_);
235 352
236 // Click the "Try again" button to translate. 353 // Click the "Try again" button to translate.
237 EXPECT_FALSE(mock_model_->translate_called_); 354 EXPECT_FALSE(mock_model_->translate_called_);
238 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_TRY_AGAIN); 355 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_TRY_AGAIN);
239 EXPECT_TRUE(mock_model_->translate_called_); 356 EXPECT_TRUE(mock_model_->translate_called_);
240 } 357 }
241 358
242 TEST_F(TranslateBubbleViewTest, AlwaysTranslateCheckboxAndCancelButton) { 359 TEST_F(TranslateBubbleViewTest, AlwaysTranslateCheckboxAndCancelButton) {
360 CreateAndShowBubble();
243 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED); 361 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED);
244 362
245 // Click the "Always Translate" checkbox. Changing the state of this checkbox 363 // Click the "Always Translate" checkbox. Changing the state of this checkbox
246 // should NOT affect the model after pressing the cancel button. 364 // should NOT affect the model after pressing the cancel button.
247 365
248 // Check the initial state. 366 // Check the initial state.
249 EXPECT_FALSE(mock_model_->should_always_translate_); 367 EXPECT_FALSE(mock_model_->should_always_translate_);
250 EXPECT_EQ(0, mock_model_->set_always_translate_called_count_); 368 EXPECT_EQ(0, mock_model_->set_always_translate_called_count_);
251 EXPECT_FALSE(bubble_->always_translate_checkbox_->checked()); 369 EXPECT_FALSE(bubble_->always_translate_checkbox_->checked());
252 370
253 // Click the checkbox. The state is not saved yet. 371 // Click the checkbox. The state is not saved yet.
254 bubble_->always_translate_checkbox_->SetChecked(true); 372 bubble_->always_translate_checkbox_->SetChecked(true);
255 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_ALWAYS_TRANSLATE); 373 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_ALWAYS_TRANSLATE);
256 EXPECT_FALSE(mock_model_->should_always_translate_); 374 EXPECT_FALSE(mock_model_->should_always_translate_);
257 EXPECT_EQ(0, mock_model_->set_always_translate_called_count_); 375 EXPECT_EQ(0, mock_model_->set_always_translate_called_count_);
258 376
259 // Click the cancel button. The state is not saved. 377 // Click the cancel button. The state is not saved.
260 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_CANCEL); 378 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_CANCEL);
261 EXPECT_FALSE(mock_model_->should_always_translate_); 379 EXPECT_FALSE(mock_model_->should_always_translate_);
262 EXPECT_EQ(0, mock_model_->set_always_translate_called_count_); 380 EXPECT_EQ(0, mock_model_->set_always_translate_called_count_);
263 } 381 }
264 382
265 TEST_F(TranslateBubbleViewTest, AlwaysTranslateCheckboxAndDoneButton) { 383 TEST_F(TranslateBubbleViewTest, AlwaysTranslateCheckboxAndDoneButton) {
384 CreateAndShowBubble();
266 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED); 385 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED);
267 386
268 // Click the "Always Translate" checkbox. Changing the state of this checkbox 387 // Click the "Always Translate" checkbox. Changing the state of this checkbox
269 // should affect the model after pressing the done button. 388 // should affect the model after pressing the done button.
270 389
271 // Check the initial state. 390 // Check the initial state.
272 EXPECT_FALSE(mock_model_->should_always_translate_); 391 EXPECT_FALSE(mock_model_->should_always_translate_);
273 EXPECT_EQ(0, mock_model_->set_always_translate_called_count_); 392 EXPECT_EQ(0, mock_model_->set_always_translate_called_count_);
274 EXPECT_FALSE(bubble_->always_translate_checkbox_->checked()); 393 EXPECT_FALSE(bubble_->always_translate_checkbox_->checked());
275 394
276 // Click the checkbox. The state is not saved yet. 395 // Click the checkbox. The state is not saved yet.
277 bubble_->always_translate_checkbox_->SetChecked(true); 396 bubble_->always_translate_checkbox_->SetChecked(true);
278 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_ALWAYS_TRANSLATE); 397 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_ALWAYS_TRANSLATE);
279 EXPECT_FALSE(mock_model_->should_always_translate_); 398 EXPECT_FALSE(mock_model_->should_always_translate_);
280 EXPECT_EQ(0, mock_model_->set_always_translate_called_count_); 399 EXPECT_EQ(0, mock_model_->set_always_translate_called_count_);
281 400
282 // Click the done button. The state is saved. 401 // Click the done button. The state is saved.
283 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_DONE); 402 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_DONE);
284 EXPECT_TRUE(mock_model_->should_always_translate_); 403 EXPECT_TRUE(mock_model_->should_always_translate_);
285 EXPECT_EQ(1, mock_model_->set_always_translate_called_count_); 404 EXPECT_EQ(1, mock_model_->set_always_translate_called_count_);
286 } 405 }
287 406
288 TEST_F(TranslateBubbleViewTest, DoneButton) { 407 TEST_F(TranslateBubbleViewTest, DoneButton) {
408 CreateAndShowBubble();
289 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED); 409 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED);
290 410
291 // Click the "Done" button to translate. The selected languages by the user 411 // Click the "Done" button to translate. The selected languages by the user
292 // are applied. 412 // are applied.
293 EXPECT_FALSE(mock_model_->translate_called_); 413 EXPECT_FALSE(mock_model_->translate_called_);
294 bubble_->source_language_combobox_->SetSelectedIndex(10); 414 bubble_->source_language_combobox_->SetSelectedIndex(10);
295 bubble_->HandleComboboxPerformAction( 415 bubble_->HandleComboboxPerformAction(
296 TranslateBubbleView::COMBOBOX_ID_SOURCE_LANGUAGE); 416 TranslateBubbleView::COMBOBOX_ID_SOURCE_LANGUAGE);
297 bubble_->target_language_combobox_->SetSelectedIndex(20); 417 bubble_->target_language_combobox_->SetSelectedIndex(20);
298 bubble_->HandleComboboxPerformAction( 418 bubble_->HandleComboboxPerformAction(
299 TranslateBubbleView::COMBOBOX_ID_TARGET_LANGUAGE); 419 TranslateBubbleView::COMBOBOX_ID_TARGET_LANGUAGE);
300 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_DONE); 420 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_DONE);
301 EXPECT_TRUE(mock_model_->translate_called_); 421 EXPECT_TRUE(mock_model_->translate_called_);
302 EXPECT_EQ(10, mock_model_->original_language_index_); 422 EXPECT_EQ(10, mock_model_->original_language_index_);
303 EXPECT_EQ(20, mock_model_->target_language_index_); 423 EXPECT_EQ(20, mock_model_->target_language_index_);
304 } 424 }
305 425
306 TEST_F(TranslateBubbleViewTest, DoneButtonWithoutTranslating) { 426 TEST_F(TranslateBubbleViewTest, DoneButtonWithoutTranslating) {
427 CreateAndShowBubble();
307 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE, 428 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE,
308 bubble_->GetViewState()); 429 bubble_->GetViewState());
309 430
310 // Translate the page once. 431 // Translate the page once.
311 mock_model_->Translate(); 432 mock_model_->Translate();
312 EXPECT_TRUE(mock_model_->translate_called_); 433 EXPECT_TRUE(mock_model_->translate_called_);
313 434
314 // Go back to the initial view. 435 // Go back to the initial view.
315 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE, 436 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE,
316 bubble_->GetViewState()); 437 bubble_->GetViewState());
317 mock_model_->translate_called_ = false; 438 mock_model_->translate_called_ = false;
318 439
319 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE, 440 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE,
320 bubble_->GetViewState()); 441 bubble_->GetViewState());
321 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED); 442 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED);
322 443
323 // Click the "Done" button with the current language pair. This time, 444 // Click the "Done" button with the current language pair. This time,
324 // translation is not performed and the view state will be back to the 445 // translation is not performed and the view state will be back to the
325 // previous view. 446 // previous view.
326 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_DONE); 447 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_DONE);
327 EXPECT_FALSE(mock_model_->translate_called_); 448 EXPECT_FALSE(mock_model_->translate_called_);
328 449
329 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE, 450 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE,
330 bubble_->GetViewState()); 451 bubble_->GetViewState());
331 } 452 }
332 453
333 TEST_F(TranslateBubbleViewTest, CancelButtonReturningBeforeTranslate) { 454 TEST_F(TranslateBubbleViewTest, CancelButtonReturningBeforeTranslate) {
455 CreateAndShowBubble();
334 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE); 456 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE);
335 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED); 457 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED);
336 458
337 // Click the "Cancel" button to go back. 459 // Click the "Cancel" button to go back.
338 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_ADVANCED, bubble_->GetViewState()); 460 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_ADVANCED, bubble_->GetViewState());
339 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_CANCEL); 461 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_CANCEL);
340 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE, 462 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE,
341 bubble_->GetViewState()); 463 bubble_->GetViewState());
342 } 464 }
343 465
344 TEST_F(TranslateBubbleViewTest, CancelButtonReturningAfterTranslate) { 466 TEST_F(TranslateBubbleViewTest, CancelButtonReturningAfterTranslate) {
467 CreateAndShowBubble();
345 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_AFTER_TRANSLATE); 468 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_AFTER_TRANSLATE);
346 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED); 469 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED);
347 470
348 // Click the "Cancel" button to go back. 471 // Click the "Cancel" button to go back.
349 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_ADVANCED, bubble_->GetViewState()); 472 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_ADVANCED, bubble_->GetViewState());
350 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_CANCEL); 473 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_CANCEL);
351 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_AFTER_TRANSLATE, 474 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_AFTER_TRANSLATE,
352 bubble_->GetViewState()); 475 bubble_->GetViewState());
353 } 476 }
354 477
355 TEST_F(TranslateBubbleViewTest, CancelButtonReturningError) { 478 TEST_F(TranslateBubbleViewTest, CancelButtonReturningError) {
479 CreateAndShowBubble();
356 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ERROR); 480 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ERROR);
357 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED); 481 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED);
358 482
359 // Click the "Cancel" button to go back. 483 // Click the "Cancel" button to go back.
360 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_ADVANCED, bubble_->GetViewState()); 484 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_ADVANCED, bubble_->GetViewState());
361 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_CANCEL); 485 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_CANCEL);
362 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_ERROR, bubble_->GetViewState()); 486 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_ERROR, bubble_->GetViewState());
363 } 487 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698