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

Side by Side Diff: webkit/tools/test_shell/plugin_tests.cc

Issue 200054: Hook up WebFrameClient, replacing many WebViewDelegate methods.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « webkit/tools/test_shell/node_leak_test.cc ('k') | webkit/tools/test_shell/test_shell.h » ('j') | 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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 <string> 5 #include <string>
6 6
7 #include "base/file_path.h" 7 #include "base/file_path.h"
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/path_service.h" 9 #include "base/path_service.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 ASSERT_EQ(true, StartsWithASCII(text, "DONE", true)); 148 ASSERT_EQ(true, StartsWithASCII(text, "DONE", true));
149 } 149 }
150 #endif 150 #endif
151 151
152 // Tests that if a frame is deleted as a result of calling NPP_HandleEvent, we 152 // Tests that if a frame is deleted as a result of calling NPP_HandleEvent, we
153 // don't crash. 153 // don't crash.
154 TEST_F(PluginTest, DeleteFrameDuringEvent) { 154 TEST_F(PluginTest, DeleteFrameDuringEvent) {
155 FilePath test_html = data_dir_; 155 FilePath test_html = data_dir_;
156 test_html = test_html.AppendASCII("plugins"); 156 test_html = test_html.AppendASCII("plugins");
157 test_html = test_html.AppendASCII("delete_frame.html"); 157 test_html = test_html.AppendASCII("delete_frame.html");
158 test_shell_->LoadURL(test_html.ToWStringHack().c_str()); 158 test_shell_->LoadFile(test_html);
159 test_shell_->WaitTestFinished(); 159 test_shell_->WaitTestFinished();
160 160
161 WebKit::WebMouseEvent input; 161 WebKit::WebMouseEvent input;
162 input.button = WebKit::WebMouseEvent::ButtonLeft; 162 input.button = WebKit::WebMouseEvent::ButtonLeft;
163 input.x = 50; 163 input.x = 50;
164 input.y = 50; 164 input.y = 50;
165 input.type = WebKit::WebInputEvent::MouseUp; 165 input.type = WebKit::WebInputEvent::MouseUp;
166 test_shell_->webView()->handleInputEvent(input); 166 test_shell_->webView()->handleInputEvent(input);
167 167
168 // No crash means we passed. 168 // No crash means we passed.
169 } 169 }
170 170
171 #if defined(OS_WIN) 171 #if defined(OS_WIN)
172 BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lparam) { 172 BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lparam) {
173 HWND* plugin_hwnd = reinterpret_cast<HWND*>(lparam); 173 HWND* plugin_hwnd = reinterpret_cast<HWND*>(lparam);
174 if (*plugin_hwnd) { 174 if (*plugin_hwnd) {
175 // More than one child window found, unexpected. 175 // More than one child window found, unexpected.
176 plugin_hwnd = NULL; 176 plugin_hwnd = NULL;
177 return FALSE; 177 return FALSE;
178 } 178 }
179 *plugin_hwnd = hwnd; 179 *plugin_hwnd = hwnd;
180 return TRUE; 180 return TRUE;
181 } 181 }
182 182
183 // Tests that hiding/showing the parent frame hides/shows the plugin. 183 // Tests that hiding/showing the parent frame hides/shows the plugin.
184 TEST_F(PluginTest, PluginVisibilty) { 184 TEST_F(PluginTest, PluginVisibilty) {
185 FilePath test_html = data_dir_; 185 FilePath test_html = data_dir_;
186 test_html = test_html.AppendASCII("plugins"); 186 test_html = test_html.AppendASCII("plugins");
187 test_html = test_html.AppendASCII("plugin_visibility.html"); 187 test_html = test_html.AppendASCII("plugin_visibility.html");
188 test_shell_->LoadURL(test_html.ToWStringHack().c_str()); 188 test_shell_->LoadFile(test_html);
189 test_shell_->WaitTestFinished(); 189 test_shell_->WaitTestFinished();
190 190
191 WebFrame* main_frame = test_shell_->webView()->GetMainFrame(); 191 WebFrame* main_frame = test_shell_->webView()->GetMainFrame();
192 HWND frame_hwnd = test_shell_->webViewWnd(); 192 HWND frame_hwnd = test_shell_->webViewWnd();
193 HWND plugin_hwnd = NULL; 193 HWND plugin_hwnd = NULL;
194 EnumChildWindows(frame_hwnd, EnumChildProc, 194 EnumChildWindows(frame_hwnd, EnumChildProc,
195 reinterpret_cast<LPARAM>(&plugin_hwnd)); 195 reinterpret_cast<LPARAM>(&plugin_hwnd));
196 ASSERT_TRUE(plugin_hwnd != NULL); 196 ASSERT_TRUE(plugin_hwnd != NULL);
197 ASSERT_FALSE(IsWindowVisible(plugin_hwnd)); 197 ASSERT_FALSE(IsWindowVisible(plugin_hwnd));
198 198
199 main_frame->executeScript(WebString::fromUTF8("showPlugin(true)")); 199 main_frame->executeScript(WebString::fromUTF8("showPlugin(true)"));
200 ASSERT_TRUE(IsWindowVisible(plugin_hwnd)); 200 ASSERT_TRUE(IsWindowVisible(plugin_hwnd));
201 201
202 main_frame->executeScript(WebString::fromUTF8("showFrame(false)")); 202 main_frame->executeScript(WebString::fromUTF8("showFrame(false)"));
203 ASSERT_FALSE(IsWindowVisible(plugin_hwnd)); 203 ASSERT_FALSE(IsWindowVisible(plugin_hwnd));
204 204
205 main_frame->executeScript(WebString::fromUTF8("showFrame(true)")); 205 main_frame->executeScript(WebString::fromUTF8("showFrame(true)"));
206 ASSERT_TRUE(IsWindowVisible(plugin_hwnd)); 206 ASSERT_TRUE(IsWindowVisible(plugin_hwnd));
207 } 207 }
208 #endif 208 #endif
209 #endif //!ARCH_CPU_64_BITS 209 #endif //!ARCH_CPU_64_BITS
OLDNEW
« no previous file with comments | « webkit/tools/test_shell/node_leak_test.cc ('k') | webkit/tools/test_shell/test_shell.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698