| OLD | NEW |
| 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.h" | 5 #include "base/time.h" |
| 6 #include "chrome/common/chrome_constants.h" | 6 #include "chrome/common/chrome_constants.h" |
| 7 #include "chrome/common/render_messages.h" | 7 #include "chrome/common/render_messages.h" |
| 8 #include "chrome/renderer/translate/translate_helper.h" | 8 #include "chrome/renderer/translate/translate_helper.h" |
| 9 #include "chrome/test/base/chrome_render_view_test.h" | 9 #include "chrome/test/base/chrome_render_view_test.h" |
| 10 #include "content/public/renderer/render_view.h" | 10 #include "content/public/renderer/render_view.h" |
| (...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 380 // the renderer sends the page contents to the browser. | 380 // the renderer sends the page contents to the browser. |
| 381 SendContentStateImmediately(); | 381 SendContentStateImmediately(); |
| 382 | 382 |
| 383 LoadHTML("<html><head><meta http-equiv=\"content-language\" content=\"es\">" | 383 LoadHTML("<html><head><meta http-equiv=\"content-language\" content=\"es\">" |
| 384 "</head><body>A random page with random content.</body></html>"); | 384 "</head><body>A random page with random content.</body></html>"); |
| 385 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching( | 385 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching( |
| 386 ChromeViewHostMsg_TranslateLanguageDetermined::ID); | 386 ChromeViewHostMsg_TranslateLanguageDetermined::ID); |
| 387 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); | 387 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); |
| 388 ChromeViewHostMsg_TranslateLanguageDetermined::Param params; | 388 ChromeViewHostMsg_TranslateLanguageDetermined::Param params; |
| 389 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); | 389 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); |
| 390 EXPECT_EQ("es", params.a); | 390 EXPECT_EQ("es", params.a.adopted_language); |
| 391 render_thread_->sink().ClearMessages(); | 391 render_thread_->sink().ClearMessages(); |
| 392 | 392 |
| 393 // Makes sure we support multiple languages specified. | 393 // Makes sure we support multiple languages specified. |
| 394 LoadHTML("<html><head><meta http-equiv=\"content-language\" " | 394 LoadHTML("<html><head><meta http-equiv=\"content-language\" " |
| 395 "content=\" fr , es,en \">" | 395 "content=\" fr , es,en \">" |
| 396 "</head><body>A random page with random content.</body></html>"); | 396 "</head><body>A random page with random content.</body></html>"); |
| 397 message = render_thread_->sink().GetUniqueMessageMatching( | 397 message = render_thread_->sink().GetUniqueMessageMatching( |
| 398 ChromeViewHostMsg_TranslateLanguageDetermined::ID); | 398 ChromeViewHostMsg_TranslateLanguageDetermined::ID); |
| 399 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); | 399 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); |
| 400 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); | 400 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); |
| 401 EXPECT_EQ("fr", params.a); | 401 EXPECT_EQ("fr", params.a.adopted_language); |
| 402 } | 402 } |
| 403 | 403 |
| 404 // Tests that the language meta tag works even with non-all-lower-case. | 404 // Tests that the language meta tag works even with non-all-lower-case. |
| 405 // http://code.google.com/p/chromium/issues/detail?id=145689 | 405 // http://code.google.com/p/chromium/issues/detail?id=145689 |
| 406 TEST_F(ChromeRenderViewTest, LanguageMetaTagCase) { | 406 TEST_F(ChromeRenderViewTest, LanguageMetaTagCase) { |
| 407 // Suppress the normal delay that occurs when the page is loaded before which | 407 // Suppress the normal delay that occurs when the page is loaded before which |
| 408 // the renderer sends the page contents to the browser. | 408 // the renderer sends the page contents to the browser. |
| 409 SendContentStateImmediately(); | 409 SendContentStateImmediately(); |
| 410 | 410 |
| 411 LoadHTML("<html><head><meta http-equiv=\"Content-Language\" content=\"es\">" | 411 LoadHTML("<html><head><meta http-equiv=\"Content-Language\" content=\"es\">" |
| 412 "</head><body>A random page with random content.</body></html>"); | 412 "</head><body>A random page with random content.</body></html>"); |
| 413 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching( | 413 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching( |
| 414 ChromeViewHostMsg_TranslateLanguageDetermined::ID); | 414 ChromeViewHostMsg_TranslateLanguageDetermined::ID); |
| 415 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); | 415 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); |
| 416 ChromeViewHostMsg_TranslateLanguageDetermined::Param params; | 416 ChromeViewHostMsg_TranslateLanguageDetermined::Param params; |
| 417 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); | 417 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); |
| 418 EXPECT_EQ("es", params.a); | 418 EXPECT_EQ("es", params.a.adopted_language); |
| 419 render_thread_->sink().ClearMessages(); | 419 render_thread_->sink().ClearMessages(); |
| 420 | 420 |
| 421 // Makes sure we support multiple languages specified. | 421 // Makes sure we support multiple languages specified. |
| 422 LoadHTML("<html><head><meta http-equiv=\"Content-Language\" " | 422 LoadHTML("<html><head><meta http-equiv=\"Content-Language\" " |
| 423 "content=\" fr , es,en \">" | 423 "content=\" fr , es,en \">" |
| 424 "</head><body>A random page with random content.</body></html>"); | 424 "</head><body>A random page with random content.</body></html>"); |
| 425 message = render_thread_->sink().GetUniqueMessageMatching( | 425 message = render_thread_->sink().GetUniqueMessageMatching( |
| 426 ChromeViewHostMsg_TranslateLanguageDetermined::ID); | 426 ChromeViewHostMsg_TranslateLanguageDetermined::ID); |
| 427 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); | 427 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); |
| 428 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); | 428 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); |
| 429 EXPECT_EQ("fr", params.a); | 429 EXPECT_EQ("fr", params.a.adopted_language); |
| 430 } | 430 } |
| 431 | 431 |
| 432 // Tests that the language meta tag is converted to Chrome standard of dashes | 432 // Tests that the language meta tag is converted to Chrome standard of dashes |
| 433 // instead of underscores and proper capitalization. | 433 // instead of underscores and proper capitalization. |
| 434 // http://code.google.com/p/chromium/issues/detail?id=159487 | 434 // http://code.google.com/p/chromium/issues/detail?id=159487 |
| 435 TEST_F(ChromeRenderViewTest, LanguageCommonMistakesAreCorrected) { | 435 TEST_F(ChromeRenderViewTest, LanguageCommonMistakesAreCorrected) { |
| 436 // Suppress the normal delay that occurs when the page is loaded before which | 436 // Suppress the normal delay that occurs when the page is loaded before which |
| 437 // the renderer sends the page contents to the browser. | 437 // the renderer sends the page contents to the browser. |
| 438 SendContentStateImmediately(); | 438 SendContentStateImmediately(); |
| 439 | 439 |
| 440 LoadHTML("<html><head><meta http-equiv='Content-Language' content='EN_us'>" | 440 LoadHTML("<html><head><meta http-equiv='Content-Language' content='EN_us'>" |
| 441 "</head><body>A random page with random content.</body></html>"); | 441 "</head><body>A random page with random content.</body></html>"); |
| 442 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching( | 442 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching( |
| 443 ChromeViewHostMsg_TranslateLanguageDetermined::ID); | 443 ChromeViewHostMsg_TranslateLanguageDetermined::ID); |
| 444 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); | 444 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); |
| 445 ChromeViewHostMsg_TranslateLanguageDetermined::Param params; | 445 ChromeViewHostMsg_TranslateLanguageDetermined::Param params; |
| 446 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); | 446 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); |
| 447 EXPECT_EQ("en-US", params.a); | 447 EXPECT_EQ("en-US", params.a.adopted_language); |
| 448 render_thread_->sink().ClearMessages(); | 448 render_thread_->sink().ClearMessages(); |
| 449 } | 449 } |
| 450 | 450 |
| 451 // Tests that a back navigation gets a translate language message. | 451 // Tests that a back navigation gets a translate language message. |
| 452 TEST_F(ChromeRenderViewTest, BackToTranslatablePage) { | 452 TEST_F(ChromeRenderViewTest, BackToTranslatablePage) { |
| 453 SendContentStateImmediately(); | 453 SendContentStateImmediately(); |
| 454 LoadHTML("<html><head><meta http-equiv=\"content-language\" content=\"zh\">" | 454 LoadHTML("<html><head><meta http-equiv=\"content-language\" content=\"zh\">" |
| 455 "</head><body>This page is in Chinese.</body></html>"); | 455 "</head><body>This page is in Chinese.</body></html>"); |
| 456 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching( | 456 const IPC::Message* 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::Param params; | 459 ChromeViewHostMsg_TranslateLanguageDetermined::Param params; |
| 460 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); | 460 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); |
| 461 EXPECT_EQ("zh", params.a); | 461 EXPECT_EQ("zh", params.a.adopted_language); |
| 462 render_thread_->sink().ClearMessages(); | 462 render_thread_->sink().ClearMessages(); |
| 463 | 463 |
| 464 LoadHTML("<html><head><meta http-equiv=\"content-language\" content=\"fr\">" | 464 LoadHTML("<html><head><meta http-equiv=\"content-language\" content=\"fr\">" |
| 465 "</head><body>This page is in French.</body></html>"); | 465 "</head><body>This page is in French.</body></html>"); |
| 466 message = render_thread_->sink().GetUniqueMessageMatching( | 466 message = render_thread_->sink().GetUniqueMessageMatching( |
| 467 ChromeViewHostMsg_TranslateLanguageDetermined::ID); | 467 ChromeViewHostMsg_TranslateLanguageDetermined::ID); |
| 468 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); | 468 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); |
| 469 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); | 469 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); |
| 470 EXPECT_EQ("fr", params.a); | 470 EXPECT_EQ("fr", params.a.adopted_language); |
| 471 render_thread_->sink().ClearMessages(); | 471 render_thread_->sink().ClearMessages(); |
| 472 | 472 |
| 473 GoBack(GetMainFrame()->previousHistoryItem()); | 473 GoBack(GetMainFrame()->previousHistoryItem()); |
| 474 | 474 |
| 475 message = render_thread_->sink().GetUniqueMessageMatching( | 475 message = render_thread_->sink().GetUniqueMessageMatching( |
| 476 ChromeViewHostMsg_TranslateLanguageDetermined::ID); | 476 ChromeViewHostMsg_TranslateLanguageDetermined::ID); |
| 477 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); | 477 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); |
| 478 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); | 478 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); |
| 479 EXPECT_EQ("zh", params.a); | 479 EXPECT_EQ("zh", params.a.adopted_language); |
| 480 render_thread_->sink().ClearMessages(); | 480 render_thread_->sink().ClearMessages(); |
| 481 } | 481 } |
| OLD | NEW |