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

Unified Diff: webkit/compositor/TextureLayerChromiumTest.cpp

Issue 10909020: Enable webkit_compositor_unittests (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webkit/compositor/TextureCopierTest.cpp ('k') | webkit/compositor/ThrottledTextureUploaderTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/compositor/TextureLayerChromiumTest.cpp
diff --git a/webkit/compositor/TextureLayerChromiumTest.cpp b/webkit/compositor/TextureLayerChromiumTest.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..b038ac0f0f81cede8d8a7298fb9a94a8a23f228b
--- /dev/null
+++ b/webkit/compositor/TextureLayerChromiumTest.cpp
@@ -0,0 +1,116 @@
+// Copyright 2012 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 "config.h"
+
+#include "TextureLayerChromium.h"
+
+#include "CCLayerTreeHost.h"
+#include "FakeCCLayerTreeHostClient.h"
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include <public/WebCompositor.h>
+
+using namespace WebCore;
+using ::testing::Mock;
+using ::testing::_;
+using ::testing::AtLeast;
+using ::testing::AnyNumber;
+
+namespace {
+
+class MockCCLayerTreeHost : public CCLayerTreeHost {
+public:
+ MockCCLayerTreeHost()
+ : CCLayerTreeHost(&m_fakeClient, CCLayerTreeSettings())
+ {
+ initialize();
+ }
+
+ MOCK_METHOD0(acquireLayerTextures, void());
+
+private:
+ FakeCCLayerTreeHostClient m_fakeClient;
+};
+
+
+class TextureLayerChromiumTest : public testing::Test {
+protected:
+ virtual void SetUp()
+ {
+ // Initialize without threading support.
+ WebKit::WebCompositor::initialize(0);
+ m_layerTreeHost = adoptPtr(new MockCCLayerTreeHost);
+ }
+
+ virtual void TearDown()
+ {
+ Mock::VerifyAndClearExpectations(m_layerTreeHost.get());
+ EXPECT_CALL(*m_layerTreeHost, acquireLayerTextures()).Times(AnyNumber());
+
+ m_layerTreeHost->setRootLayer(0);
+ m_layerTreeHost.clear();
+ WebKit::WebCompositor::shutdown();
+ }
+
+ OwnPtr<MockCCLayerTreeHost> m_layerTreeHost;
+};
+
+TEST_F(TextureLayerChromiumTest, syncImplWhenChangingTextureId)
+{
+ RefPtr<TextureLayerChromium> testLayer = TextureLayerChromium::create(0);
+ ASSERT_TRUE(testLayer);
+
+ EXPECT_CALL(*m_layerTreeHost, acquireLayerTextures()).Times(AnyNumber());
+ m_layerTreeHost->setRootLayer(testLayer);
+ Mock::VerifyAndClearExpectations(m_layerTreeHost.get());
+ EXPECT_EQ(testLayer->layerTreeHost(), m_layerTreeHost.get());
+
+ EXPECT_CALL(*m_layerTreeHost, acquireLayerTextures()).Times(0);
+ testLayer->setTextureId(1);
+ Mock::VerifyAndClearExpectations(m_layerTreeHost.get());
+
+ EXPECT_CALL(*m_layerTreeHost, acquireLayerTextures()).Times(AtLeast(1));
+ testLayer->setTextureId(2);
+ Mock::VerifyAndClearExpectations(m_layerTreeHost.get());
+
+ EXPECT_CALL(*m_layerTreeHost, acquireLayerTextures()).Times(AtLeast(1));
+ testLayer->setTextureId(0);
+ Mock::VerifyAndClearExpectations(m_layerTreeHost.get());
+}
+
+TEST_F(TextureLayerChromiumTest, syncImplWhenRemovingFromTree)
+{
+ RefPtr<LayerChromium> rootLayer = LayerChromium::create();
+ ASSERT_TRUE(rootLayer);
+ RefPtr<LayerChromium> childLayer = LayerChromium::create();
+ ASSERT_TRUE(childLayer);
+ rootLayer->addChild(childLayer);
+ RefPtr<TextureLayerChromium> testLayer = TextureLayerChromium::create(0);
+ ASSERT_TRUE(testLayer);
+ testLayer->setTextureId(0);
+ childLayer->addChild(testLayer);
+
+ EXPECT_CALL(*m_layerTreeHost, acquireLayerTextures()).Times(AnyNumber());
+ m_layerTreeHost->setRootLayer(rootLayer);
+ Mock::VerifyAndClearExpectations(m_layerTreeHost.get());
+
+ EXPECT_CALL(*m_layerTreeHost, acquireLayerTextures()).Times(0);
+ testLayer->removeFromParent();
+ Mock::VerifyAndClearExpectations(m_layerTreeHost.get());
+
+ EXPECT_CALL(*m_layerTreeHost, acquireLayerTextures()).Times(0);
+ childLayer->addChild(testLayer);
+ Mock::VerifyAndClearExpectations(m_layerTreeHost.get());
+
+ EXPECT_CALL(*m_layerTreeHost, acquireLayerTextures()).Times(0);
+ testLayer->setTextureId(1);
+ Mock::VerifyAndClearExpectations(m_layerTreeHost.get());
+
+ EXPECT_CALL(*m_layerTreeHost, acquireLayerTextures()).Times(AtLeast(1));
+ testLayer->removeFromParent();
+ Mock::VerifyAndClearExpectations(m_layerTreeHost.get());
+}
+
+} // anonymous namespace
« no previous file with comments | « webkit/compositor/TextureCopierTest.cpp ('k') | webkit/compositor/ThrottledTextureUploaderTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698