|
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 } |