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

Side by Side Diff: content/renderer/render_view_browsertest.cc

Issue 821453003: Update legacy Tuple-using code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: media Created 6 years 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/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/bind.h" 6 #include "base/bind.h"
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/memory/shared_memory.h" 8 #include "base/memory/shared_memory.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 "data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="; 296 "data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=";
297 297
298 view()->saveImageFromDataURL(WebString::fromUTF8(image_data_url)); 298 view()->saveImageFromDataURL(WebString::fromUTF8(image_data_url));
299 ProcessPendingMessages(); 299 ProcessPendingMessages();
300 const IPC::Message* msg2 = render_thread_->sink().GetFirstMessageMatching( 300 const IPC::Message* msg2 = render_thread_->sink().GetFirstMessageMatching(
301 ViewHostMsg_SaveImageFromDataURL::ID); 301 ViewHostMsg_SaveImageFromDataURL::ID);
302 EXPECT_TRUE(msg2); 302 EXPECT_TRUE(msg2);
303 303
304 ViewHostMsg_SaveImageFromDataURL::Param param1; 304 ViewHostMsg_SaveImageFromDataURL::Param param1;
305 ViewHostMsg_SaveImageFromDataURL::Read(msg2, &param1); 305 ViewHostMsg_SaveImageFromDataURL::Read(msg2, &param1);
306 EXPECT_EQ(param1.b.length(), image_data_url.length()); 306 EXPECT_EQ(get<1>(param1).length(), image_data_url.length());
307 EXPECT_EQ(param1.b, image_data_url); 307 EXPECT_EQ(get<1>(param1), image_data_url);
308 308
309 ProcessPendingMessages(); 309 ProcessPendingMessages();
310 render_thread_->sink().ClearMessages(); 310 render_thread_->sink().ClearMessages();
311 311
312 const std::string large_data_url(1024 * 1024 * 10 - 1, 'd'); 312 const std::string large_data_url(1024 * 1024 * 10 - 1, 'd');
313 313
314 view()->saveImageFromDataURL(WebString::fromUTF8(large_data_url)); 314 view()->saveImageFromDataURL(WebString::fromUTF8(large_data_url));
315 ProcessPendingMessages(); 315 ProcessPendingMessages();
316 const IPC::Message* msg3 = render_thread_->sink().GetFirstMessageMatching( 316 const IPC::Message* msg3 = render_thread_->sink().GetFirstMessageMatching(
317 ViewHostMsg_SaveImageFromDataURL::ID); 317 ViewHostMsg_SaveImageFromDataURL::ID);
318 EXPECT_TRUE(msg3); 318 EXPECT_TRUE(msg3);
319 319
320 ViewHostMsg_SaveImageFromDataURL::Param param2; 320 ViewHostMsg_SaveImageFromDataURL::Param param2;
321 ViewHostMsg_SaveImageFromDataURL::Read(msg3, &param2); 321 ViewHostMsg_SaveImageFromDataURL::Read(msg3, &param2);
322 EXPECT_EQ(param2.b.length(), large_data_url.length()); 322 EXPECT_EQ(get<1>(param2).length(), large_data_url.length());
323 EXPECT_EQ(param2.b, large_data_url); 323 EXPECT_EQ(get<1>(param2), large_data_url);
324 324
325 ProcessPendingMessages(); 325 ProcessPendingMessages();
326 render_thread_->sink().ClearMessages(); 326 render_thread_->sink().ClearMessages();
327 327
328 const std::string exceeded_data_url(1024 * 1024 * 10 + 1, 'd'); 328 const std::string exceeded_data_url(1024 * 1024 * 10 + 1, 'd');
329 329
330 view()->saveImageFromDataURL(WebString::fromUTF8(exceeded_data_url)); 330 view()->saveImageFromDataURL(WebString::fromUTF8(exceeded_data_url));
331 ProcessPendingMessages(); 331 ProcessPendingMessages();
332 const IPC::Message* msg4 = render_thread_->sink().GetFirstMessageMatching( 332 const IPC::Message* msg4 = render_thread_->sink().GetFirstMessageMatching(
333 ViewHostMsg_SaveImageFromDataURL::ID); 333 ViewHostMsg_SaveImageFromDataURL::ID);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 ProcessPendingMessages(); 379 ProcessPendingMessages();
380 380
381 const IPC::Message* frame_navigate_msg = 381 const IPC::Message* frame_navigate_msg =
382 render_thread_->sink().GetUniqueMessageMatching( 382 render_thread_->sink().GetUniqueMessageMatching(
383 FrameHostMsg_DidCommitProvisionalLoad::ID); 383 FrameHostMsg_DidCommitProvisionalLoad::ID);
384 EXPECT_TRUE(frame_navigate_msg); 384 EXPECT_TRUE(frame_navigate_msg);
385 385
386 FrameHostMsg_DidCommitProvisionalLoad::Param host_nav_params; 386 FrameHostMsg_DidCommitProvisionalLoad::Param host_nav_params;
387 FrameHostMsg_DidCommitProvisionalLoad::Read(frame_navigate_msg, 387 FrameHostMsg_DidCommitProvisionalLoad::Read(frame_navigate_msg,
388 &host_nav_params); 388 &host_nav_params);
389 EXPECT_TRUE(host_nav_params.a.is_post); 389 EXPECT_TRUE(get<0>(host_nav_params).is_post);
390 390
391 // Check post data sent to browser matches 391 // Check post data sent to browser matches
392 EXPECT_TRUE(host_nav_params.a.page_state.IsValid()); 392 EXPECT_TRUE(get<0>(host_nav_params).page_state.IsValid());
393 scoped_ptr<HistoryEntry> entry = 393 scoped_ptr<HistoryEntry> entry =
394 PageStateToHistoryEntry(host_nav_params.a.page_state); 394 PageStateToHistoryEntry(get<0>(host_nav_params).page_state);
395 blink::WebHTTPBody body = entry->root().httpBody(); 395 blink::WebHTTPBody body = entry->root().httpBody();
396 blink::WebHTTPBody::Element element; 396 blink::WebHTTPBody::Element element;
397 bool successful = body.elementAt(0, element); 397 bool successful = body.elementAt(0, element);
398 EXPECT_TRUE(successful); 398 EXPECT_TRUE(successful);
399 EXPECT_EQ(blink::WebHTTPBody::Element::TypeData, element.type); 399 EXPECT_EQ(blink::WebHTTPBody::Element::TypeData, element.type);
400 EXPECT_EQ(length, element.data.size()); 400 EXPECT_EQ(length, element.data.size());
401 EXPECT_EQ(0, memcmp(raw_data, element.data.data(), length)); 401 EXPECT_EQ(0, memcmp(raw_data, element.data.data(), length));
402 } 402 }
403 403
404 TEST_F(RenderViewImplTest, DecideNavigationPolicy) { 404 TEST_F(RenderViewImplTest, DecideNavigationPolicy) {
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 // Load page B, which will trigger an UpdateState message for page A. 593 // Load page B, which will trigger an UpdateState message for page A.
594 LoadHTML("<div>Page B</div>"); 594 LoadHTML("<div>Page B</div>");
595 595
596 // Check for a valid UpdateState message for page A. 596 // Check for a valid UpdateState message for page A.
597 ProcessPendingMessages(); 597 ProcessPendingMessages();
598 const IPC::Message* msg_A = render_thread_->sink().GetUniqueMessageMatching( 598 const IPC::Message* msg_A = render_thread_->sink().GetUniqueMessageMatching(
599 ViewHostMsg_UpdateState::ID); 599 ViewHostMsg_UpdateState::ID);
600 ASSERT_TRUE(msg_A); 600 ASSERT_TRUE(msg_A);
601 ViewHostMsg_UpdateState::Param params; 601 ViewHostMsg_UpdateState::Param params;
602 ViewHostMsg_UpdateState::Read(msg_A, &params); 602 ViewHostMsg_UpdateState::Read(msg_A, &params);
603 int page_id_A = params.a; 603 int page_id_A = get<0>(params);
604 PageState state_A = params.b; 604 PageState state_A = get<1>(params);
605 EXPECT_EQ(1, page_id_A); 605 EXPECT_EQ(1, page_id_A);
606 render_thread_->sink().ClearMessages(); 606 render_thread_->sink().ClearMessages();
607 607
608 // Back to page A (page_id 1) and commit. 608 // Back to page A (page_id 1) and commit.
609 FrameMsg_Navigate_Params params_A; 609 FrameMsg_Navigate_Params params_A;
610 params_A.common_params.navigation_type = FrameMsg_Navigate_Type::NORMAL; 610 params_A.common_params.navigation_type = FrameMsg_Navigate_Type::NORMAL;
611 params_A.common_params.transition = ui::PAGE_TRANSITION_FORWARD_BACK; 611 params_A.common_params.transition = ui::PAGE_TRANSITION_FORWARD_BACK;
612 params_A.current_history_list_length = 2; 612 params_A.current_history_list_length = 2;
613 params_A.current_history_list_offset = 1; 613 params_A.current_history_list_offset = 1;
614 params_A.pending_history_list_offset = 0; 614 params_A.pending_history_list_offset = 0;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
650 // Verify page A committed, not swappedout://. 650 // Verify page A committed, not swappedout://.
651 const IPC::Message* frame_navigate_msg = 651 const IPC::Message* frame_navigate_msg =
652 render_thread_->sink().GetUniqueMessageMatching( 652 render_thread_->sink().GetUniqueMessageMatching(
653 FrameHostMsg_DidCommitProvisionalLoad::ID); 653 FrameHostMsg_DidCommitProvisionalLoad::ID);
654 EXPECT_TRUE(frame_navigate_msg); 654 EXPECT_TRUE(frame_navigate_msg);
655 655
656 // Read URL out of the parent trait of the params object. 656 // Read URL out of the parent trait of the params object.
657 FrameHostMsg_DidCommitProvisionalLoad::Param commit_params; 657 FrameHostMsg_DidCommitProvisionalLoad::Param commit_params;
658 FrameHostMsg_DidCommitProvisionalLoad::Read(frame_navigate_msg, 658 FrameHostMsg_DidCommitProvisionalLoad::Read(frame_navigate_msg,
659 &commit_params); 659 &commit_params);
660 EXPECT_NE(GURL("swappedout://"), commit_params.a.url); 660 EXPECT_NE(GURL("swappedout://"), get<0>(commit_params).url);
661 } 661 }
662 662
663 // Verify that security origins are replicated properly to RenderFrameProxies 663 // Verify that security origins are replicated properly to RenderFrameProxies
664 // when swapping out. 664 // when swapping out.
665 TEST_F(RenderViewImplTest, OriginReplicationForSwapOut) { 665 TEST_F(RenderViewImplTest, OriginReplicationForSwapOut) {
666 // This test should only run with --site-per-process, since origin 666 // This test should only run with --site-per-process, since origin
667 // replication only happens in that mode. 667 // replication only happens in that mode.
668 if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kSitePerProcess)) 668 if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kSitePerProcess))
669 return; 669 return;
670 670
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
709 // Load page B, which will trigger an UpdateState message for page A. 709 // Load page B, which will trigger an UpdateState message for page A.
710 LoadHTML("<div>Page B</div>"); 710 LoadHTML("<div>Page B</div>");
711 711
712 // Check for a valid UpdateState message for page A. 712 // Check for a valid UpdateState message for page A.
713 ProcessPendingMessages(); 713 ProcessPendingMessages();
714 const IPC::Message* msg_A = render_thread_->sink().GetUniqueMessageMatching( 714 const IPC::Message* msg_A = render_thread_->sink().GetUniqueMessageMatching(
715 ViewHostMsg_UpdateState::ID); 715 ViewHostMsg_UpdateState::ID);
716 ASSERT_TRUE(msg_A); 716 ASSERT_TRUE(msg_A);
717 ViewHostMsg_UpdateState::Param param; 717 ViewHostMsg_UpdateState::Param param;
718 ViewHostMsg_UpdateState::Read(msg_A, &param); 718 ViewHostMsg_UpdateState::Read(msg_A, &param);
719 int page_id_A = param.a; 719 int page_id_A = get<0>(param);
720 PageState state_A = param.b; 720 PageState state_A = get<1>(param);
721 EXPECT_EQ(1, page_id_A); 721 EXPECT_EQ(1, page_id_A);
722 render_thread_->sink().ClearMessages(); 722 render_thread_->sink().ClearMessages();
723 723
724 // Load page C, which will trigger an UpdateState message for page B. 724 // Load page C, which will trigger an UpdateState message for page B.
725 LoadHTML("<div>Page C</div>"); 725 LoadHTML("<div>Page C</div>");
726 726
727 // Check for a valid UpdateState for page B. 727 // Check for a valid UpdateState for page B.
728 ProcessPendingMessages(); 728 ProcessPendingMessages();
729 const IPC::Message* msg_B = render_thread_->sink().GetUniqueMessageMatching( 729 const IPC::Message* msg_B = render_thread_->sink().GetUniqueMessageMatching(
730 ViewHostMsg_UpdateState::ID); 730 ViewHostMsg_UpdateState::ID);
731 ASSERT_TRUE(msg_B); 731 ASSERT_TRUE(msg_B);
732 ViewHostMsg_UpdateState::Read(msg_B, &param); 732 ViewHostMsg_UpdateState::Read(msg_B, &param);
733 int page_id_B = param.a; 733 int page_id_B = get<0>(param);
734 PageState state_B = param.b; 734 PageState state_B = get<1>(param);
735 EXPECT_EQ(2, page_id_B); 735 EXPECT_EQ(2, page_id_B);
736 EXPECT_NE(state_A, state_B); 736 EXPECT_NE(state_A, state_B);
737 render_thread_->sink().ClearMessages(); 737 render_thread_->sink().ClearMessages();
738 738
739 // Load page D, which will trigger an UpdateState message for page C. 739 // Load page D, which will trigger an UpdateState message for page C.
740 LoadHTML("<div>Page D</div>"); 740 LoadHTML("<div>Page D</div>");
741 741
742 // Check for a valid UpdateState for page C. 742 // Check for a valid UpdateState for page C.
743 ProcessPendingMessages(); 743 ProcessPendingMessages();
744 const IPC::Message* msg_C = render_thread_->sink().GetUniqueMessageMatching( 744 const IPC::Message* msg_C = render_thread_->sink().GetUniqueMessageMatching(
745 ViewHostMsg_UpdateState::ID); 745 ViewHostMsg_UpdateState::ID);
746 ASSERT_TRUE(msg_C); 746 ASSERT_TRUE(msg_C);
747 ViewHostMsg_UpdateState::Read(msg_C, &param); 747 ViewHostMsg_UpdateState::Read(msg_C, &param);
748 int page_id_C = param.a; 748 int page_id_C = get<0>(param);
749 PageState state_C = param.b; 749 PageState state_C = get<1>(param);
750 EXPECT_EQ(3, page_id_C); 750 EXPECT_EQ(3, page_id_C);
751 EXPECT_NE(state_B, state_C); 751 EXPECT_NE(state_B, state_C);
752 render_thread_->sink().ClearMessages(); 752 render_thread_->sink().ClearMessages();
753 753
754 // Go back to C and commit, preparing for our real test. 754 // Go back to C and commit, preparing for our real test.
755 FrameMsg_Navigate_Params params_C; 755 FrameMsg_Navigate_Params params_C;
756 params_C.common_params.navigation_type = FrameMsg_Navigate_Type::NORMAL; 756 params_C.common_params.navigation_type = FrameMsg_Navigate_Type::NORMAL;
757 params_C.common_params.transition = ui::PAGE_TRANSITION_FORWARD_BACK; 757 params_C.common_params.transition = ui::PAGE_TRANSITION_FORWARD_BACK;
758 params_C.current_history_list_length = 4; 758 params_C.current_history_list_length = 4;
759 params_C.current_history_list_offset = 3; 759 params_C.current_history_list_offset = 3;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
796 base::TimeTicks::FromInternalValue(1); 796 base::TimeTicks::FromInternalValue(1);
797 frame()->OnNavigate(params); 797 frame()->OnNavigate(params);
798 ProcessPendingMessages(); 798 ProcessPendingMessages();
799 799
800 // Now ensure that the UpdateState message we receive is consistent 800 // Now ensure that the UpdateState message we receive is consistent
801 // and represents page C in both page_id and state. 801 // and represents page C in both page_id and state.
802 const IPC::Message* msg = render_thread_->sink().GetUniqueMessageMatching( 802 const IPC::Message* msg = render_thread_->sink().GetUniqueMessageMatching(
803 ViewHostMsg_UpdateState::ID); 803 ViewHostMsg_UpdateState::ID);
804 ASSERT_TRUE(msg); 804 ASSERT_TRUE(msg);
805 ViewHostMsg_UpdateState::Read(msg, &param); 805 ViewHostMsg_UpdateState::Read(msg, &param);
806 int page_id = param.a; 806 int page_id = get<0>(param);
807 PageState state = param.b; 807 PageState state = get<1>(param);
808 EXPECT_EQ(page_id_C, page_id); 808 EXPECT_EQ(page_id_C, page_id);
809 EXPECT_NE(state_A, state); 809 EXPECT_NE(state_A, state);
810 EXPECT_NE(state_B, state); 810 EXPECT_NE(state_B, state);
811 EXPECT_EQ(state_C, state); 811 EXPECT_EQ(state_C, state);
812 } 812 }
813 813
814 // Test that stale back/forward navigations arriving from the browser are 814 // Test that stale back/forward navigations arriving from the browser are
815 // ignored. See http://crbug.com/86758. 815 // ignored. See http://crbug.com/86758.
816 TEST_F(RenderViewImplTest, StaleNavigationsIgnored) { 816 TEST_F(RenderViewImplTest, StaleNavigationsIgnored) {
817 // Load page A. 817 // Load page A.
818 LoadHTML("<div>Page A</div>"); 818 LoadHTML("<div>Page A</div>");
819 EXPECT_EQ(1, view()->history_list_length_); 819 EXPECT_EQ(1, view()->history_list_length_);
820 EXPECT_EQ(0, view()->history_list_offset_); 820 EXPECT_EQ(0, view()->history_list_offset_);
821 821
822 // Load page B, which will trigger an UpdateState message for page A. 822 // Load page B, which will trigger an UpdateState message for page A.
823 LoadHTML("<div>Page B</div>"); 823 LoadHTML("<div>Page B</div>");
824 EXPECT_EQ(2, view()->history_list_length_); 824 EXPECT_EQ(2, view()->history_list_length_);
825 EXPECT_EQ(1, view()->history_list_offset_); 825 EXPECT_EQ(1, view()->history_list_offset_);
826 826
827 // Check for a valid UpdateState message for page A. 827 // Check for a valid UpdateState message for page A.
828 ProcessPendingMessages(); 828 ProcessPendingMessages();
829 const IPC::Message* msg_A = render_thread_->sink().GetUniqueMessageMatching( 829 const IPC::Message* msg_A = render_thread_->sink().GetUniqueMessageMatching(
830 ViewHostMsg_UpdateState::ID); 830 ViewHostMsg_UpdateState::ID);
831 ASSERT_TRUE(msg_A); 831 ASSERT_TRUE(msg_A);
832 ViewHostMsg_UpdateState::Param param; 832 ViewHostMsg_UpdateState::Param param;
833 ViewHostMsg_UpdateState::Read(msg_A, &param); 833 ViewHostMsg_UpdateState::Read(msg_A, &param);
834 int page_id_A = param.a; 834 int page_id_A = get<0>(param);
835 PageState state_A = param.b; 835 PageState state_A = get<1>(param);
836 EXPECT_EQ(1, page_id_A); 836 EXPECT_EQ(1, page_id_A);
837 render_thread_->sink().ClearMessages(); 837 render_thread_->sink().ClearMessages();
838 838
839 // Back to page A (page_id 1) and commit. 839 // Back to page A (page_id 1) and commit.
840 FrameMsg_Navigate_Params params_A; 840 FrameMsg_Navigate_Params params_A;
841 params_A.common_params.navigation_type = FrameMsg_Navigate_Type::NORMAL; 841 params_A.common_params.navigation_type = FrameMsg_Navigate_Type::NORMAL;
842 params_A.common_params.transition = ui::PAGE_TRANSITION_FORWARD_BACK; 842 params_A.common_params.transition = ui::PAGE_TRANSITION_FORWARD_BACK;
843 params_A.current_history_list_length = 2; 843 params_A.current_history_list_length = 2;
844 params_A.current_history_list_offset = 1; 844 params_A.current_history_list_offset = 1;
845 params_A.pending_history_list_offset = 0; 845 params_A.pending_history_list_offset = 0;
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
946 render_thread_->sink().ClearMessages(); 946 render_thread_->sink().ClearMessages();
947 947
948 // Update the IME status and verify if our IME backend sends an IPC message 948 // Update the IME status and verify if our IME backend sends an IPC message
949 // to activate IMEs. 949 // to activate IMEs.
950 view()->UpdateTextInputType(); 950 view()->UpdateTextInputType();
951 const IPC::Message* msg = render_thread_->sink().GetMessageAt(0); 951 const IPC::Message* msg = render_thread_->sink().GetMessageAt(0);
952 EXPECT_TRUE(msg != NULL); 952 EXPECT_TRUE(msg != NULL);
953 EXPECT_EQ(ViewHostMsg_TextInputTypeChanged::ID, msg->type()); 953 EXPECT_EQ(ViewHostMsg_TextInputTypeChanged::ID, msg->type());
954 ViewHostMsg_TextInputTypeChanged::Param params; 954 ViewHostMsg_TextInputTypeChanged::Param params;
955 ViewHostMsg_TextInputTypeChanged::Read(msg, &params); 955 ViewHostMsg_TextInputTypeChanged::Read(msg, &params);
956 ui::TextInputType type = params.a; 956 ui::TextInputType type = get<0>(params);
957 ui::TextInputMode input_mode = params.b; 957 ui::TextInputMode input_mode = get<1>(params);
958 bool can_compose_inline = params.c; 958 bool can_compose_inline = get<2>(params);
959 EXPECT_EQ(ui::TEXT_INPUT_TYPE_TEXT, type); 959 EXPECT_EQ(ui::TEXT_INPUT_TYPE_TEXT, type);
960 EXPECT_EQ(true, can_compose_inline); 960 EXPECT_EQ(true, can_compose_inline);
961 961
962 // Move the input focus to the second <input> element, where we should 962 // Move the input focus to the second <input> element, where we should
963 // de-activate IMEs. 963 // de-activate IMEs.
964 ExecuteJavaScript("document.getElementById('test2').focus();"); 964 ExecuteJavaScript("document.getElementById('test2').focus();");
965 ProcessPendingMessages(); 965 ProcessPendingMessages();
966 render_thread_->sink().ClearMessages(); 966 render_thread_->sink().ClearMessages();
967 967
968 // Update the IME status and verify if our IME backend sends an IPC message 968 // Update the IME status and verify if our IME backend sends an IPC message
969 // to de-activate IMEs. 969 // to de-activate IMEs.
970 view()->UpdateTextInputType(); 970 view()->UpdateTextInputType();
971 msg = render_thread_->sink().GetMessageAt(0); 971 msg = render_thread_->sink().GetMessageAt(0);
972 EXPECT_TRUE(msg != NULL); 972 EXPECT_TRUE(msg != NULL);
973 EXPECT_EQ(ViewHostMsg_TextInputTypeChanged::ID, msg->type()); 973 EXPECT_EQ(ViewHostMsg_TextInputTypeChanged::ID, msg->type());
974 ViewHostMsg_TextInputTypeChanged::Read(msg, & params); 974 ViewHostMsg_TextInputTypeChanged::Read(msg, & params);
975 type = params.a; 975 type = get<0>(params);
976 input_mode = params.b; 976 input_mode = get<1>(params);
977 EXPECT_EQ(ui::TEXT_INPUT_TYPE_PASSWORD, type); 977 EXPECT_EQ(ui::TEXT_INPUT_TYPE_PASSWORD, type);
978 978
979 for (size_t i = 0; i < arraysize(kInputModeTestCases); i++) { 979 for (size_t i = 0; i < arraysize(kInputModeTestCases); i++) {
980 const InputModeTestCase* test_case = &kInputModeTestCases[i]; 980 const InputModeTestCase* test_case = &kInputModeTestCases[i];
981 std::string javascript = 981 std::string javascript =
982 base::StringPrintf("document.getElementById('%s').focus();", 982 base::StringPrintf("document.getElementById('%s').focus();",
983 test_case->input_id); 983 test_case->input_id);
984 // Move the input focus to the target <input> element, where we should 984 // Move the input focus to the target <input> element, where we should
985 // activate IMEs. 985 // activate IMEs.
986 ExecuteJavaScriptAndReturnIntValue(base::ASCIIToUTF16(javascript), NULL); 986 ExecuteJavaScriptAndReturnIntValue(base::ASCIIToUTF16(javascript), NULL);
987 ProcessPendingMessages(); 987 ProcessPendingMessages();
988 render_thread_->sink().ClearMessages(); 988 render_thread_->sink().ClearMessages();
989 989
990 // Update the IME status and verify if our IME backend sends an IPC 990 // Update the IME status and verify if our IME backend sends an IPC
991 // message to activate IMEs. 991 // message to activate IMEs.
992 view()->UpdateTextInputType(); 992 view()->UpdateTextInputType();
993 const IPC::Message* msg = render_thread_->sink().GetMessageAt(0); 993 const IPC::Message* msg = render_thread_->sink().GetMessageAt(0);
994 EXPECT_TRUE(msg != NULL); 994 EXPECT_TRUE(msg != NULL);
995 EXPECT_EQ(ViewHostMsg_TextInputTypeChanged::ID, msg->type()); 995 EXPECT_EQ(ViewHostMsg_TextInputTypeChanged::ID, msg->type());
996 ViewHostMsg_TextInputTypeChanged::Read(msg, & params); 996 ViewHostMsg_TextInputTypeChanged::Read(msg, & params);
997 type = params.a; 997 type = get<0>(params);
998 input_mode = params.b; 998 input_mode = get<1>(params);
999 EXPECT_EQ(test_case->expected_mode, input_mode); 999 EXPECT_EQ(test_case->expected_mode, input_mode);
1000 } 1000 }
1001 } 1001 }
1002 } 1002 }
1003 1003
1004 // Test that our IME backend can compose CJK words. 1004 // Test that our IME backend can compose CJK words.
1005 // Our IME front-end sends many platform-independent messages to the IME backend 1005 // Our IME front-end sends many platform-independent messages to the IME backend
1006 // while it composes CJK words. This test sends the minimal messages captured 1006 // while it composes CJK words. This test sends the minimal messages captured
1007 // on my local environment directly to the IME backend to verify if the backend 1007 // on my local environment directly to the IME backend to verify if the backend
1008 // can compose CJK words without any problems. 1008 // can compose CJK words without any problems.
(...skipping 1108 matching lines...) Expand 10 before | Expand all | Expand 10 after
2117 LoadHTML("<input id='test1' value='hello1'></input>" 2117 LoadHTML("<input id='test1' value='hello1'></input>"
2118 "<input id='test2' value='hello2'></input>"); 2118 "<input id='test2' value='hello2'></input>");
2119 2119
2120 ExecuteJavaScript("document.getElementById('test1').focus();"); 2120 ExecuteJavaScript("document.getElementById('test1').focus();");
2121 const IPC::Message* msg1 = render_thread_->sink().GetFirstMessageMatching( 2121 const IPC::Message* msg1 = render_thread_->sink().GetFirstMessageMatching(
2122 ViewHostMsg_FocusedNodeChanged::ID); 2122 ViewHostMsg_FocusedNodeChanged::ID);
2123 EXPECT_TRUE(msg1); 2123 EXPECT_TRUE(msg1);
2124 2124
2125 ViewHostMsg_FocusedNodeChanged::Param params; 2125 ViewHostMsg_FocusedNodeChanged::Param params;
2126 ViewHostMsg_FocusedNodeChanged::Read(msg1, &params); 2126 ViewHostMsg_FocusedNodeChanged::Read(msg1, &params);
2127 EXPECT_TRUE(params.a); 2127 EXPECT_TRUE(get<0>(params));
2128 render_thread_->sink().ClearMessages(); 2128 render_thread_->sink().ClearMessages();
2129 2129
2130 ExecuteJavaScript("document.getElementById('test2').focus();"); 2130 ExecuteJavaScript("document.getElementById('test2').focus();");
2131 const IPC::Message* msg2 = render_thread_->sink().GetFirstMessageMatching( 2131 const IPC::Message* msg2 = render_thread_->sink().GetFirstMessageMatching(
2132 ViewHostMsg_FocusedNodeChanged::ID); 2132 ViewHostMsg_FocusedNodeChanged::ID);
2133 EXPECT_TRUE(msg2); 2133 EXPECT_TRUE(msg2);
2134 ViewHostMsg_FocusedNodeChanged::Read(msg2, &params); 2134 ViewHostMsg_FocusedNodeChanged::Read(msg2, &params);
2135 EXPECT_TRUE(params.a); 2135 EXPECT_TRUE(get<0>(params));
2136 render_thread_->sink().ClearMessages(); 2136 render_thread_->sink().ClearMessages();
2137 2137
2138 view()->webview()->clearFocusedElement(); 2138 view()->webview()->clearFocusedElement();
2139 const IPC::Message* msg3 = render_thread_->sink().GetFirstMessageMatching( 2139 const IPC::Message* msg3 = render_thread_->sink().GetFirstMessageMatching(
2140 ViewHostMsg_FocusedNodeChanged::ID); 2140 ViewHostMsg_FocusedNodeChanged::ID);
2141 EXPECT_TRUE(msg3); 2141 EXPECT_TRUE(msg3);
2142 ViewHostMsg_FocusedNodeChanged::Read(msg3, &params); 2142 ViewHostMsg_FocusedNodeChanged::Read(msg3, &params);
2143 EXPECT_FALSE(params.a); 2143 EXPECT_FALSE(get<0>(params));
2144 render_thread_->sink().ClearMessages(); 2144 render_thread_->sink().ClearMessages();
2145 } 2145 }
2146 2146
2147 TEST_F(RenderViewImplTest, ServiceWorkerNetworkProviderSetup) { 2147 TEST_F(RenderViewImplTest, ServiceWorkerNetworkProviderSetup) {
2148 ServiceWorkerNetworkProvider* provider = NULL; 2148 ServiceWorkerNetworkProvider* provider = NULL;
2149 RequestExtraData* extra_data = NULL; 2149 RequestExtraData* extra_data = NULL;
2150 2150
2151 // Make sure each new document has a new provider and 2151 // Make sure each new document has a new provider and
2152 // that the main request is tagged with the provider's id. 2152 // that the main request is tagged with the provider's id.
2153 LoadHTML("<b>A Document</b>"); 2153 LoadHTML("<b>A Document</b>");
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
2311 2311
2312 gfx::Size size = GetPreferredSize(); 2312 gfx::Size size = GetPreferredSize();
2313 EXPECT_EQ(gfx::Size(400, 400), size); 2313 EXPECT_EQ(gfx::Size(400, 400), size);
2314 2314
2315 SetZoomLevel(ZoomFactorToZoomLevel(2.0)); 2315 SetZoomLevel(ZoomFactorToZoomLevel(2.0));
2316 size = GetPreferredSize(); 2316 size = GetPreferredSize();
2317 EXPECT_EQ(gfx::Size(800, 800), size); 2317 EXPECT_EQ(gfx::Size(800, 800), size);
2318 } 2318 }
2319 2319
2320 } // namespace content 2320 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698