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

Side by Side Diff: chrome/browser/renderer_host/render_widget_host_unittest.cc

Issue 661237: This adds in the ability for Chrome to generate windows with snapshots of all... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 8 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
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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/keyboard_codes.h" 6 #include "base/keyboard_codes.h"
7 #include "base/scoped_ptr.h" 7 #include "base/scoped_ptr.h"
8 #include "base/shared_memory.h" 8 #include "base/shared_memory.h"
9 #include "base/timer.h" 9 #include "base/timer.h"
10 #include "build/build_config.h" 10 #include "build/build_config.h"
11 #include "chrome/browser/renderer_host/backing_store.h" 11 #include "chrome/browser/renderer_host/backing_store.h"
12 #include "chrome/browser/renderer_host/render_widget_host_painting_observer.h"
12 #include "chrome/browser/renderer_host/test/test_render_view_host.h" 13 #include "chrome/browser/renderer_host/test/test_render_view_host.h"
13 #include "chrome/common/render_messages.h" 14 #include "chrome/common/render_messages.h"
14 #include "gfx/canvas.h" 15 #include "gfx/canvas.h"
15 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
16 17
17 using base::TimeDelta; 18 using base::TimeDelta;
18 19
19 using WebKit::WebInputEvent; 20 using WebKit::WebInputEvent;
20 using WebKit::WebMouseWheelEvent; 21 using WebKit::WebMouseWheelEvent;
21 22
23 namespace gfx {
24 class Size;
25 }
26
22 // RenderWidgetHostProcess ----------------------------------------------------- 27 // RenderWidgetHostProcess -----------------------------------------------------
23 28
24 class RenderWidgetHostProcess : public MockRenderProcessHost { 29 class RenderWidgetHostProcess : public MockRenderProcessHost {
25 public: 30 public:
26 explicit RenderWidgetHostProcess(Profile* profile) 31 explicit RenderWidgetHostProcess(Profile* profile)
27 : MockRenderProcessHost(profile), 32 : MockRenderProcessHost(profile),
28 current_update_buf_(NULL), 33 current_update_buf_(NULL),
29 update_msg_should_reply_(false), 34 update_msg_should_reply_(false),
30 update_msg_reply_flags_(0) { 35 update_msg_reply_flags_(0) {
31 // DANGER! This is a hack. The RenderWidgetHost checks the channel to see 36 // DANGER! This is a hack. The RenderWidgetHost checks the channel to see
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 bool prehandle_keyboard_event_; 189 bool prehandle_keyboard_event_;
185 bool prehandle_keyboard_event_called_; 190 bool prehandle_keyboard_event_called_;
186 WebInputEvent::Type prehandle_keyboard_event_type_; 191 WebInputEvent::Type prehandle_keyboard_event_type_;
187 192
188 bool unhandled_keyboard_event_called_; 193 bool unhandled_keyboard_event_called_;
189 WebInputEvent::Type unhandled_keyboard_event_type_; 194 WebInputEvent::Type unhandled_keyboard_event_type_;
190 195
191 bool unresponsive_timer_fired_; 196 bool unresponsive_timer_fired_;
192 }; 197 };
193 198
199 // MockPaintingObserver --------------------------------------------------------
200
201 class MockPaintingObserver : public RenderWidgetHostPaintingObserver {
202 public:
203 void WidgetWillDestroyBackingStore(RenderWidgetHost* widget,
204 BackingStore* backing_store) {}
205 void WidgetDidUpdateBackingStore(RenderWidgetHost* widget) {}
206 void WidgetDidReceivePaintAtSizeAck(RenderWidgetHost* host,
207 const TransportDIB::Handle& dib_handle,
208 const gfx::Size& size) {
209 host_ = reinterpret_cast<MockRenderWidgetHost*>(host);
210 dib_handle_ = dib_handle;
211 size_ = size;
212 }
213
214 MockRenderWidgetHost* host() const { return host_; }
215 TransportDIB::Handle dib_handle() const { return dib_handle_; }
216 gfx::Size size() const { return size_; }
217
218 private:
219 MockRenderWidgetHost* host_;
220 TransportDIB::Handle dib_handle_;
221 gfx::Size size_;
222 };
223
224
194 // RenderWidgetHostTest -------------------------------------------------------- 225 // RenderWidgetHostTest --------------------------------------------------------
195 226
196 class RenderWidgetHostTest : public testing::Test { 227 class RenderWidgetHostTest : public testing::Test {
197 public: 228 public:
198 RenderWidgetHostTest() : process_(NULL) { 229 RenderWidgetHostTest() : process_(NULL) {
199 } 230 }
200 ~RenderWidgetHostTest() { 231 ~RenderWidgetHostTest() {
201 } 232 }
202 233
203 protected: 234 protected:
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 528
498 // It should have sent out a restored message with a request to paint. 529 // It should have sent out a restored message with a request to paint.
499 const IPC::Message* restored = process_->sink().GetUniqueMessageMatching( 530 const IPC::Message* restored = process_->sink().GetUniqueMessageMatching(
500 ViewMsg_WasRestored::ID); 531 ViewMsg_WasRestored::ID);
501 ASSERT_TRUE(restored); 532 ASSERT_TRUE(restored);
502 Tuple1<bool> needs_repaint; 533 Tuple1<bool> needs_repaint;
503 ViewMsg_WasRestored::Read(restored, &needs_repaint); 534 ViewMsg_WasRestored::Read(restored, &needs_repaint);
504 EXPECT_TRUE(needs_repaint.a); 535 EXPECT_TRUE(needs_repaint.a);
505 } 536 }
506 537
538 TEST_F(RenderWidgetHostTest, PaintAtSize) {
539 host_->PaintAtSize(TransportDIB::GetFakeHandleForTest(), gfx::Size(20, 30));
540 EXPECT_TRUE(
541 process_->sink().GetUniqueMessageMatching(ViewMsg_PaintAtSize::ID));
542
543 MockPaintingObserver observer;
544 host_->set_painting_observer(&observer);
545
546 // Need to generate a fake handle value on all platforms.
547 TransportDIB::Handle handle = TransportDIB::GetFakeHandleForTest();
548 host_->OnMsgPaintAtSizeAck(handle, gfx::Size(20, 30));
549 EXPECT_TRUE(host_ == observer.host());
550 EXPECT_TRUE(handle == observer.dib_handle());
551 EXPECT_EQ(20, observer.size().width());
552 EXPECT_EQ(30, observer.size().height());
553 host_->set_painting_observer(NULL);
554 }
555
507 TEST_F(RenderWidgetHostTest, HandleKeyEventsWeSent) { 556 TEST_F(RenderWidgetHostTest, HandleKeyEventsWeSent) {
508 // Simulate a keyboard event. 557 // Simulate a keyboard event.
509 SimulateKeyboardEvent(WebInputEvent::RawKeyDown); 558 SimulateKeyboardEvent(WebInputEvent::RawKeyDown);
510 559
511 // Make sure we sent the input event to the renderer. 560 // Make sure we sent the input event to the renderer.
512 EXPECT_TRUE(process_->sink().GetUniqueMessageMatching( 561 EXPECT_TRUE(process_->sink().GetUniqueMessageMatching(
513 ViewMsg_HandleInputEvent::ID)); 562 ViewMsg_HandleInputEvent::ID));
514 process_->sink().ClearMessages(); 563 process_->sink().ClearMessages();
515 564
516 // Send the simulated response from the renderer back. 565 // Send the simulated response from the renderer back.
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
642 // Start it again to ensure it still works. 691 // Start it again to ensure it still works.
643 EXPECT_FALSE(host_->unresponsive_timer_fired()); 692 EXPECT_FALSE(host_->unresponsive_timer_fired());
644 host_->StartHangMonitorTimeout(TimeDelta::FromMilliseconds(10)); 693 host_->StartHangMonitorTimeout(TimeDelta::FromMilliseconds(10));
645 694
646 // Wait long enough for first timeout and see if it fired. 695 // Wait long enough for first timeout and see if it fired.
647 MessageLoop::current()->PostDelayedTask(FROM_HERE, 696 MessageLoop::current()->PostDelayedTask(FROM_HERE,
648 new MessageLoop::QuitTask(), 10); 697 new MessageLoop::QuitTask(), 10);
649 MessageLoop::current()->Run(); 698 MessageLoop::current()->Run();
650 EXPECT_TRUE(host_->unresponsive_timer_fired()); 699 EXPECT_TRUE(host_->unresponsive_timer_fired());
651 } 700 }
652
OLDNEW
« no previous file with comments | « chrome/browser/renderer_host/render_widget_host_painting_observer.h ('k') | chrome/browser/tab_contents/thumbnail_generator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698