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

Unified Diff: chrome/renderer/translate_helper_unittest.cc

Issue 3150034: GTTF: move tests that use WebKit from unit_tests to browser_tests... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/renderer/translate_helper_browsertest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/translate_helper_unittest.cc
===================================================================
--- chrome/renderer/translate_helper_unittest.cc (revision 57231)
+++ chrome/renderer/translate_helper_unittest.cc (working copy)
@@ -1,287 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/common/chrome_constants.h"
-#include "chrome/renderer/translate_helper.h"
-#include "chrome/test/render_view_test.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using testing::AtLeast;
-using testing::Return;
-
-class TestTranslateHelper : public TranslateHelper {
- public:
- explicit TestTranslateHelper(RenderView* render_view)
- : TranslateHelper(render_view) {
- }
-
- virtual bool DontDelayTasks() { return true; }
-
- MOCK_METHOD0(IsTranslateLibAvailable, bool());
- MOCK_METHOD0(IsTranslateLibReady, bool());
- MOCK_METHOD0(HasTranslationFinished, bool());
- MOCK_METHOD0(HasTranslationFailed, bool());
- MOCK_METHOD0(GetOriginalPageLanguage, std::string());
- MOCK_METHOD0(StartTranslation, bool());
-
- private:
- DISALLOW_COPY_AND_ASSIGN(TestTranslateHelper);
-};
-
-class TranslateHelperTest : public RenderViewTest {
- public:
- TranslateHelperTest() {}
-
- protected:
- virtual void SetUp() {
- RenderViewTest::SetUp();
- translate_helper_.reset(new TestTranslateHelper(view_));
- }
-
- bool GetPageTranslatedMessage(int* page_id,
- std::string* original_lang,
- std::string* target_lang,
- TranslateErrors::Type* error) {
- const IPC::Message* message = render_thread_.sink().
- GetUniqueMessageMatching(ViewHostMsg_PageTranslated::ID);
- if (!message)
- return false;
- Tuple4<int, std::string, std::string, TranslateErrors::Type>
- translate_param;
- ViewHostMsg_PageTranslated::Read(message, &translate_param);
- if (page_id)
- *page_id = translate_param.a;
- if (original_lang)
- *original_lang = translate_param.b;
- if (target_lang)
- *target_lang = translate_param.c;
- if (error)
- *error = translate_param.d;
- return true;
- }
-
- scoped_ptr<TestTranslateHelper> translate_helper_;
-};
-
-// Tests that the browser gets notified of the translation failure if the
-// translate library fails/times-out during initialization.
-TEST_F(TranslateHelperTest, TranslateLibNeverReady) {
- // We make IsTranslateLibAvailable true so we don't attempt to inject the
- // library.
- EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable())
- .Times(AtLeast(1))
- .WillRepeatedly(Return(true));
-
- EXPECT_CALL(*translate_helper_, IsTranslateLibReady())
- .Times(AtLeast(5)) // See kMaxTranslateInitCheckAttempts in
- // translate_helper.cc
- .WillRepeatedly(Return(false));
-
- translate_helper_->TranslatePage(view_->page_id(), "en", "fr", std::string());
- MessageLoop::current()->RunAllPending();
-
- int page_id;
- TranslateErrors::Type error;
- ASSERT_TRUE(GetPageTranslatedMessage(&page_id, NULL, NULL, &error));
- EXPECT_EQ(view_->page_id(), page_id);
- EXPECT_EQ(TranslateErrors::INITIALIZATION_ERROR, error);
-}
-
-// Tests that the browser gets notified of the translation success when the
-// translation succeeds.
-TEST_F(TranslateHelperTest, TranslateSuccess) {
- // We make IsTranslateLibAvailable true so we don't attempt to inject the
- // library.
- EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable())
- .Times(AtLeast(1))
- .WillRepeatedly(Return(true));
-
- EXPECT_CALL(*translate_helper_, IsTranslateLibReady())
- .WillOnce(Return(false))
- .WillOnce(Return(true));
-
- EXPECT_CALL(*translate_helper_, StartTranslation()).WillOnce(Return(true));
-
- // Succeed after few checks.
- EXPECT_CALL(*translate_helper_, HasTranslationFailed())
- .WillRepeatedly(Return(false));
- EXPECT_CALL(*translate_helper_, HasTranslationFinished())
- .WillOnce(Return(false))
- .WillOnce(Return(false))
- .WillOnce(Return(true));
-
- std::string original_lang("en");
- std::string target_lang("fr");
- translate_helper_->TranslatePage(view_->page_id(), original_lang, target_lang,
- std::string());
- MessageLoop::current()->RunAllPending();
-
- int page_id;
- std::string received_original_lang;
- std::string received_target_lang;
- TranslateErrors::Type error;
- ASSERT_TRUE(GetPageTranslatedMessage(&page_id,
- &received_original_lang,
- &received_target_lang,
- &error));
- EXPECT_EQ(view_->page_id(), page_id);
- EXPECT_EQ(original_lang, received_original_lang);
- EXPECT_EQ(target_lang, received_target_lang);
- EXPECT_EQ(TranslateErrors::NONE, error);
-}
-
-// Tests that the browser gets notified of the translation failure when the
-// translation fails.
-TEST_F(TranslateHelperTest, TranslateFailure) {
- // We make IsTranslateLibAvailable true so we don't attempt to inject the
- // library.
- EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable())
- .Times(AtLeast(1))
- .WillRepeatedly(Return(true));
-
- EXPECT_CALL(*translate_helper_, IsTranslateLibReady())
- .WillOnce(Return(true));
-
- EXPECT_CALL(*translate_helper_, StartTranslation()).WillOnce(Return(true));
-
- // Fail after few checks.
- EXPECT_CALL(*translate_helper_, HasTranslationFailed())
- .WillOnce(Return(false))
- .WillOnce(Return(false))
- .WillOnce(Return(false))
- .WillOnce(Return(true));
-
- EXPECT_CALL(*translate_helper_, HasTranslationFinished())
- .Times(AtLeast(1))
- .WillRepeatedly(Return(false));
-
- translate_helper_->TranslatePage(view_->page_id(), "en", "fr", std::string());
- MessageLoop::current()->RunAllPending();
-
- int page_id;
- TranslateErrors::Type error;
- ASSERT_TRUE(GetPageTranslatedMessage(&page_id, NULL, NULL, &error));
- EXPECT_EQ(view_->page_id(), page_id);
- EXPECT_EQ(TranslateErrors::TRANSLATION_ERROR, error);
-}
-
-// Tests that when the browser translate a page for which the language is
-// undefined we query the translate element to get the language.
-TEST_F(TranslateHelperTest, UndefinedSourceLang) {
- // We make IsTranslateLibAvailable true so we don't attempt to inject the
- // library.
- EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable())
- .Times(AtLeast(1))
- .WillRepeatedly(Return(true));
-
- EXPECT_CALL(*translate_helper_, IsTranslateLibReady())
- .WillOnce(Return(true));
-
- EXPECT_CALL(*translate_helper_, GetOriginalPageLanguage())
- .WillOnce(Return("de"));
-
- EXPECT_CALL(*translate_helper_, StartTranslation()).WillOnce(Return(true));
- EXPECT_CALL(*translate_helper_, HasTranslationFailed())
- .WillOnce(Return(false));
- EXPECT_CALL(*translate_helper_, HasTranslationFinished())
- .Times(AtLeast(1))
- .WillRepeatedly(Return(true));
-
- translate_helper_->TranslatePage(view_->page_id(),
- chrome::kUnknownLanguageCode, "fr",
- std::string());
- MessageLoop::current()->RunAllPending();
-
- int page_id;
- TranslateErrors::Type error;
- std::string original_lang;
- std::string target_lang;
- ASSERT_TRUE(GetPageTranslatedMessage(&page_id, &original_lang, &target_lang,
- &error));
- EXPECT_EQ(view_->page_id(), page_id);
- EXPECT_EQ("de", original_lang);
- EXPECT_EQ("fr", target_lang);
- EXPECT_EQ(TranslateErrors::NONE, error);
-}
-
-// Tests that starting a translation while a similar one is pending does not
-// break anything.
-TEST_F(TranslateHelperTest, MultipleSimilarTranslations) {
- // We make IsTranslateLibAvailable true so we don't attempt to inject the
- // library.
- EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable())
- .Times(AtLeast(1))
- .WillRepeatedly(Return(true));
-
- EXPECT_CALL(*translate_helper_, IsTranslateLibReady())
- .WillRepeatedly(Return(true));
- EXPECT_CALL(*translate_helper_, StartTranslation())
- .WillRepeatedly(Return(true));
- EXPECT_CALL(*translate_helper_, HasTranslationFailed())
- .WillRepeatedly(Return(false));
- EXPECT_CALL(*translate_helper_, HasTranslationFinished())
- .WillOnce(Return(true));
-
- std::string original_lang("en");
- std::string target_lang("fr");
- translate_helper_->TranslatePage(view_->page_id(), original_lang, target_lang,
- std::string());
- // While this is running call again TranslatePage to make sure noting bad
- // happens.
- translate_helper_->TranslatePage(view_->page_id(), original_lang, target_lang,
- std::string());
- MessageLoop::current()->RunAllPending();
-
- int page_id;
- std::string received_original_lang;
- std::string received_target_lang;
- TranslateErrors::Type error;
- ASSERT_TRUE(GetPageTranslatedMessage(&page_id,
- &received_original_lang,
- &received_target_lang,
- &error));
- EXPECT_EQ(view_->page_id(), page_id);
- EXPECT_EQ(original_lang, received_original_lang);
- EXPECT_EQ(target_lang, received_target_lang);
- EXPECT_EQ(TranslateErrors::NONE, error);
-}
-
-// Tests that starting a translation while a different one is pending works.
-TEST_F(TranslateHelperTest, MultipleDifferentTranslations) {
- EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable())
- .Times(AtLeast(1))
- .WillRepeatedly(Return(true));
- EXPECT_CALL(*translate_helper_, IsTranslateLibReady())
- .WillRepeatedly(Return(true));
- EXPECT_CALL(*translate_helper_, StartTranslation())
- .WillRepeatedly(Return(true));
- EXPECT_CALL(*translate_helper_, HasTranslationFailed())
- .WillRepeatedly(Return(false));
- EXPECT_CALL(*translate_helper_, HasTranslationFinished())
- .WillOnce(Return(true));
-
- std::string original_lang("en");
- std::string target_lang("fr");
- translate_helper_->TranslatePage(view_->page_id(), original_lang, target_lang,
- std::string());
- // While this is running call again TranslatePage with a new target lang.
- std::string new_target_lang("de");
- translate_helper_->TranslatePage(view_->page_id(), original_lang,
- new_target_lang, std::string());
- MessageLoop::current()->RunAllPending();
-
- int page_id;
- std::string received_original_lang;
- std::string received_target_lang;
- TranslateErrors::Type error;
- ASSERT_TRUE(GetPageTranslatedMessage(&page_id,
- &received_original_lang,
- &received_target_lang,
- &error));
- EXPECT_EQ(view_->page_id(), page_id);
- EXPECT_EQ(original_lang, received_original_lang);
- EXPECT_EQ(new_target_lang, received_target_lang);
- EXPECT_EQ(TranslateErrors::NONE, error);
-}
« no previous file with comments | « chrome/renderer/translate_helper_browsertest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698