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

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

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