WebKit merge 128969:128981
[chromium-blink-merge.git] / cc / CCSolidColorLayerImplTest.cpp
blobc6c0d54b973c0516535ee57ec1926a89c0d178d4
1 // Copyright 2012 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.
5 #include "config.h"
7 #include "CCSolidColorLayerImpl.h"
9 #include "CCAppendQuadsData.h"
10 #include "CCLayerTestCommon.h"
11 #include "CCSingleThreadProxy.h"
12 #include "CCSolidColorDrawQuad.h"
13 #include "MockCCQuadCuller.h"
14 #include <gmock/gmock.h>
15 #include <gtest/gtest.h>
17 using namespace cc;
18 using namespace CCLayerTestCommon;
20 namespace {
22 TEST(CCSolidColorLayerImplTest, verifyTilingCompleteAndNoOverlap)
24 DebugScopedSetImplThread scopedImplThread;
26 MockCCQuadCuller quadCuller;
27 IntSize layerSize = IntSize(800, 600);
28 IntRect visibleContentRect = IntRect(IntPoint(), layerSize);
30 OwnPtr<CCSolidColorLayerImpl> layer = CCSolidColorLayerImpl::create(1);
31 layer->setVisibleContentRect(visibleContentRect);
32 layer->setBounds(layerSize);
33 layer->setContentBounds(layerSize);
34 layer->createRenderSurface();
35 layer->setRenderTarget(layer.get());
37 CCAppendQuadsData data;
38 layer->appendQuads(quadCuller, data);
40 verifyQuadsExactlyCoverRect(quadCuller.quadList(), visibleContentRect);
43 TEST(CCSolidColorLayerImplTest, verifyCorrectBackgroundColorInQuad)
45 DebugScopedSetImplThread scopedImplThread;
47 SkColor testColor = 0xFFA55AFF;
49 MockCCQuadCuller quadCuller;
50 IntSize layerSize = IntSize(100, 100);
51 IntRect visibleContentRect = IntRect(IntPoint(), layerSize);
53 OwnPtr<CCSolidColorLayerImpl> layer = CCSolidColorLayerImpl::create(1);
54 layer->setVisibleContentRect(visibleContentRect);
55 layer->setBounds(layerSize);
56 layer->setContentBounds(layerSize);
57 layer->setBackgroundColor(testColor);
58 layer->createRenderSurface();
59 layer->setRenderTarget(layer.get());
61 CCAppendQuadsData data;
62 layer->appendQuads(quadCuller, data);
64 ASSERT_EQ(quadCuller.quadList().size(), 1U);
65 EXPECT_EQ(CCSolidColorDrawQuad::materialCast(quadCuller.quadList()[0].get())->color(), testColor);
68 TEST(CCSolidColorLayerImplTest, verifyCorrectOpacityInQuad)
70 DebugScopedSetImplThread scopedImplThread;
72 const float opacity = 0.5f;
74 MockCCQuadCuller quadCuller;
75 IntSize layerSize = IntSize(100, 100);
76 IntRect visibleContentRect = IntRect(IntPoint(), layerSize);
78 OwnPtr<CCSolidColorLayerImpl> layer = CCSolidColorLayerImpl::create(1);
79 layer->setVisibleContentRect(visibleContentRect);
80 layer->setBounds(layerSize);
81 layer->setContentBounds(layerSize);
82 layer->setDrawOpacity(opacity);
83 layer->createRenderSurface();
84 layer->setRenderTarget(layer.get());
86 CCAppendQuadsData data;
87 layer->appendQuads(quadCuller, data);
89 ASSERT_EQ(quadCuller.quadList().size(), 1U);
90 EXPECT_EQ(opacity, CCSolidColorDrawQuad::materialCast(quadCuller.quadList()[0].get())->opacity());
93 } // namespace