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

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

Issue 1159553007: Move Tuple to base namespace. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "base/time/time.h" 5 #include "base/time/time.h"
6 #include "chrome/renderer/chrome_isolated_world_ids.h" 6 #include "chrome/renderer/chrome_isolated_world_ids.h"
7 #include "chrome/test/base/chrome_render_view_test.h" 7 #include "chrome/test/base/chrome_render_view_test.h"
8 #include "components/translate/content/common/translate_messages.h" 8 #include "components/translate/content/common/translate_messages.h"
9 #include "components/translate/content/renderer/translate_helper.h" 9 #include "components/translate/content/renderer/translate_helper.h"
10 #include "components/translate/core/common/translate_constants.h" 10 #include "components/translate/core/common/translate_constants.h"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 ChromeRenderViewTest::TearDown(); 70 ChromeRenderViewTest::TearDown();
71 } 71 }
72 72
73 bool GetPageTranslatedMessage(std::string* original_lang, 73 bool GetPageTranslatedMessage(std::string* original_lang,
74 std::string* target_lang, 74 std::string* target_lang,
75 translate::TranslateErrors::Type* error) { 75 translate::TranslateErrors::Type* error) {
76 const IPC::Message* message = render_thread_->sink(). 76 const IPC::Message* message = render_thread_->sink().
77 GetUniqueMessageMatching(ChromeViewHostMsg_PageTranslated::ID); 77 GetUniqueMessageMatching(ChromeViewHostMsg_PageTranslated::ID);
78 if (!message) 78 if (!message)
79 return false; 79 return false;
80 Tuple<std::string, std::string, translate::TranslateErrors::Type> 80 base::Tuple<std::string, std::string, translate::TranslateErrors::Type>
81 translate_param; 81 translate_param;
82 ChromeViewHostMsg_PageTranslated::Read(message, &translate_param); 82 ChromeViewHostMsg_PageTranslated::Read(message, &translate_param);
83 if (original_lang) 83 if (original_lang)
84 *original_lang = get<0>(translate_param); 84 *original_lang = base::get<0>(translate_param);
85 if (target_lang) 85 if (target_lang)
86 *target_lang = get<1>(translate_param); 86 *target_lang = base::get<1>(translate_param);
87 if (error) 87 if (error)
88 *error = get<2>(translate_param); 88 *error = base::get<2>(translate_param);
89 return true; 89 return true;
90 } 90 }
91 91
92 TestTranslateHelper* translate_helper_; 92 TestTranslateHelper* translate_helper_;
93 93
94 private: 94 private:
95 DISALLOW_COPY_AND_ASSIGN(TranslateHelperBrowserTest); 95 DISALLOW_COPY_AND_ASSIGN(TranslateHelperBrowserTest);
96 }; 96 };
97 97
98 // Tests that the browser gets notified of the translation failure if the 98 // Tests that the browser gets notified of the translation failure if the
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 // Suppress the normal delay that occurs when the page is loaded before which 322 // Suppress the normal delay that occurs when the page is loaded before which
323 // the renderer sends the page contents to the browser. 323 // the renderer sends the page contents to the browser.
324 SendContentStateImmediately(); 324 SendContentStateImmediately();
325 325
326 LoadHTML("<html><body>A random page with random content.</body></html>"); 326 LoadHTML("<html><body>A random page with random content.</body></html>");
327 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching( 327 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching(
328 ChromeViewHostMsg_TranslateLanguageDetermined::ID); 328 ChromeViewHostMsg_TranslateLanguageDetermined::ID);
329 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); 329 ASSERT_NE(static_cast<IPC::Message*>(NULL), message);
330 ChromeViewHostMsg_TranslateLanguageDetermined::Param params; 330 ChromeViewHostMsg_TranslateLanguageDetermined::Param params;
331 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params); 331 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params);
332 EXPECT_TRUE(get<1>(params)) << "Page should be translatable."; 332 EXPECT_TRUE(base::get<1>(params)) << "Page should be translatable.";
333 render_thread_->sink().ClearMessages(); 333 render_thread_->sink().ClearMessages();
334 334
335 // Now the page specifies the META tag to prevent translation. 335 // Now the page specifies the META tag to prevent translation.
336 LoadHTML("<html><head><meta name=\"google\" value=\"notranslate\"></head>" 336 LoadHTML("<html><head><meta name=\"google\" value=\"notranslate\"></head>"
337 "<body>A random page with random content.</body></html>"); 337 "<body>A random page with random content.</body></html>");
338 message = render_thread_->sink().GetUniqueMessageMatching( 338 message = render_thread_->sink().GetUniqueMessageMatching(
339 ChromeViewHostMsg_TranslateLanguageDetermined::ID); 339 ChromeViewHostMsg_TranslateLanguageDetermined::ID);
340 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); 340 ASSERT_NE(static_cast<IPC::Message*>(NULL), message);
341 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params); 341 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params);
342 EXPECT_FALSE(get<1>(params)) << "Page should not be translatable."; 342 EXPECT_FALSE(base::get<1>(params)) << "Page should not be translatable.";
343 render_thread_->sink().ClearMessages(); 343 render_thread_->sink().ClearMessages();
344 344
345 // Try the alternate version of the META tag (content instead of value). 345 // Try the alternate version of the META tag (content instead of value).
346 LoadHTML("<html><head><meta name=\"google\" content=\"notranslate\"></head>" 346 LoadHTML("<html><head><meta name=\"google\" content=\"notranslate\"></head>"
347 "<body>A random page with random content.</body></html>"); 347 "<body>A random page with random content.</body></html>");
348 message = render_thread_->sink().GetUniqueMessageMatching( 348 message = render_thread_->sink().GetUniqueMessageMatching(
349 ChromeViewHostMsg_TranslateLanguageDetermined::ID); 349 ChromeViewHostMsg_TranslateLanguageDetermined::ID);
350 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); 350 ASSERT_NE(static_cast<IPC::Message*>(NULL), message);
351 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params); 351 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params);
352 EXPECT_FALSE(get<1>(params)) << "Page should not be translatable."; 352 EXPECT_FALSE(base::get<1>(params)) << "Page should not be translatable.";
353 } 353 }
354 354
355 // Tests that the language meta tag takes precedence over the CLD when reporting 355 // Tests that the language meta tag takes precedence over the CLD when reporting
356 // the page's language. 356 // the page's language.
357 TEST_F(ChromeRenderViewTest, LanguageMetaTag) { 357 TEST_F(ChromeRenderViewTest, LanguageMetaTag) {
358 // Suppress the normal delay that occurs when the page is loaded before which 358 // Suppress the normal delay that occurs when the page is loaded before which
359 // the renderer sends the page contents to the browser. 359 // the renderer sends the page contents to the browser.
360 SendContentStateImmediately(); 360 SendContentStateImmediately();
361 361
362 LoadHTML("<html><head><meta http-equiv=\"content-language\" content=\"es\">" 362 LoadHTML("<html><head><meta http-equiv=\"content-language\" content=\"es\">"
363 "</head><body>A random page with random content.</body></html>"); 363 "</head><body>A random page with random content.</body></html>");
364 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching( 364 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching(
365 ChromeViewHostMsg_TranslateLanguageDetermined::ID); 365 ChromeViewHostMsg_TranslateLanguageDetermined::ID);
366 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); 366 ASSERT_NE(static_cast<IPC::Message*>(NULL), message);
367 ChromeViewHostMsg_TranslateLanguageDetermined::Param params; 367 ChromeViewHostMsg_TranslateLanguageDetermined::Param params;
368 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params); 368 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params);
369 EXPECT_EQ("es", get<0>(params).adopted_language); 369 EXPECT_EQ("es", base::get<0>(params).adopted_language);
370 render_thread_->sink().ClearMessages(); 370 render_thread_->sink().ClearMessages();
371 371
372 // Makes sure we support multiple languages specified. 372 // Makes sure we support multiple languages specified.
373 LoadHTML("<html><head><meta http-equiv=\"content-language\" " 373 LoadHTML("<html><head><meta http-equiv=\"content-language\" "
374 "content=\" fr , es,en \">" 374 "content=\" fr , es,en \">"
375 "</head><body>A random page with random content.</body></html>"); 375 "</head><body>A random page with random content.</body></html>");
376 message = render_thread_->sink().GetUniqueMessageMatching( 376 message = render_thread_->sink().GetUniqueMessageMatching(
377 ChromeViewHostMsg_TranslateLanguageDetermined::ID); 377 ChromeViewHostMsg_TranslateLanguageDetermined::ID);
378 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); 378 ASSERT_NE(static_cast<IPC::Message*>(NULL), message);
379 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params); 379 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params);
380 EXPECT_EQ("fr", get<0>(params).adopted_language); 380 EXPECT_EQ("fr", base::get<0>(params).adopted_language);
381 } 381 }
382 382
383 // Tests that the language meta tag works even with non-all-lower-case. 383 // Tests that the language meta tag works even with non-all-lower-case.
384 // http://code.google.com/p/chromium/issues/detail?id=145689 384 // http://code.google.com/p/chromium/issues/detail?id=145689
385 TEST_F(ChromeRenderViewTest, LanguageMetaTagCase) { 385 TEST_F(ChromeRenderViewTest, LanguageMetaTagCase) {
386 // Suppress the normal delay that occurs when the page is loaded before which 386 // Suppress the normal delay that occurs when the page is loaded before which
387 // the renderer sends the page contents to the browser. 387 // the renderer sends the page contents to the browser.
388 SendContentStateImmediately(); 388 SendContentStateImmediately();
389 389
390 LoadHTML("<html><head><meta http-equiv=\"Content-Language\" content=\"es\">" 390 LoadHTML("<html><head><meta http-equiv=\"Content-Language\" content=\"es\">"
391 "</head><body>A random page with random content.</body></html>"); 391 "</head><body>A random page with random content.</body></html>");
392 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching( 392 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching(
393 ChromeViewHostMsg_TranslateLanguageDetermined::ID); 393 ChromeViewHostMsg_TranslateLanguageDetermined::ID);
394 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); 394 ASSERT_NE(static_cast<IPC::Message*>(NULL), message);
395 ChromeViewHostMsg_TranslateLanguageDetermined::Param params; 395 ChromeViewHostMsg_TranslateLanguageDetermined::Param params;
396 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params); 396 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params);
397 EXPECT_EQ("es", get<0>(params).adopted_language); 397 EXPECT_EQ("es", base::get<0>(params).adopted_language);
398 render_thread_->sink().ClearMessages(); 398 render_thread_->sink().ClearMessages();
399 399
400 // Makes sure we support multiple languages specified. 400 // Makes sure we support multiple languages specified.
401 LoadHTML("<html><head><meta http-equiv=\"Content-Language\" " 401 LoadHTML("<html><head><meta http-equiv=\"Content-Language\" "
402 "content=\" fr , es,en \">" 402 "content=\" fr , es,en \">"
403 "</head><body>A random page with random content.</body></html>"); 403 "</head><body>A random page with random content.</body></html>");
404 message = render_thread_->sink().GetUniqueMessageMatching( 404 message = render_thread_->sink().GetUniqueMessageMatching(
405 ChromeViewHostMsg_TranslateLanguageDetermined::ID); 405 ChromeViewHostMsg_TranslateLanguageDetermined::ID);
406 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); 406 ASSERT_NE(static_cast<IPC::Message*>(NULL), message);
407 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params); 407 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params);
408 EXPECT_EQ("fr", get<0>(params).adopted_language); 408 EXPECT_EQ("fr", base::get<0>(params).adopted_language);
409 } 409 }
410 410
411 // Tests that the language meta tag is converted to Chrome standard of dashes 411 // Tests that the language meta tag is converted to Chrome standard of dashes
412 // instead of underscores and proper capitalization. 412 // instead of underscores and proper capitalization.
413 // http://code.google.com/p/chromium/issues/detail?id=159487 413 // http://code.google.com/p/chromium/issues/detail?id=159487
414 TEST_F(ChromeRenderViewTest, LanguageCommonMistakesAreCorrected) { 414 TEST_F(ChromeRenderViewTest, LanguageCommonMistakesAreCorrected) {
415 // Suppress the normal delay that occurs when the page is loaded before which 415 // Suppress the normal delay that occurs when the page is loaded before which
416 // the renderer sends the page contents to the browser. 416 // the renderer sends the page contents to the browser.
417 SendContentStateImmediately(); 417 SendContentStateImmediately();
418 418
419 LoadHTML("<html><head><meta http-equiv='Content-Language' content='EN_us'>" 419 LoadHTML("<html><head><meta http-equiv='Content-Language' content='EN_us'>"
420 "</head><body>A random page with random content.</body></html>"); 420 "</head><body>A random page with random content.</body></html>");
421 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching( 421 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching(
422 ChromeViewHostMsg_TranslateLanguageDetermined::ID); 422 ChromeViewHostMsg_TranslateLanguageDetermined::ID);
423 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); 423 ASSERT_NE(static_cast<IPC::Message*>(NULL), message);
424 ChromeViewHostMsg_TranslateLanguageDetermined::Param params; 424 ChromeViewHostMsg_TranslateLanguageDetermined::Param params;
425 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params); 425 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params);
426 EXPECT_EQ("en", get<0>(params).adopted_language); 426 EXPECT_EQ("en", base::get<0>(params).adopted_language);
427 render_thread_->sink().ClearMessages(); 427 render_thread_->sink().ClearMessages();
428 428
429 LoadHTML("<html><head><meta http-equiv='Content-Language' content='ZH_tw'>" 429 LoadHTML("<html><head><meta http-equiv='Content-Language' content='ZH_tw'>"
430 "</head><body>A random page with random content.</body></html>"); 430 "</head><body>A random page with random content.</body></html>");
431 message = render_thread_->sink().GetUniqueMessageMatching( 431 message = render_thread_->sink().GetUniqueMessageMatching(
432 ChromeViewHostMsg_TranslateLanguageDetermined::ID); 432 ChromeViewHostMsg_TranslateLanguageDetermined::ID);
433 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); 433 ASSERT_NE(static_cast<IPC::Message*>(NULL), message);
434 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params); 434 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params);
435 EXPECT_EQ("zh-TW", get<0>(params).adopted_language); 435 EXPECT_EQ("zh-TW", base::get<0>(params).adopted_language);
436 render_thread_->sink().ClearMessages(); 436 render_thread_->sink().ClearMessages();
437 } 437 }
438 438
439 // Tests that a back navigation gets a translate language message. 439 // Tests that a back navigation gets a translate language message.
440 TEST_F(ChromeRenderViewTest, BackToTranslatablePage) { 440 TEST_F(ChromeRenderViewTest, BackToTranslatablePage) {
441 SendContentStateImmediately(); 441 SendContentStateImmediately();
442 LoadHTML("<html><head><meta http-equiv=\"content-language\" content=\"zh\">" 442 LoadHTML("<html><head><meta http-equiv=\"content-language\" content=\"zh\">"
443 "</head><body>This page is in Chinese.</body></html>"); 443 "</head><body>This page is in Chinese.</body></html>");
444 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching( 444 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching(
445 ChromeViewHostMsg_TranslateLanguageDetermined::ID); 445 ChromeViewHostMsg_TranslateLanguageDetermined::ID);
446 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); 446 ASSERT_NE(static_cast<IPC::Message*>(NULL), message);
447 ChromeViewHostMsg_TranslateLanguageDetermined::Param params; 447 ChromeViewHostMsg_TranslateLanguageDetermined::Param params;
448 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params); 448 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params);
449 EXPECT_EQ("zh", get<0>(params).adopted_language); 449 EXPECT_EQ("zh", base::get<0>(params).adopted_language);
450 render_thread_->sink().ClearMessages(); 450 render_thread_->sink().ClearMessages();
451 451
452 content::PageState back_state = GetCurrentPageState(); 452 content::PageState back_state = GetCurrentPageState();
453 453
454 LoadHTML("<html><head><meta http-equiv=\"content-language\" content=\"fr\">" 454 LoadHTML("<html><head><meta http-equiv=\"content-language\" content=\"fr\">"
455 "</head><body>This page is in French.</body></html>"); 455 "</head><body>This page is in French.</body></html>");
456 message = render_thread_->sink().GetUniqueMessageMatching( 456 message = render_thread_->sink().GetUniqueMessageMatching(
457 ChromeViewHostMsg_TranslateLanguageDetermined::ID); 457 ChromeViewHostMsg_TranslateLanguageDetermined::ID);
458 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); 458 ASSERT_NE(static_cast<IPC::Message*>(NULL), message);
459 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params); 459 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params);
460 EXPECT_EQ("fr", get<0>(params).adopted_language); 460 EXPECT_EQ("fr", base::get<0>(params).adopted_language);
461 render_thread_->sink().ClearMessages(); 461 render_thread_->sink().ClearMessages();
462 462
463 GoBack(back_state); 463 GoBack(back_state);
464 464
465 message = render_thread_->sink().GetUniqueMessageMatching( 465 message = render_thread_->sink().GetUniqueMessageMatching(
466 ChromeViewHostMsg_TranslateLanguageDetermined::ID); 466 ChromeViewHostMsg_TranslateLanguageDetermined::ID);
467 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); 467 ASSERT_NE(static_cast<IPC::Message*>(NULL), message);
468 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params); 468 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params);
469 EXPECT_EQ("zh", get<0>(params).adopted_language); 469 EXPECT_EQ("zh", base::get<0>(params).adopted_language);
470 render_thread_->sink().ClearMessages(); 470 render_thread_->sink().ClearMessages();
471 } 471 }
OLDNEW
« no previous file with comments | « chrome/renderer/spellchecker/spellcheck_provider_mac_unittest.cc ('k') | chrome/utility/shell_handler_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698