| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "android_webview/browser/browser_view_renderer.h" |
| #include "android_webview/browser/test/rendering_test.h" |
| |
| namespace android_webview { |
| |
| class SmokeTest : public RenderingTest { |
| void StartTest() override { |
| browser_view_renderer_->SetContinuousInvalidate(true); |
| } |
| |
| void WillOnDraw() override { |
| browser_view_renderer_->SetContinuousInvalidate(false); |
| } |
| |
| void DidDrawOnRT(SharedRendererState* functor) override { |
| EndTest(); |
| } |
| }; |
| |
| 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 |