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

Side by Side Diff: chrome/renderer/translate_helper_browsertest.cc

Issue 8230034: Split most of RenderViewTest and associated classes into content. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix Mac build breaks. Created 9 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/common/chrome_constants.h" 5 #include "chrome/common/chrome_constants.h"
6 #include "chrome/common/render_messages.h" 6 #include "chrome/common/render_messages.h"
7 #include "chrome/renderer/translate_helper.h" 7 #include "chrome/renderer/translate_helper.h"
8 #include "chrome/test/base/render_view_test.h" 8 #include "chrome/test/base/chrome_render_view_test.h"
9 #include "content/public/renderer/render_view.h" 9 #include "content/public/renderer/render_view.h"
10 #include "testing/gmock/include/gmock/gmock.h" 10 #include "testing/gmock/include/gmock/gmock.h"
11 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
12 12
13 using testing::AtLeast; 13 using testing::AtLeast;
14 using testing::Return; 14 using testing::Return;
15 15
16 class TestTranslateHelper : public TranslateHelper { 16 class TestTranslateHelper : public TranslateHelper {
17 public: 17 public:
18 explicit TestTranslateHelper(content::RenderView* render_view) 18 explicit TestTranslateHelper(content::RenderView* render_view)
(...skipping 13 matching lines...) Expand all
32 MOCK_METHOD0(IsTranslateLibReady, bool()); 32 MOCK_METHOD0(IsTranslateLibReady, bool());
33 MOCK_METHOD0(HasTranslationFinished, bool()); 33 MOCK_METHOD0(HasTranslationFinished, bool());
34 MOCK_METHOD0(HasTranslationFailed, bool()); 34 MOCK_METHOD0(HasTranslationFailed, bool());
35 MOCK_METHOD0(GetOriginalPageLanguage, std::string()); 35 MOCK_METHOD0(GetOriginalPageLanguage, std::string());
36 MOCK_METHOD0(StartTranslation, bool()); 36 MOCK_METHOD0(StartTranslation, bool());
37 37
38 private: 38 private:
39 DISALLOW_COPY_AND_ASSIGN(TestTranslateHelper); 39 DISALLOW_COPY_AND_ASSIGN(TestTranslateHelper);
40 }; 40 };
41 41
42 class TranslateHelperTest : public RenderViewTest { 42 class TranslateHelperTest : public ChromeRenderViewTest {
43 public: 43 public:
44 TranslateHelperTest() : translate_helper_(NULL) {} 44 TranslateHelperTest() : translate_helper_(NULL) {}
45 45
46 protected: 46 protected:
47 virtual void SetUp() { 47 virtual void SetUp() {
48 RenderViewTest::SetUp(); 48 ChromeRenderViewTest::SetUp();
49 translate_helper_ = new TestTranslateHelper(view_); 49 translate_helper_ = new TestTranslateHelper(view_);
50 } 50 }
51 51
52 virtual void TearDown() {
53 delete translate_helper_;
54 ChromeRenderViewTest::TearDown();
55 }
56
52 bool GetPageTranslatedMessage(int* page_id, 57 bool GetPageTranslatedMessage(int* page_id,
53 std::string* original_lang, 58 std::string* original_lang,
54 std::string* target_lang, 59 std::string* target_lang,
55 TranslateErrors::Type* error) { 60 TranslateErrors::Type* error) {
56 const IPC::Message* message = render_thread_.sink(). 61 const IPC::Message* message = render_thread_->sink().
57 GetUniqueMessageMatching(ChromeViewHostMsg_PageTranslated::ID); 62 GetUniqueMessageMatching(ChromeViewHostMsg_PageTranslated::ID);
58 if (!message) 63 if (!message)
59 return false; 64 return false;
60 Tuple4<int, std::string, std::string, TranslateErrors::Type> 65 Tuple4<int, std::string, std::string, TranslateErrors::Type>
61 translate_param; 66 translate_param;
62 ChromeViewHostMsg_PageTranslated::Read(message, &translate_param); 67 ChromeViewHostMsg_PageTranslated::Read(message, &translate_param);
63 if (page_id) 68 if (page_id)
64 *page_id = translate_param.a; 69 *page_id = translate_param.a;
65 if (original_lang) 70 if (original_lang)
66 *original_lang = translate_param.b; 71 *original_lang = translate_param.b;
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 &received_target_lang, 297 &received_target_lang,
293 &error)); 298 &error));
294 EXPECT_EQ(view_->GetPageId(), page_id); 299 EXPECT_EQ(view_->GetPageId(), page_id);
295 EXPECT_EQ(original_lang, received_original_lang); 300 EXPECT_EQ(original_lang, received_original_lang);
296 EXPECT_EQ(new_target_lang, received_target_lang); 301 EXPECT_EQ(new_target_lang, received_target_lang);
297 EXPECT_EQ(TranslateErrors::NONE, error); 302 EXPECT_EQ(TranslateErrors::NONE, error);
298 } 303 }
299 304
300 // Tests that we send the right translatable for a page and that we respect the 305 // Tests that we send the right translatable for a page and that we respect the
301 // "no translate" meta-tag. 306 // "no translate" meta-tag.
302 TEST_F(RenderViewTest, TranslatablePage) { 307 TEST_F(ChromeRenderViewTest, TranslatablePage) {
303 // Suppress the normal delay that occurs when the page is loaded before which 308 // Suppress the normal delay that occurs when the page is loaded before which
304 // the renderer sends the page contents to the browser. 309 // the renderer sends the page contents to the browser.
305 SendContentStateImmediately(); 310 SendContentStateImmediately();
306 311
307 LoadHTML("<html><body>A random page with random content.</body></html>"); 312 LoadHTML("<html><body>A random page with random content.</body></html>");
308 ProcessPendingMessages(); 313 ProcessPendingMessages();
309 const IPC::Message* message = render_thread_.sink().GetUniqueMessageMatching( 314 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching(
310 ChromeViewHostMsg_TranslateLanguageDetermined::ID); 315 ChromeViewHostMsg_TranslateLanguageDetermined::ID);
311 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); 316 ASSERT_NE(static_cast<IPC::Message*>(NULL), message);
312 ChromeViewHostMsg_TranslateLanguageDetermined::Param params; 317 ChromeViewHostMsg_TranslateLanguageDetermined::Param params;
313 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params); 318 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params);
314 EXPECT_TRUE(params.b); // Translatable should be true. 319 EXPECT_TRUE(params.b); // Translatable should be true.
315 render_thread_.sink().ClearMessages(); 320 render_thread_->sink().ClearMessages();
316 321
317 // Now the page specifies the META tag to prevent translation. 322 // Now the page specifies the META tag to prevent translation.
318 LoadHTML("<html><head><meta name=\"google\" value=\"notranslate\"></head>" 323 LoadHTML("<html><head><meta name=\"google\" value=\"notranslate\"></head>"
319 "<body>A random page with random content.</body></html>"); 324 "<body>A random page with random content.</body></html>");
320 ProcessPendingMessages(); 325 ProcessPendingMessages();
321 message = render_thread_.sink().GetUniqueMessageMatching( 326 message = render_thread_->sink().GetUniqueMessageMatching(
322 ChromeViewHostMsg_TranslateLanguageDetermined::ID); 327 ChromeViewHostMsg_TranslateLanguageDetermined::ID);
323 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); 328 ASSERT_NE(static_cast<IPC::Message*>(NULL), message);
324 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params); 329 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params);
325 EXPECT_FALSE(params.b); // Translatable should be false. 330 EXPECT_FALSE(params.b); // Translatable should be false.
326 render_thread_.sink().ClearMessages(); 331 render_thread_->sink().ClearMessages();
327 332
328 // Try the alternate version of the META tag (content instead of value). 333 // Try the alternate version of the META tag (content instead of value).
329 LoadHTML("<html><head><meta name=\"google\" content=\"notranslate\"></head>" 334 LoadHTML("<html><head><meta name=\"google\" content=\"notranslate\"></head>"
330 "<body>A random page with random content.</body></html>"); 335 "<body>A random page with random content.</body></html>");
331 ProcessPendingMessages(); 336 ProcessPendingMessages();
332 message = render_thread_.sink().GetUniqueMessageMatching( 337 message = render_thread_->sink().GetUniqueMessageMatching(
333 ChromeViewHostMsg_TranslateLanguageDetermined::ID); 338 ChromeViewHostMsg_TranslateLanguageDetermined::ID);
334 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); 339 ASSERT_NE(static_cast<IPC::Message*>(NULL), message);
335 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params); 340 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params);
336 EXPECT_FALSE(params.b); // Translatable should be false. 341 EXPECT_FALSE(params.b); // Translatable should be false.
337 } 342 }
338 343
339 // Tests that the language meta tag takes precedence over the CLD when reporting 344 // Tests that the language meta tag takes precedence over the CLD when reporting
340 // the page's language. 345 // the page's language.
341 TEST_F(RenderViewTest, LanguageMetaTag) { 346 TEST_F(ChromeRenderViewTest, LanguageMetaTag) {
342 // Suppress the normal delay that occurs when the page is loaded before which 347 // Suppress the normal delay that occurs when the page is loaded before which
343 // the renderer sends the page contents to the browser. 348 // the renderer sends the page contents to the browser.
344 SendContentStateImmediately(); 349 SendContentStateImmediately();
345 350
346 LoadHTML("<html><head><meta http-equiv=\"content-language\" content=\"es\">" 351 LoadHTML("<html><head><meta http-equiv=\"content-language\" content=\"es\">"
347 "</head><body>A random page with random content.</body></html>"); 352 "</head><body>A random page with random content.</body></html>");
348 ProcessPendingMessages(); 353 ProcessPendingMessages();
349 const IPC::Message* message = render_thread_.sink().GetUniqueMessageMatching( 354 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching(
350 ChromeViewHostMsg_TranslateLanguageDetermined::ID); 355 ChromeViewHostMsg_TranslateLanguageDetermined::ID);
351 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); 356 ASSERT_NE(static_cast<IPC::Message*>(NULL), message);
352 ChromeViewHostMsg_TranslateLanguageDetermined::Param params; 357 ChromeViewHostMsg_TranslateLanguageDetermined::Param params;
353 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params); 358 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params);
354 EXPECT_EQ("es", params.a); 359 EXPECT_EQ("es", params.a);
355 render_thread_.sink().ClearMessages(); 360 render_thread_->sink().ClearMessages();
356 361
357 // Makes sure we support multiple languages specified. 362 // Makes sure we support multiple languages specified.
358 LoadHTML("<html><head><meta http-equiv=\"content-language\" " 363 LoadHTML("<html><head><meta http-equiv=\"content-language\" "
359 "content=\" fr , es,en \">" 364 "content=\" fr , es,en \">"
360 "</head><body>A random page with random content.</body></html>"); 365 "</head><body>A random page with random content.</body></html>");
361 ProcessPendingMessages(); 366 ProcessPendingMessages();
362 message = render_thread_.sink().GetUniqueMessageMatching( 367 message = render_thread_->sink().GetUniqueMessageMatching(
363 ChromeViewHostMsg_TranslateLanguageDetermined::ID); 368 ChromeViewHostMsg_TranslateLanguageDetermined::ID);
364 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); 369 ASSERT_NE(static_cast<IPC::Message*>(NULL), message);
365 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params); 370 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params);
366 EXPECT_EQ("fr", params.a); 371 EXPECT_EQ("fr", params.a);
367 } 372 }
OLDNEW
« no previous file with comments | « chrome/renderer/safe_browsing/malware_dom_details_browsertest.cc ('k') | chrome/test/base/chrome_render_view_test.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698