| Index: chrome/browser/ui/views/translate/translate_bubble_view_unittest.cc
|
| diff --git a/chrome/browser/ui/views/translate/translate_bubble_view_unittest.cc b/chrome/browser/ui/views/translate/translate_bubble_view_unittest.cc
|
| index 0b84c1bc4c10d5ab10ea88d7ace74fa5ba0d66a8..2df369f76c966b55bcad0470d217d37a168d01c8 100644
|
| --- a/chrome/browser/ui/views/translate/translate_bubble_view_unittest.cc
|
| +++ b/chrome/browser/ui/views/translate/translate_bubble_view_unittest.cc
|
| @@ -27,7 +27,9 @@ class MockTranslateBubbleModel : public TranslateBubbleModel {
|
| set_always_translate_called_count_(0),
|
| translate_called_(false),
|
| revert_translation_called_(false),
|
| - translation_declined_called_(false) {
|
| + translation_declined_called_(false),
|
| + original_language_index_on_translation_(-1),
|
| + target_language_index_on_translation_(-1) {
|
| }
|
|
|
| virtual TranslateBubbleModel::ViewState GetViewState() const OVERRIDE {
|
| @@ -86,6 +88,8 @@ class MockTranslateBubbleModel : public TranslateBubbleModel {
|
|
|
| virtual void Translate() OVERRIDE {
|
| translate_called_ = true;
|
| + original_language_index_on_translation_ = original_language_index_;
|
| + target_language_index_on_translation_ = target_language_index_;
|
| }
|
|
|
| virtual void RevertTranslation() OVERRIDE {
|
| @@ -96,6 +100,12 @@ class MockTranslateBubbleModel : public TranslateBubbleModel {
|
| translation_declined_called_ = true;
|
| }
|
|
|
| + virtual bool IsPageTranslatedInCurrentPair() const OVERRIDE {
|
| + return original_language_index_on_translation_ ==
|
| + original_language_index_ &&
|
| + target_language_index_on_translation_ == target_language_index_;
|
| + }
|
| +
|
| TranslateBubbleViewStateTransition view_state_transition_;
|
| int original_language_index_;
|
| int target_language_index_;
|
| @@ -106,6 +116,8 @@ class MockTranslateBubbleModel : public TranslateBubbleModel {
|
| bool translate_called_;
|
| bool revert_translation_called_;
|
| bool translation_declined_called_;
|
| + int original_language_index_on_translation_;
|
| + int target_language_index_on_translation_;
|
| };
|
|
|
| } // namespace
|
| @@ -231,7 +243,6 @@ TEST_F(TranslateBubbleViewTest, AlwaysTranslateCheckboxAndDoneButton) {
|
| EXPECT_EQ(1, mock_model_->set_always_translate_called_count_);
|
| }
|
|
|
| -
|
| TEST_F(TranslateBubbleViewTest, DoneButton) {
|
| bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED);
|
|
|
| @@ -250,6 +261,33 @@ TEST_F(TranslateBubbleViewTest, DoneButton) {
|
| EXPECT_EQ(20, mock_model_->target_language_index_);
|
| }
|
|
|
| +TEST_F(TranslateBubbleViewTest, DoneButtonWithoutTranslating) {
|
| + EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE,
|
| + bubble_->GetViewState());
|
| +
|
| + // Translate the page once.
|
| + mock_model_->Translate();
|
| + EXPECT_TRUE(mock_model_->translate_called_);
|
| +
|
| + // Go back to the initial view.
|
| + EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE,
|
| + bubble_->GetViewState());
|
| + mock_model_->translate_called_ = false;
|
| +
|
| + EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE,
|
| + bubble_->GetViewState());
|
| + bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED);
|
| +
|
| + // Click the "Done" button with the current language pair. This time,
|
| + // translation is not performed and the view state will be back to the
|
| + // previous view.
|
| + bubble_->HandleButtonPressed(TranslateBubbleView::BUTTON_ID_DONE);
|
| + EXPECT_FALSE(mock_model_->translate_called_);
|
| +
|
| + EXPECT_EQ(TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE,
|
| + bubble_->GetViewState());
|
| +}
|
| +
|
| TEST_F(TranslateBubbleViewTest, CancelButtonReturningBeforeTranslate) {
|
| bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE);
|
| bubble_->SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED);
|
|
|