Index: 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 0c2786b00bdea5464a8719d0e1e99287204341ff..b4a9d42227241cef82d61d71a47608eb57d52001 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 |