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

Side by Side Diff: blimp/common/compositor/blimp_picture_cache_registry_unittest.cc

Issue 1982893002: [blimp] Add SkPicture caching support. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix non-existing SkPicture::uniqueID() when dealing with display items without SkPictures Created 4 years, 7 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 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.
4
5 #include "blimp/common/compositor/blimp_picture_cache_registry.h"
6
7 #include <stdint.h>
8 #include <set>
9
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 namespace blimp {
13 namespace {
14
15 bool Contains(std::set<uint32_t> haystack, uint32_t needle) {
16 return haystack.find(needle) != haystack.end();
17 }
18
19 class BlimpPictureCacheRegistryTest : public testing::Test {
20 protected:
21 BlimpPictureCacheRegistry registry_;
22 std::set<uint32_t> added_;
23 std::set<uint32_t> removed_;
24 };
25
26 TEST_F(BlimpPictureCacheRegistryTest, SingleItemCommitFlow) {
27 registry_.Commit(&added_, &removed_);
28 EXPECT_EQ(0U, added_.size());
29 EXPECT_EQ(0U, removed_.size());
30
31 uint32_t item = 1;
32 registry_.Stage(item);
33 registry_.Commit(&added_, &removed_);
34 EXPECT_EQ(1U, added_.size());
35 EXPECT_EQ(0U, removed_.size());
36 EXPECT_TRUE(Contains(added_, item));
37 added_.clear();
38
39 registry_.Commit(&added_, &removed_);
40 EXPECT_EQ(0U, added_.size());
41 EXPECT_EQ(0U, removed_.size());
42
43 registry_.Unstage(item);
44 registry_.Commit(&added_, &removed_);
45 EXPECT_EQ(0U, added_.size());
46 EXPECT_EQ(1U, removed_.size());
47 EXPECT_TRUE(Contains(removed_, item));
48 }
49
50 TEST_F(BlimpPictureCacheRegistryTest,
51 SingleItemStagedMultipleTimesInSingleCommit) {
52 uint32_t item = 1;
53 registry_.Stage(item);
54 registry_.Stage(item);
55 registry_.Commit(&added_, &removed_);
56 EXPECT_EQ(1U, added_.size());
57 EXPECT_EQ(0U, removed_.size());
58 EXPECT_TRUE(Contains(added_, item));
59 added_.clear();
60
61 registry_.Commit(&added_, &removed_);
62 EXPECT_EQ(0U, added_.size());
63 EXPECT_EQ(0U, removed_.size());
64
65 registry_.Unstage(item);
66 registry_.Unstage(item);
67 registry_.Commit(&added_, &removed_);
68 EXPECT_EQ(0U, added_.size());
69 EXPECT_EQ(1U, removed_.size());
70 EXPECT_TRUE(Contains(removed_, item));
71 }
72
73 TEST_F(BlimpPictureCacheRegistryTest,
74 SingleItemStagedMultipleTimesAcrossCommits) {
75 uint32_t item = 1;
76 registry_.Stage(item);
77 registry_.Commit(&added_, &removed_);
78 EXPECT_EQ(1U, added_.size());
79 EXPECT_EQ(0U, removed_.size());
80 EXPECT_TRUE(Contains(added_, item));
81 added_.clear();
82
83 registry_.Stage(item);
84 registry_.Commit(&added_, &removed_);
85 EXPECT_EQ(0U, added_.size());
86 EXPECT_EQ(0U, removed_.size());
87
88 registry_.Unstage(item);
89 registry_.Commit(&added_, &removed_);
90 EXPECT_EQ(0U, added_.size());
91 EXPECT_EQ(0U, removed_.size());
92
93 registry_.Unstage(item);
94 registry_.Commit(&added_, &removed_);
95 EXPECT_EQ(0U, added_.size());
96 EXPECT_EQ(1U, removed_.size());
97 EXPECT_TRUE(Contains(removed_, item));
98 }
99
100 TEST_F(BlimpPictureCacheRegistryTest, SingleItemStagedAndUnstaged) {
101 uint32_t item = 1;
102 registry_.Stage(item);
103 registry_.Unstage(item);
104 registry_.Commit(&added_, &removed_);
105 EXPECT_EQ(0U, added_.size());
106 EXPECT_EQ(0U, removed_.size());
107
108 registry_.Stage(item);
109 registry_.Unstage(item);
110 registry_.Stage(item);
111 registry_.Commit(&added_, &removed_);
112 EXPECT_EQ(1U, added_.size());
113 EXPECT_EQ(0U, removed_.size());
114 EXPECT_TRUE(Contains(added_, item));
115 added_.clear();
116
117 registry_.Unstage(item);
118 registry_.Stage(item);
119 registry_.Unstage(item);
120 registry_.Commit(&added_, &removed_);
121 EXPECT_EQ(0U, added_.size());
122 EXPECT_EQ(1U, removed_.size());
123 EXPECT_TRUE(Contains(removed_, item));
124 }
125
126 TEST_F(BlimpPictureCacheRegistryTest, MultipleItemsStaged) {
127 uint32_t item1 = 1;
128 uint32_t item2 = 2;
129 uint32_t item3 = 3;
130 registry_.Stage(item1);
131 registry_.Stage(item2);
132 registry_.Stage(item3);
133 registry_.Commit(&added_, &removed_);
134 EXPECT_EQ(3U, added_.size());
135 EXPECT_EQ(0U, removed_.size());
136 EXPECT_TRUE(Contains(added_, item1));
137 EXPECT_TRUE(Contains(added_, item2));
138 EXPECT_TRUE(Contains(added_, item3));
139 added_.clear();
140
141 registry_.Unstage(item3);
142 registry_.Commit(&added_, &removed_);
143 EXPECT_EQ(0U, added_.size());
144 EXPECT_EQ(1U, removed_.size());
145 EXPECT_TRUE(Contains(removed_, item3));
146 removed_.clear();
147
148 registry_.Unstage(item2);
149 registry_.Stage(item3);
150 registry_.Commit(&added_, &removed_);
151 EXPECT_EQ(1U, added_.size());
152 EXPECT_EQ(1U, removed_.size());
153 EXPECT_TRUE(Contains(added_, item3));
154 EXPECT_TRUE(Contains(removed_, item2));
155 added_.clear();
156 removed_.clear();
157
158 registry_.Stage(item2);
159 registry_.Commit(&added_, &removed_);
160 EXPECT_EQ(1U, added_.size());
161 EXPECT_EQ(0U, removed_.size());
162 EXPECT_TRUE(Contains(added_, item2));
163 added_.clear();
164
165 registry_.Unstage(item1);
166 registry_.Unstage(item2);
167 registry_.Unstage(item3);
168 registry_.Commit(&added_, &removed_);
169 EXPECT_EQ(0U, added_.size());
170 EXPECT_EQ(3U, removed_.size());
171 EXPECT_TRUE(Contains(removed_, item1));
172 EXPECT_TRUE(Contains(removed_, item2));
173 EXPECT_TRUE(Contains(removed_, item3));
174 }
175
176 } // namespace
177 } // namespace blimp
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698