From 83cbc841cb270e9ccea5a9912c9d9a6135ecb731 Mon Sep 17 00:00:00 2001 From: boliu Date: Tue, 13 Jan 2015 19:16:59 -0800 Subject: aw: Fix clearView implementation The early out was accidentally dropped in a refactor. Add it back here. And also add unit tests for clear view. BUG=448488 Review URL: https://codereview.chromium.org/846323002 Cr-Commit-Position: refs/heads/master@{#311399} --- .../browser/browser_view_renderer_unittest.cc | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'android_webview/browser/browser_view_renderer_unittest.cc') diff --git a/android_webview/browser/browser_view_renderer_unittest.cc b/android_webview/browser/browser_view_renderer_unittest.cc index 0c2786b..b4a9d42 100644 --- a/android_webview/browser/browser_view_renderer_unittest.cc +++ b/android_webview/browser/browser_view_renderer_unittest.cc @@ -23,4 +23,40 @@ class SmokeTest : public RenderingTest { RENDERING_TEST_F(SmokeTest); +class ClearViewTest : public RenderingTest { + public: + ClearViewTest() : on_draw_count_(0u) {} + + void StartTest() override { + browser_view_renderer_->SetContinuousInvalidate(true); + browser_view_renderer_->ClearView(); + } + + void WillOnDraw() override { + on_draw_count_++; + if (on_draw_count_ == 2u) { + browser_view_renderer_->SetContinuousInvalidate(false); + } + } + + void DidOnDraw(bool success) override { + if (on_draw_count_ == 1u) { + // First OnDraw should be skipped due to ClearView. + EXPECT_FALSE(success); + browser_view_renderer_->DidUpdateContent(); // Unset ClearView. + } else { + // Following OnDraws should succeed. + EXPECT_TRUE(success); + } + } + + void DidDrawOnRT(SharedRendererState* functor) override { + EndTest(); + } + private: + size_t on_draw_count_; +}; + +RENDERING_TEST_F(ClearViewTest); + } // namespace android_webview -- cgit v1.1