OLD | NEW |
(Empty) | |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #include "content/renderer/gpu/render_widget_compositor.h" |
| 6 |
| 7 #include "cc/output/begin_frame_args.h" |
| 8 #include "content/public/test/mock_render_thread.h" |
| 9 #include "content/renderer/render_widget.h" |
| 10 #include "testing/gmock/include/gmock/gmock.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" |
| 12 #include "third_party/WebKit/public/platform/WebScreenInfo.h" |
| 13 |
| 14 using testing::AllOf; |
| 15 using testing::Field; |
| 16 |
| 17 namespace content { |
| 18 |
| 19 class MockWebWidget : public blink::WebWidget { |
| 20 public: |
| 21 MOCK_METHOD1(beginFrame, void(const blink::WebBeginFrameArgs& args)); |
| 22 }; |
| 23 |
| 24 class TestRenderWidget : public RenderWidget { |
| 25 public: |
| 26 TestRenderWidget() |
| 27 : RenderWidget(blink::WebPopupTypeNone, |
| 28 blink::WebScreenInfo(), |
| 29 true, |
| 30 false, |
| 31 false) { |
| 32 webwidget_ = &mock_webwidget_; |
| 33 } |
| 34 |
| 35 MockWebWidget mock_webwidget_; |
| 36 |
| 37 private: |
| 38 virtual ~TestRenderWidget() { webwidget_ = NULL; } |
| 39 |
| 40 DISALLOW_COPY_AND_ASSIGN(TestRenderWidget); |
| 41 }; |
| 42 |
| 43 class RenderWidgetCompositorTest : public testing::Test { |
| 44 public: |
| 45 RenderWidgetCompositorTest() |
| 46 : render_widget_(make_scoped_refptr(new TestRenderWidget())), |
| 47 render_widget_compositor_( |
| 48 RenderWidgetCompositor::Create(render_widget_.get(), false)) {} |
| 49 virtual ~RenderWidgetCompositorTest() {} |
| 50 |
| 51 protected: |
| 52 MockRenderThread render_thread_; |
| 53 scoped_refptr<TestRenderWidget> render_widget_; |
| 54 scoped_ptr<RenderWidgetCompositor> render_widget_compositor_; |
| 55 |
| 56 private: |
| 57 DISALLOW_COPY_AND_ASSIGN(RenderWidgetCompositorTest); |
| 58 }; |
| 59 |
| 60 TEST_F(RenderWidgetCompositorTest, BeginMainFrame) { |
| 61 base::TimeTicks frame_time(base::TimeTicks() + |
| 62 base::TimeDelta::FromSeconds(1)); |
| 63 base::TimeTicks deadline(base::TimeTicks() + base::TimeDelta::FromSeconds(2)); |
| 64 base::TimeDelta interval(base::TimeDelta::FromSeconds(3)); |
| 65 cc::BeginFrameArgs args( |
| 66 cc::BeginFrameArgs::Create(frame_time, deadline, interval)); |
| 67 |
| 68 EXPECT_CALL(render_widget_->mock_webwidget_, |
| 69 beginFrame(AllOf( |
| 70 Field(&blink::WebBeginFrameArgs::lastFrameTimeMonotonic, 1), |
| 71 Field(&blink::WebBeginFrameArgs::deadline, 2), |
| 72 Field(&blink::WebBeginFrameArgs::interval, 3)))); |
| 73 |
| 74 render_widget_compositor_->BeginMainFrame(args); |
| 75 } |
| 76 |
| 77 } // namespace content |
OLD | NEW |