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 "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/chrome_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" |
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
360 LoadHTML("<html><head><meta http-equiv=\"content-language\" " | 360 LoadHTML("<html><head><meta http-equiv=\"content-language\" " |
361 "content=\" fr , es,en \">" | 361 "content=\" fr , es,en \">" |
362 "</head><body>A random page with random content.</body></html>"); | 362 "</head><body>A random page with random content.</body></html>"); |
363 message = render_thread_->sink().GetUniqueMessageMatching( | 363 message = render_thread_->sink().GetUniqueMessageMatching( |
364 ChromeViewHostMsg_TranslateLanguageDetermined::ID); | 364 ChromeViewHostMsg_TranslateLanguageDetermined::ID); |
365 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); | 365 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); |
366 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); | 366 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); |
367 EXPECT_EQ("fr", params.a); | 367 EXPECT_EQ("fr", params.a); |
368 } | 368 } |
369 | 369 |
| 370 // Tests that the language meta tag works even with non-all-lower-case. |
| 371 // http://code.google.com/p/chromium/issues/detail?id=145689 |
| 372 TEST_F(ChromeRenderViewTest, LanguageMetaTagCase) { |
| 373 // Suppress the normal delay that occurs when the page is loaded before which |
| 374 // the renderer sends the page contents to the browser. |
| 375 SendContentStateImmediately(); |
| 376 |
| 377 LoadHTML("<html><head><meta http-equiv=\"Content-Language\" content=\"es\">" |
| 378 "</head><body>A random page with random content.</body></html>"); |
| 379 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching( |
| 380 ChromeViewHostMsg_TranslateLanguageDetermined::ID); |
| 381 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); |
| 382 ChromeViewHostMsg_TranslateLanguageDetermined::Param params; |
| 383 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); |
| 384 EXPECT_EQ("es", params.a); |
| 385 render_thread_->sink().ClearMessages(); |
| 386 |
| 387 // Makes sure we support multiple languages specified. |
| 388 LoadHTML("<html><head><meta http-equiv=\"Content-Language\" " |
| 389 "content=\" fr , es,en \">" |
| 390 "</head><body>A random page with random content.</body></html>"); |
| 391 message = render_thread_->sink().GetUniqueMessageMatching( |
| 392 ChromeViewHostMsg_TranslateLanguageDetermined::ID); |
| 393 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); |
| 394 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); |
| 395 EXPECT_EQ("fr", params.a); |
| 396 } |
| 397 |
| 398 |
370 // Tests that a back navigation gets a translate language message. | 399 // Tests that a back navigation gets a translate language message. |
371 TEST_F(ChromeRenderViewTest, BackToTranslatablePage) { | 400 TEST_F(ChromeRenderViewTest, BackToTranslatablePage) { |
372 SendContentStateImmediately(); | 401 SendContentStateImmediately(); |
373 LoadHTML("<html><head><meta http-equiv=\"content-language\" content=\"zh\">" | 402 LoadHTML("<html><head><meta http-equiv=\"content-language\" content=\"zh\">" |
374 "</head><body>This page is in Chinese.</body></html>"); | 403 "</head><body>This page is in Chinese.</body></html>"); |
375 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching( | 404 const IPC::Message* message = render_thread_->sink().GetUniqueMessageMatching( |
376 ChromeViewHostMsg_TranslateLanguageDetermined::ID); | 405 ChromeViewHostMsg_TranslateLanguageDetermined::ID); |
377 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); | 406 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); |
378 ChromeViewHostMsg_TranslateLanguageDetermined::Param params; | 407 ChromeViewHostMsg_TranslateLanguageDetermined::Param params; |
379 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); | 408 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); |
(...skipping 12 matching lines...) Expand all Loading... |
392 GoBack(GetMainFrame()->previousHistoryItem()); | 421 GoBack(GetMainFrame()->previousHistoryItem()); |
393 | 422 |
394 message = render_thread_->sink().GetUniqueMessageMatching( | 423 message = render_thread_->sink().GetUniqueMessageMatching( |
395 ChromeViewHostMsg_TranslateLanguageDetermined::ID); | 424 ChromeViewHostMsg_TranslateLanguageDetermined::ID); |
396 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); | 425 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); |
397 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); | 426 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, ¶ms); |
398 EXPECT_EQ("zh", params.a); | 427 EXPECT_EQ("zh", params.a); |
399 render_thread_->sink().ClearMessages(); | 428 render_thread_->sink().ClearMessages(); |
400 } | 429 } |
401 | 430 |
OLD | NEW |