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

Side by Side Diff: content/renderer/render_view_browsertest_mac.mm

Issue 2870633002: Use ScopedTaskEnvironment instead of MessageLoop in RenderViewTest. (Closed)
Patch Set: fix-build-error Created 3 years, 7 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
« no previous file with comments | « content/renderer/render_view_browsertest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/run_loop.h"
5 #include "base/strings/string16.h" 6 #include "base/strings/string16.h"
6 #include "base/strings/string_util.h" 7 #include "base/strings/string_util.h"
7 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
8 #include "content/common/frame_messages.h" 9 #include "content/common/frame_messages.h"
9 #include "content/common/frame_replication_state.h" 10 #include "content/common/frame_replication_state.h"
10 #include "content/common/input_messages.h" 11 #include "content/common/input_messages.h"
11 #include "content/common/text_input_client_messages.h" 12 #include "content/common/text_input_client_messages.h"
12 #include "content/public/browser/native_web_keyboard_event.h" 13 #include "content/public/browser/native_web_keyboard_event.h"
13 #include "content/public/common/web_preferences.h" 14 #include "content/public/common/web_preferences.h"
14 #include "content/public/test/render_view_test.h" 15 #include "content/public/test/render_view_test.h"
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 105
105 // First test when javascript does not eat keypresses -- should scroll. 106 // First test when javascript does not eat keypresses -- should scroll.
106 view->set_send_content_state_immediately(true); 107 view->set_send_content_state_immediately(true);
107 LoadHTML(kRawHtml); 108 LoadHTML(kRawHtml);
108 render_thread_->sink().ClearMessages(); 109 render_thread_->sink().ClearMessages();
109 110
110 const char* kArrowDownScrollDown = "40,false,false,true,false\n10144\np1"; 111 const char* kArrowDownScrollDown = "40,false,false,true,false\n10144\np1";
111 view->OnSetEditCommandsForNextKeyEvent( 112 view->OnSetEditCommandsForNextKeyEvent(
112 EditCommands(1, EditCommand("moveToEndOfDocument", ""))); 113 EditCommands(1, EditCommand("moveToEndOfDocument", "")));
113 SendNativeKeyEvent(NativeWebKeyboardEvent(arrowDownKeyDown)); 114 SendNativeKeyEvent(NativeWebKeyboardEvent(arrowDownKeyDown));
114 ProcessPendingMessages(); 115 base::RunLoop().RunUntilIdle();
115 ExecuteJavaScriptForTests("scroll.textContent = window.pageYOffset"); 116 ExecuteJavaScriptForTests("scroll.textContent = window.pageYOffset");
116 output = WebFrameContentDumper::DumpWebViewAsText(view->GetWebView(), 117 output = WebFrameContentDumper::DumpWebViewAsText(view->GetWebView(),
117 kMaxOutputCharacters) 118 kMaxOutputCharacters)
118 .Ascii(); 119 .Ascii();
119 EXPECT_EQ(kArrowDownScrollDown, output); 120 EXPECT_EQ(kArrowDownScrollDown, output);
120 121
121 const char* kArrowUpScrollUp = "38,false,false,true,false\n0\np1"; 122 const char* kArrowUpScrollUp = "38,false,false,true,false\n0\np1";
122 view->OnSetEditCommandsForNextKeyEvent( 123 view->OnSetEditCommandsForNextKeyEvent(
123 EditCommands(1, EditCommand("moveToBeginningOfDocument", ""))); 124 EditCommands(1, EditCommand("moveToBeginningOfDocument", "")));
124 SendNativeKeyEvent(NativeWebKeyboardEvent(arrowUpKeyDown)); 125 SendNativeKeyEvent(NativeWebKeyboardEvent(arrowUpKeyDown));
125 ProcessPendingMessages(); 126 base::RunLoop().RunUntilIdle();
126 ExecuteJavaScriptForTests("scroll.textContent = window.pageYOffset"); 127 ExecuteJavaScriptForTests("scroll.textContent = window.pageYOffset");
127 output = WebFrameContentDumper::DumpWebViewAsText(view->GetWebView(), 128 output = WebFrameContentDumper::DumpWebViewAsText(view->GetWebView(),
128 kMaxOutputCharacters) 129 kMaxOutputCharacters)
129 .Ascii(); 130 .Ascii();
130 EXPECT_EQ(kArrowUpScrollUp, output); 131 EXPECT_EQ(kArrowUpScrollUp, output);
131 132
132 // Now let javascript eat the key events -- no scrolling should happen. 133 // Now let javascript eat the key events -- no scrolling should happen.
133 // Set a scroll position slightly down the page to ensure that it does not 134 // Set a scroll position slightly down the page to ensure that it does not
134 // move. 135 // move.
135 ExecuteJavaScriptForTests("allowKeyEvents = false; window.scrollTo(0, 100)"); 136 ExecuteJavaScriptForTests("allowKeyEvents = false; window.scrollTo(0, 100)");
136 137
137 const char* kArrowDownNoScroll = "40,false,false,true,false\n100\np1"; 138 const char* kArrowDownNoScroll = "40,false,false,true,false\n100\np1";
138 view->OnSetEditCommandsForNextKeyEvent( 139 view->OnSetEditCommandsForNextKeyEvent(
139 EditCommands(1, EditCommand("moveToEndOfDocument", ""))); 140 EditCommands(1, EditCommand("moveToEndOfDocument", "")));
140 SendNativeKeyEvent(NativeWebKeyboardEvent(arrowDownKeyDown)); 141 SendNativeKeyEvent(NativeWebKeyboardEvent(arrowDownKeyDown));
141 ProcessPendingMessages(); 142 base::RunLoop().RunUntilIdle();
142 ExecuteJavaScriptForTests("scroll.textContent = window.pageYOffset"); 143 ExecuteJavaScriptForTests("scroll.textContent = window.pageYOffset");
143 output = WebFrameContentDumper::DumpWebViewAsText(view->GetWebView(), 144 output = WebFrameContentDumper::DumpWebViewAsText(view->GetWebView(),
144 kMaxOutputCharacters) 145 kMaxOutputCharacters)
145 .Ascii(); 146 .Ascii();
146 EXPECT_EQ(kArrowDownNoScroll, output); 147 EXPECT_EQ(kArrowDownNoScroll, output);
147 148
148 const char* kArrowUpNoScroll = "38,false,false,true,false\n100\np1"; 149 const char* kArrowUpNoScroll = "38,false,false,true,false\n100\np1";
149 view->OnSetEditCommandsForNextKeyEvent( 150 view->OnSetEditCommandsForNextKeyEvent(
150 EditCommands(1, EditCommand("moveToBeginningOfDocument", ""))); 151 EditCommands(1, EditCommand("moveToBeginningOfDocument", "")));
151 SendNativeKeyEvent(NativeWebKeyboardEvent(arrowUpKeyDown)); 152 SendNativeKeyEvent(NativeWebKeyboardEvent(arrowUpKeyDown));
152 ProcessPendingMessages(); 153 base::RunLoop().RunUntilIdle();
153 ExecuteJavaScriptForTests("scroll.textContent = window.pageYOffset"); 154 ExecuteJavaScriptForTests("scroll.textContent = window.pageYOffset");
154 output = WebFrameContentDumper::DumpWebViewAsText(view->GetWebView(), 155 output = WebFrameContentDumper::DumpWebViewAsText(view->GetWebView(),
155 kMaxOutputCharacters) 156 kMaxOutputCharacters)
156 .Ascii(); 157 .Ascii();
157 EXPECT_EQ(kArrowUpNoScroll, output); 158 EXPECT_EQ(kArrowUpNoScroll, output);
158 } 159 }
159 160
160 // TODO(ekaramad): This test could be removed once we do not send irrelevant 161 // TODO(ekaramad): This test could be removed once we do not send irrelevant
161 // IPCs from browser during the time RenderViewImpl is swapped out 162 // IPCs from browser during the time RenderViewImpl is swapped out
162 // (https://crbug.com/669219). 163 // (https://crbug.com/669219).
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 using Text = base::string16; 196 using Text = base::string16;
196 using Underlines = std::vector<blink::WebCompositionUnderline>; 197 using Underlines = std::vector<blink::WebCompositionUnderline>;
197 view->OnMessageReceived(InputMsg_ImeSetComposition( 198 view->OnMessageReceived(InputMsg_ImeSetComposition(
198 routing_id, Text(), Underlines(), Range(), 0, 0)); 199 routing_id, Text(), Underlines(), Range(), 0, 0));
199 view->OnMessageReceived( 200 view->OnMessageReceived(
200 InputMsg_ImeCommitText(routing_id, Text(), Underlines(), Range(), 0)); 201 InputMsg_ImeCommitText(routing_id, Text(), Underlines(), Range(), 0));
201 view->OnMessageReceived(InputMsg_ImeFinishComposingText(routing_id, false)); 202 view->OnMessageReceived(InputMsg_ImeFinishComposingText(routing_id, false));
202 } 203 }
203 204
204 } // namespace content 205 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_view_browsertest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698