OLD | NEW |
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 "base/strings/utf_string_conversions.h" |
| 11 #include "base/test/scoped_feature_list.h" |
11 #include "chrome/browser/ui/translate/translate_bubble_model.h" | 12 #include "chrome/browser/ui/translate/translate_bubble_model.h" |
12 #include "chrome/browser/ui/translate/translate_bubble_view_state_transition.h" | 13 #include "chrome/browser/ui/translate/translate_bubble_view_state_transition.h" |
| 14 #include "components/translate/core/browser/translate_prefs.h" |
13 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
14 #include "ui/events/event_constants.h" | 16 #include "ui/events/event_constants.h" |
15 #include "ui/events/event_utils.h" | 17 #include "ui/events/event_utils.h" |
16 #include "ui/gfx/range/range.h" | 18 #include "ui/gfx/range/range.h" |
17 #include "ui/views/bubble/bubble_frame_view.h" | 19 #include "ui/views/bubble/bubble_frame_view.h" |
18 #include "ui/views/controls/button/checkbox.h" | 20 #include "ui/views/controls/button/checkbox.h" |
19 #include "ui/views/controls/combobox/combobox.h" | 21 #include "ui/views/controls/combobox/combobox.h" |
20 #include "ui/views/controls/styled_label.h" | 22 #include "ui/views/controls/styled_label.h" |
21 #include "ui/views/test/combobox_test_api.h" | 23 #include "ui/views/test/combobox_test_api.h" |
22 #include "ui/views/test/views_test_base.h" | 24 #include "ui/views/test/views_test_base.h" |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 views::Widget::InitParams params = | 149 views::Widget::InitParams params = |
148 CreateParams(views::Widget::InitParams::TYPE_WINDOW); | 150 CreateParams(views::Widget::InitParams::TYPE_WINDOW); |
149 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; | 151 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
150 | 152 |
151 anchor_widget_.reset(new views::Widget()); | 153 anchor_widget_.reset(new views::Widget()); |
152 anchor_widget_->Init(params); | 154 anchor_widget_->Init(params); |
153 anchor_widget_->Show(); | 155 anchor_widget_->Show(); |
154 | 156 |
155 mock_model_ = new MockTranslateBubbleModel( | 157 mock_model_ = new MockTranslateBubbleModel( |
156 TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE); | 158 TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE); |
157 | |
158 base::FeatureList::ClearInstanceForTesting(); | |
159 base::FeatureList::SetInstance(base::WrapUnique(new base::FeatureList)); | |
160 } | 159 } |
161 | 160 |
162 void TurnOnTranslate2016Q2UIFlag() { | 161 void TurnOnTranslate2016Q2UIFlag() { |
163 base::FeatureList::ClearInstanceForTesting(); | 162 scoped_feature_list_.InitAndEnableFeature(translate::kTranslateUI2016Q2); |
164 std::unique_ptr<base::FeatureList> feature_list(new base::FeatureList); | |
165 feature_list->InitializeFromCommandLine(translate::kTranslateUI2016Q2.name, | |
166 std::string()); | |
167 base::FeatureList::SetInstance(std::move(feature_list)); | |
168 } | 163 } |
169 | 164 |
170 void CreateAndShowBubble() { | 165 void CreateAndShowBubble() { |
171 std::unique_ptr<TranslateBubbleModel> model(mock_model_); | 166 std::unique_ptr<TranslateBubbleModel> model(mock_model_); |
172 bubble_ = new TranslateBubbleView(anchor_widget_->GetContentsView(), | 167 bubble_ = new TranslateBubbleView(anchor_widget_->GetContentsView(), |
173 std::move(model), | 168 std::move(model), |
174 translate::TranslateErrors::NONE, NULL); | 169 translate::TranslateErrors::NONE, NULL); |
175 views::BubbleDialogDelegateView::CreateBubble(bubble_)->Show(); | 170 views::BubbleDialogDelegateView::CreateBubble(bubble_)->Show(); |
176 } | 171 } |
177 | 172 |
178 void TearDown() override { | 173 void TearDown() override { |
179 bubble_->GetWidget()->CloseNow(); | 174 bubble_->GetWidget()->CloseNow(); |
180 anchor_widget_.reset(); | 175 anchor_widget_.reset(); |
181 | 176 |
182 views::ViewsTestBase::TearDown(); | 177 views::ViewsTestBase::TearDown(); |
183 } | 178 } |
184 | 179 |
185 views::Combobox* denial_combobox() { return bubble_->denial_combobox_; } | 180 views::Combobox* denial_combobox() { return bubble_->denial_combobox_; } |
186 bool denial_button_clicked() { return mock_model_->translation_declined_; } | 181 bool denial_button_clicked() { return mock_model_->translation_declined_; } |
187 | 182 |
188 std::unique_ptr<views::Widget> anchor_widget_; | 183 std::unique_ptr<views::Widget> anchor_widget_; |
189 MockTranslateBubbleModel* mock_model_; | 184 MockTranslateBubbleModel* mock_model_; |
190 TranslateBubbleView* bubble_; | 185 TranslateBubbleView* bubble_; |
| 186 base::test::ScopedFeatureList scoped_feature_list_; |
191 }; | 187 }; |
192 | 188 |
193 TEST_F(TranslateBubbleViewTest, TranslateButton) { | 189 TEST_F(TranslateBubbleViewTest, TranslateButton) { |
194 CreateAndShowBubble(); | 190 CreateAndShowBubble(); |
195 EXPECT_FALSE(mock_model_->translate_called_); | 191 EXPECT_FALSE(mock_model_->translate_called_); |
196 | 192 |
197 // Press the "Translate" button. | 193 // Press the "Translate" button. |
198 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_TRANSLATE); | 194 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_TRANSLATE); |
199 EXPECT_TRUE(mock_model_->translate_called_); | 195 EXPECT_TRUE(mock_model_->translate_called_); |
200 } | 196 } |
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
462 TEST_F(TranslateBubbleViewTest, CancelButtonReturningError) { | 458 TEST_F(TranslateBubbleViewTest, CancelButtonReturningError) { |
463 CreateAndShowBubble(); | 459 CreateAndShowBubble(); |
464 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ERROR); | 460 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ERROR); |
465 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED); | 461 bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED); |
466 | 462 |
467 // Click the "Cancel" button to go back. | 463 // Click the "Cancel" button to go back. |
468 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_ADVANCED, bubble_->GetViewState()); | 464 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_ADVANCED, bubble_->GetViewState()); |
469 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_CANCEL); | 465 bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_CANCEL); |
470 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_ERROR, bubble_->GetViewState()); | 466 EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_ERROR, bubble_->GetViewState()); |
471 } | 467 } |
OLD | NEW |