gfx/tests/gtest/TestTiledLayerBuffer.cpp

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:62f7483b90c5
1 /* vim:set ts=2 sw=2 sts=2 et: */
2 /* Any copyright is dedicated to the Public Domain.
3 * http://creativecommons.org/publicdomain/zero/1.0/
4 */
5
6 #include "TiledLayerBuffer.h"
7
8 #include "gtest/gtest.h"
9
10 namespace mozilla {
11 namespace layers {
12
13 struct TestTiledLayerTile {
14 int value;
15 TestTiledLayerTile(int v = 0) {
16 value = v;
17 }
18 bool operator== (const TestTiledLayerTile& o) const {
19 return value == o.value;
20 }
21 bool operator!= (const TestTiledLayerTile& o) const {
22 return value != o.value;
23 }
24 };
25
26 class TestTiledLayerBuffer : public TiledLayerBuffer<TestTiledLayerBuffer, TestTiledLayerTile>
27 {
28 friend class TiledLayerBuffer<TestTiledLayerBuffer, TestTiledLayerTile>;
29
30 public:
31 TestTiledLayerTile GetPlaceholderTile() const {
32 return TestTiledLayerTile(-1);
33 }
34
35 TestTiledLayerTile ValidateTile(TestTiledLayerTile aTile, const nsIntPoint& aTileOrigin, const nsIntRegion& aDirtyRect) {
36 return TestTiledLayerTile();
37 }
38
39 void ReleaseTile(TestTiledLayerTile aTile)
40 {
41
42 }
43
44 void SwapTiles(TestTiledLayerTile& aTileA, TestTiledLayerTile& aTileB)
45 {
46 TestTiledLayerTile oldTileA = aTileA;
47 aTileA = aTileB;
48 aTileB = oldTileA;
49 }
50
51 void TestUpdate(const nsIntRegion& aNewValidRegion, const nsIntRegion& aPaintRegion)
52 {
53 Update(aNewValidRegion, aPaintRegion);
54 }
55 };
56
57 TEST(TiledLayerBuffer, TileConstructor) {
58 TestTiledLayerBuffer buffer;
59 }
60
61 TEST(TiledLayerBuffer, TileStart) {
62 TestTiledLayerBuffer buffer;
63
64 ASSERT_EQ(buffer.RoundDownToTileEdge(10, 256), 0);
65 ASSERT_EQ(buffer.RoundDownToTileEdge(-10, 256), -256);
66 }
67
68 TEST(TiledLayerBuffer, EmptyUpdate) {
69 TestTiledLayerBuffer buffer;
70
71 nsIntRegion validRegion(nsIntRect(0, 0, 10, 10));
72 buffer.TestUpdate(validRegion, validRegion);
73
74 ASSERT_EQ(buffer.GetValidRegion(), validRegion);
75 }
76
77 }
78 }

mercurial