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

Side by Side Diff: chrome/browser/extensions/settings/settings_quota_unittest.cc

Issue 8587025: Extension settings API: force through changes that come from sync (ignoring (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "testing/gtest/include/gtest/gtest.h" 5 #include "testing/gtest/include/gtest/gtest.h"
6 6
7 #include "base/json/json_writer.h" 7 #include "base/json/json_writer.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
11 #include "chrome/browser/extensions/settings/settings_backend.h" 11 #include "chrome/browser/extensions/settings/settings_backend.h"
12 #include "chrome/browser/extensions/settings/settings_storage_cache.h" 12 #include "chrome/browser/extensions/settings/settings_storage_cache.h"
13 #include "chrome/browser/extensions/settings/settings_storage_quota_enforcer.h" 13 #include "chrome/browser/extensions/settings/settings_storage_quota_enforcer.h"
14 #include "chrome/browser/extensions/settings/testing_settings_storage.h" 14 #include "chrome/browser/extensions/settings/testing_settings_storage.h"
15 15
16 namespace extensions { 16 namespace extensions {
17 17
18 // To save typing SettingsStorage::DEFAULTS/FORCE everywhere.
19 const SettingsStorage::WriteOptions DEFAULTS = SettingsStorage::DEFAULTS;
20 const SettingsStorage::WriteOptions FORCE = SettingsStorage::FORCE;
21
18 class ExtensionSettingsQuotaTest : public testing::Test { 22 class ExtensionSettingsQuotaTest : public testing::Test {
19 public: 23 public:
20 ExtensionSettingsQuotaTest() 24 ExtensionSettingsQuotaTest()
21 : byte_value_1_(Value::CreateIntegerValue(1)), 25 : byte_value_1_(Value::CreateIntegerValue(1)),
22 byte_value_16_(Value::CreateStringValue("sixteen bytes.")), 26 byte_value_16_(Value::CreateStringValue("sixteen bytes.")),
23 byte_value_256_(new ListValue()), 27 byte_value_256_(new ListValue()),
24 delegate_(new SettingsStorageCache(new TestingSettingsStorage())) { 28 delegate_(new SettingsStorageCache(new TestingSettingsStorage())) {
25 for (int i = 1; i < 89; ++i) { 29 for (int i = 1; i < 89; ++i) {
26 byte_value_256_->Append(Value::CreateIntegerValue(i)); 30 byte_value_256_->Append(Value::CreateIntegerValue(i));
27 } 31 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 scoped_ptr<SettingsStorageQuotaEnforcer> storage_; 72 scoped_ptr<SettingsStorageQuotaEnforcer> storage_;
69 73
70 // In-memory storage area being delegated to. Always owned by |storage_|. 74 // In-memory storage area being delegated to. Always owned by |storage_|.
71 SettingsStorageCache* delegate_; 75 SettingsStorageCache* delegate_;
72 }; 76 };
73 77
74 TEST_F(ExtensionSettingsQuotaTest, ZeroQuotaBytes) { 78 TEST_F(ExtensionSettingsQuotaTest, ZeroQuotaBytes) {
75 DictionaryValue empty; 79 DictionaryValue empty;
76 CreateStorage(0, UINT_MAX, UINT_MAX); 80 CreateStorage(0, UINT_MAX, UINT_MAX);
77 81
78 EXPECT_TRUE(storage_->Set("a", *byte_value_1_).HasError()); 82 EXPECT_TRUE(storage_->Set(DEFAULTS, "a", *byte_value_1_).HasError());
79 EXPECT_FALSE(storage_->Remove("a").HasError()); 83 EXPECT_FALSE(storage_->Remove(DEFAULTS, "a").HasError());
80 EXPECT_FALSE(storage_->Remove("b").HasError()); 84 EXPECT_FALSE(storage_->Remove(DEFAULTS, "b").HasError());
81 EXPECT_TRUE(SettingsEqual(empty)); 85 EXPECT_TRUE(SettingsEqual(empty));
82 } 86 }
83 87
84 TEST_F(ExtensionSettingsQuotaTest, KeySizeTakenIntoAccount) { 88 TEST_F(ExtensionSettingsQuotaTest, KeySizeTakenIntoAccount) {
85 DictionaryValue empty; 89 DictionaryValue empty;
86 CreateStorage(8u, UINT_MAX, UINT_MAX); 90 CreateStorage(8u, UINT_MAX, UINT_MAX);
87 EXPECT_TRUE(storage_->Set("Really long key", *byte_value_1_).HasError()); 91 EXPECT_TRUE(
92 storage_->Set(DEFAULTS, "Really long key", *byte_value_1_).HasError());
88 EXPECT_TRUE(SettingsEqual(empty)); 93 EXPECT_TRUE(SettingsEqual(empty));
89 } 94 }
90 95
91 TEST_F(ExtensionSettingsQuotaTest, SmallByteQuota) { 96 TEST_F(ExtensionSettingsQuotaTest, SmallByteQuota) {
92 DictionaryValue settings; 97 DictionaryValue settings;
93 CreateStorage(8u, UINT_MAX, UINT_MAX); 98 CreateStorage(8u, UINT_MAX, UINT_MAX);
94 99
95 EXPECT_FALSE(storage_->Set("a", *byte_value_1_).HasError()); 100 EXPECT_FALSE(storage_->Set(DEFAULTS, "a", *byte_value_1_).HasError());
96 settings.Set("a", byte_value_1_->DeepCopy()); 101 settings.Set("a", byte_value_1_->DeepCopy());
97 EXPECT_TRUE(SettingsEqual(settings)); 102 EXPECT_TRUE(SettingsEqual(settings));
98 103
99 EXPECT_TRUE(storage_->Set("b", *byte_value_16_).HasError()); 104 EXPECT_TRUE(storage_->Set(DEFAULTS, "b", *byte_value_16_).HasError());
100 EXPECT_TRUE(storage_->Set("c", *byte_value_256_).HasError()); 105 EXPECT_TRUE(storage_->Set(DEFAULTS, "c", *byte_value_256_).HasError());
101 EXPECT_TRUE(SettingsEqual(settings)); 106 EXPECT_TRUE(SettingsEqual(settings));
102 } 107 }
103 108
104 TEST_F(ExtensionSettingsQuotaTest, MediumByteQuota) { 109 TEST_F(ExtensionSettingsQuotaTest, MediumByteQuota) {
105 DictionaryValue settings; 110 DictionaryValue settings;
106 CreateStorage(40, UINT_MAX, UINT_MAX); 111 CreateStorage(40, UINT_MAX, UINT_MAX);
107 112
108 DictionaryValue to_set; 113 DictionaryValue to_set;
109 to_set.Set("a", byte_value_1_->DeepCopy()); 114 to_set.Set("a", byte_value_1_->DeepCopy());
110 to_set.Set("b", byte_value_16_->DeepCopy()); 115 to_set.Set("b", byte_value_16_->DeepCopy());
111 EXPECT_FALSE(storage_->Set(to_set).HasError()); 116 EXPECT_FALSE(storage_->Set(DEFAULTS, to_set).HasError());
112 settings.Set("a", byte_value_1_->DeepCopy()); 117 settings.Set("a", byte_value_1_->DeepCopy());
113 settings.Set("b", byte_value_16_->DeepCopy()); 118 settings.Set("b", byte_value_16_->DeepCopy());
114 EXPECT_TRUE(SettingsEqual(settings)); 119 EXPECT_TRUE(SettingsEqual(settings));
115 120
116 // Should be able to set value to other under-quota value. 121 // Should be able to set value to other under-quota value.
117 to_set.Set("a", byte_value_16_->DeepCopy()); 122 to_set.Set("a", byte_value_16_->DeepCopy());
118 EXPECT_FALSE(storage_->Set(to_set).HasError()); 123 EXPECT_FALSE(storage_->Set(DEFAULTS, to_set).HasError());
119 settings.Set("a", byte_value_16_->DeepCopy()); 124 settings.Set("a", byte_value_16_->DeepCopy());
120 EXPECT_TRUE(SettingsEqual(settings)); 125 EXPECT_TRUE(SettingsEqual(settings));
121 126
122 EXPECT_TRUE(storage_->Set("c", *byte_value_256_).HasError()); 127 EXPECT_TRUE(storage_->Set(DEFAULTS, "c", *byte_value_256_).HasError());
123 EXPECT_TRUE(SettingsEqual(settings)); 128 EXPECT_TRUE(SettingsEqual(settings));
124 } 129 }
125 130
126 TEST_F(ExtensionSettingsQuotaTest, ZeroMaxKeys) { 131 TEST_F(ExtensionSettingsQuotaTest, ZeroMaxKeys) {
127 DictionaryValue empty; 132 DictionaryValue empty;
128 CreateStorage(UINT_MAX, UINT_MAX, 0); 133 CreateStorage(UINT_MAX, UINT_MAX, 0);
129 134
130 EXPECT_TRUE(storage_->Set("a", *byte_value_1_).HasError()); 135 EXPECT_TRUE(storage_->Set(DEFAULTS, "a", *byte_value_1_).HasError());
131 EXPECT_FALSE(storage_->Remove("a").HasError()); 136 EXPECT_FALSE(storage_->Remove(DEFAULTS, "a").HasError());
132 EXPECT_FALSE(storage_->Remove("b").HasError()); 137 EXPECT_FALSE(storage_->Remove(DEFAULTS, "b").HasError());
133 EXPECT_TRUE(SettingsEqual(empty)); 138 EXPECT_TRUE(SettingsEqual(empty));
134 } 139 }
135 140
136 TEST_F(ExtensionSettingsQuotaTest, SmallMaxKeys) { 141 TEST_F(ExtensionSettingsQuotaTest, SmallMaxKeys) {
137 DictionaryValue settings; 142 DictionaryValue settings;
138 CreateStorage(UINT_MAX, UINT_MAX, 1); 143 CreateStorage(UINT_MAX, UINT_MAX, 1);
139 144
140 EXPECT_FALSE(storage_->Set("a", *byte_value_1_).HasError()); 145 EXPECT_FALSE(storage_->Set(DEFAULTS, "a", *byte_value_1_).HasError());
141 settings.Set("a", byte_value_1_->DeepCopy()); 146 settings.Set("a", byte_value_1_->DeepCopy());
142 EXPECT_TRUE(SettingsEqual(settings)); 147 EXPECT_TRUE(SettingsEqual(settings));
143 148
144 // Should be able to set existing key to other value without going over quota. 149 // Should be able to set existing key to other value without going over quota.
145 EXPECT_FALSE(storage_->Set("a", *byte_value_16_).HasError()); 150 EXPECT_FALSE(storage_->Set(DEFAULTS, "a", *byte_value_16_).HasError());
146 settings.Set("a", byte_value_16_->DeepCopy()); 151 settings.Set("a", byte_value_16_->DeepCopy());
147 EXPECT_TRUE(SettingsEqual(settings)); 152 EXPECT_TRUE(SettingsEqual(settings));
148 153
149 EXPECT_TRUE(storage_->Set("b", *byte_value_16_).HasError()); 154 EXPECT_TRUE(storage_->Set(DEFAULTS, "b", *byte_value_16_).HasError());
150 EXPECT_TRUE(storage_->Set("c", *byte_value_256_).HasError()); 155 EXPECT_TRUE(storage_->Set(DEFAULTS, "c", *byte_value_256_).HasError());
151 EXPECT_TRUE(SettingsEqual(settings)); 156 EXPECT_TRUE(SettingsEqual(settings));
152 } 157 }
153 158
154 TEST_F(ExtensionSettingsQuotaTest, MediumMaxKeys) { 159 TEST_F(ExtensionSettingsQuotaTest, MediumMaxKeys) {
155 DictionaryValue settings; 160 DictionaryValue settings;
156 CreateStorage(UINT_MAX, UINT_MAX, 2); 161 CreateStorage(UINT_MAX, UINT_MAX, 2);
157 162
158 DictionaryValue to_set; 163 DictionaryValue to_set;
159 to_set.Set("a", byte_value_1_->DeepCopy()); 164 to_set.Set("a", byte_value_1_->DeepCopy());
160 to_set.Set("b", byte_value_16_->DeepCopy()); 165 to_set.Set("b", byte_value_16_->DeepCopy());
161 EXPECT_FALSE(storage_->Set(to_set).HasError()); 166 EXPECT_FALSE(storage_->Set(DEFAULTS, to_set).HasError());
162 settings.Set("a", byte_value_1_->DeepCopy()); 167 settings.Set("a", byte_value_1_->DeepCopy());
163 settings.Set("b", byte_value_16_->DeepCopy()); 168 settings.Set("b", byte_value_16_->DeepCopy());
164 EXPECT_TRUE(SettingsEqual(settings)); 169 EXPECT_TRUE(SettingsEqual(settings));
165 170
166 // Should be able to set existing keys to other values without going over 171 // Should be able to set existing keys to other values without going over
167 // quota. 172 // quota.
168 to_set.Set("a", byte_value_16_->DeepCopy()); 173 to_set.Set("a", byte_value_16_->DeepCopy());
169 EXPECT_FALSE(storage_->Set(to_set).HasError()); 174 EXPECT_FALSE(storage_->Set(DEFAULTS, to_set).HasError());
170 settings.Set("a", byte_value_16_->DeepCopy()); 175 settings.Set("a", byte_value_16_->DeepCopy());
171 EXPECT_TRUE(SettingsEqual(settings)); 176 EXPECT_TRUE(SettingsEqual(settings));
172 177
173 EXPECT_TRUE(storage_->Set("c", *byte_value_256_).HasError()); 178 EXPECT_TRUE(storage_->Set(DEFAULTS, "c", *byte_value_256_).HasError());
174 EXPECT_TRUE(SettingsEqual(settings)); 179 EXPECT_TRUE(SettingsEqual(settings));
175 } 180 }
176 181
177 TEST_F(ExtensionSettingsQuotaTest, RemovingExistingSettings) { 182 TEST_F(ExtensionSettingsQuotaTest, RemovingExistingSettings) {
178 DictionaryValue settings; 183 DictionaryValue settings;
179 CreateStorage(266, UINT_MAX, 2); 184 CreateStorage(266, UINT_MAX, 2);
180 185
181 storage_->Set("b", *byte_value_16_); 186 storage_->Set(DEFAULTS, "b", *byte_value_16_);
182 settings.Set("b", byte_value_16_->DeepCopy()); 187 settings.Set("b", byte_value_16_->DeepCopy());
183 // Not enough quota. 188 // Not enough quota.
184 storage_->Set("c", *byte_value_256_); 189 storage_->Set(DEFAULTS, "c", *byte_value_256_);
185 EXPECT_TRUE(SettingsEqual(settings)); 190 EXPECT_TRUE(SettingsEqual(settings));
186 191
187 // Try again with "b" removed, enough quota. 192 // Try again with "b" removed, enough quota.
188 EXPECT_FALSE(storage_->Remove("b").HasError()); 193 EXPECT_FALSE(storage_->Remove(DEFAULTS, "b").HasError());
189 settings.Remove("b", NULL); 194 settings.Remove("b", NULL);
190 EXPECT_FALSE(storage_->Set("c", *byte_value_256_).HasError()); 195 EXPECT_FALSE(storage_->Set(DEFAULTS, "c", *byte_value_256_).HasError());
191 settings.Set("c", byte_value_256_->DeepCopy()); 196 settings.Set("c", byte_value_256_->DeepCopy());
192 EXPECT_TRUE(SettingsEqual(settings)); 197 EXPECT_TRUE(SettingsEqual(settings));
193 198
194 // Enough byte quota but max keys not high enough. 199 // Enough byte quota but max keys not high enough.
195 EXPECT_FALSE(storage_->Set("a", *byte_value_1_).HasError()); 200 EXPECT_FALSE(storage_->Set(DEFAULTS, "a", *byte_value_1_).HasError());
196 settings.Set("a", byte_value_1_->DeepCopy()); 201 settings.Set("a", byte_value_1_->DeepCopy());
197 EXPECT_TRUE(SettingsEqual(settings)); 202 EXPECT_TRUE(SettingsEqual(settings));
198 203
199 EXPECT_TRUE(storage_->Set("b", *byte_value_1_).HasError()); 204 EXPECT_TRUE(storage_->Set(DEFAULTS, "b", *byte_value_1_).HasError());
200 EXPECT_TRUE(SettingsEqual(settings)); 205 EXPECT_TRUE(SettingsEqual(settings));
201 206
202 // Back under max keys. 207 // Back under max keys.
203 EXPECT_FALSE(storage_->Remove("a").HasError()); 208 EXPECT_FALSE(storage_->Remove(DEFAULTS, "a").HasError());
204 settings.Remove("a", NULL); 209 settings.Remove("a", NULL);
205 EXPECT_FALSE(storage_->Set("b", *byte_value_1_).HasError()); 210 EXPECT_FALSE(storage_->Set(DEFAULTS, "b", *byte_value_1_).HasError());
206 settings.Set("b", byte_value_1_->DeepCopy()); 211 settings.Set("b", byte_value_1_->DeepCopy());
207 EXPECT_TRUE(SettingsEqual(settings)); 212 EXPECT_TRUE(SettingsEqual(settings));
208 } 213 }
209 214
210 TEST_F(ExtensionSettingsQuotaTest, RemovingNonexistentSettings) { 215 TEST_F(ExtensionSettingsQuotaTest, RemovingNonexistentSettings) {
211 DictionaryValue settings; 216 DictionaryValue settings;
212 CreateStorage(36, UINT_MAX, 3); 217 CreateStorage(36, UINT_MAX, 3);
213 218
214 // Max out bytes. 219 // Max out bytes.
215 DictionaryValue to_set; 220 DictionaryValue to_set;
216 to_set.Set("b1", byte_value_16_->DeepCopy()); 221 to_set.Set("b1", byte_value_16_->DeepCopy());
217 to_set.Set("b2", byte_value_16_->DeepCopy()); 222 to_set.Set("b2", byte_value_16_->DeepCopy());
218 storage_->Set(to_set); 223 storage_->Set(DEFAULTS, to_set);
219 settings.Set("b1", byte_value_16_->DeepCopy()); 224 settings.Set("b1", byte_value_16_->DeepCopy());
220 settings.Set("b2", byte_value_16_->DeepCopy()); 225 settings.Set("b2", byte_value_16_->DeepCopy());
221 EXPECT_TRUE(storage_->Set("a", *byte_value_1_).HasError()); 226 EXPECT_TRUE(storage_->Set(DEFAULTS, "a", *byte_value_1_).HasError());
222 EXPECT_TRUE(SettingsEqual(settings)); 227 EXPECT_TRUE(SettingsEqual(settings));
223 228
224 // Remove some settings that don't exist. 229 // Remove some settings that don't exist.
225 std::vector<std::string> to_remove; 230 std::vector<std::string> to_remove;
226 to_remove.push_back("a1"); 231 to_remove.push_back("a1");
227 to_remove.push_back("a2"); 232 to_remove.push_back("a2");
228 EXPECT_FALSE(storage_->Remove(to_remove).HasError()); 233 EXPECT_FALSE(storage_->Remove(DEFAULTS, to_remove).HasError());
229 EXPECT_FALSE(storage_->Remove("b").HasError()); 234 EXPECT_FALSE(storage_->Remove(DEFAULTS, "b").HasError());
230 EXPECT_TRUE(SettingsEqual(settings)); 235 EXPECT_TRUE(SettingsEqual(settings));
231 236
232 // Still no quota. 237 // Still no quota.
233 EXPECT_TRUE(storage_->Set("a", *byte_value_1_).HasError()); 238 EXPECT_TRUE(storage_->Set(DEFAULTS, "a", *byte_value_1_).HasError());
234 EXPECT_TRUE(SettingsEqual(settings)); 239 EXPECT_TRUE(SettingsEqual(settings));
235 240
236 // Max out key count. 241 // Max out key count.
237 to_set.Clear(); 242 to_set.Clear();
238 to_set.Set("b1", byte_value_1_->DeepCopy()); 243 to_set.Set("b1", byte_value_1_->DeepCopy());
239 to_set.Set("b2", byte_value_1_->DeepCopy()); 244 to_set.Set("b2", byte_value_1_->DeepCopy());
240 storage_->Set(to_set); 245 storage_->Set(DEFAULTS, to_set);
241 settings.Set("b1", byte_value_1_->DeepCopy()); 246 settings.Set("b1", byte_value_1_->DeepCopy());
242 settings.Set("b2", byte_value_1_->DeepCopy()); 247 settings.Set("b2", byte_value_1_->DeepCopy());
243 storage_->Set("b3", *byte_value_1_); 248 storage_->Set(DEFAULTS, "b3", *byte_value_1_);
244 settings.Set("b3", byte_value_1_->DeepCopy()); 249 settings.Set("b3", byte_value_1_->DeepCopy());
245 EXPECT_TRUE(SettingsEqual(settings)); 250 EXPECT_TRUE(SettingsEqual(settings));
246 251
247 // Remove some settings that don't exist. 252 // Remove some settings that don't exist.
248 to_remove.clear(); 253 to_remove.clear();
249 to_remove.push_back("a1"); 254 to_remove.push_back("a1");
250 to_remove.push_back("a2"); 255 to_remove.push_back("a2");
251 EXPECT_FALSE(storage_->Remove(to_remove).HasError()); 256 EXPECT_FALSE(storage_->Remove(DEFAULTS, to_remove).HasError());
252 EXPECT_FALSE(storage_->Remove("b").HasError()); 257 EXPECT_FALSE(storage_->Remove(DEFAULTS, "b").HasError());
253 EXPECT_TRUE(SettingsEqual(settings)); 258 EXPECT_TRUE(SettingsEqual(settings));
254 259
255 // Still no quota. 260 // Still no quota.
256 EXPECT_TRUE(storage_->Set("a", *byte_value_1_).HasError()); 261 EXPECT_TRUE(storage_->Set(DEFAULTS, "a", *byte_value_1_).HasError());
257 EXPECT_TRUE(SettingsEqual(settings)); 262 EXPECT_TRUE(SettingsEqual(settings));
258 } 263 }
259 264
260 TEST_F(ExtensionSettingsQuotaTest, Clear) { 265 TEST_F(ExtensionSettingsQuotaTest, Clear) {
261 DictionaryValue settings; 266 DictionaryValue settings;
262 CreateStorage(40, UINT_MAX, 5); 267 CreateStorage(40, UINT_MAX, 5);
263 268
264 // Test running out of byte quota. 269 // Test running out of byte quota.
265 { 270 {
266 DictionaryValue to_set; 271 DictionaryValue to_set;
267 to_set.Set("a", byte_value_16_->DeepCopy()); 272 to_set.Set("a", byte_value_16_->DeepCopy());
268 to_set.Set("b", byte_value_16_->DeepCopy()); 273 to_set.Set("b", byte_value_16_->DeepCopy());
269 EXPECT_FALSE(storage_->Set(to_set).HasError()); 274 EXPECT_FALSE(storage_->Set(DEFAULTS, to_set).HasError());
270 EXPECT_TRUE(storage_->Set("c", *byte_value_16_).HasError()); 275 EXPECT_TRUE(storage_->Set(DEFAULTS, "c", *byte_value_16_).HasError());
271 276
272 EXPECT_FALSE(storage_->Clear().HasError()); 277 EXPECT_FALSE(storage_->Clear(DEFAULTS).HasError());
273 278
274 // (repeat) 279 // (repeat)
275 EXPECT_FALSE(storage_->Set(to_set).HasError()); 280 EXPECT_FALSE(storage_->Set(DEFAULTS, to_set).HasError());
276 EXPECT_TRUE(storage_->Set("c", *byte_value_16_).HasError()); 281 EXPECT_TRUE(storage_->Set(DEFAULTS, "c", *byte_value_16_).HasError());
277 } 282 }
278 283
279 // Test reaching max keys. 284 // Test reaching max keys.
280 storage_->Clear(); 285 storage_->Clear(DEFAULTS);
281 { 286 {
282 DictionaryValue to_set; 287 DictionaryValue to_set;
283 to_set.Set("a", byte_value_1_->DeepCopy()); 288 to_set.Set("a", byte_value_1_->DeepCopy());
284 to_set.Set("b", byte_value_1_->DeepCopy()); 289 to_set.Set("b", byte_value_1_->DeepCopy());
285 to_set.Set("c", byte_value_1_->DeepCopy()); 290 to_set.Set("c", byte_value_1_->DeepCopy());
286 to_set.Set("d", byte_value_1_->DeepCopy()); 291 to_set.Set("d", byte_value_1_->DeepCopy());
287 to_set.Set("e", byte_value_1_->DeepCopy()); 292 to_set.Set("e", byte_value_1_->DeepCopy());
288 EXPECT_FALSE(storage_->Set(to_set).HasError()); 293 EXPECT_FALSE(storage_->Set(DEFAULTS, to_set).HasError());
289 EXPECT_TRUE(storage_->Set("f", *byte_value_1_).HasError()); 294 EXPECT_TRUE(storage_->Set(DEFAULTS, "f", *byte_value_1_).HasError());
290 295
291 storage_->Clear(); 296 storage_->Clear(DEFAULTS);
292 297
293 // (repeat) 298 // (repeat)
294 EXPECT_FALSE(storage_->Set(to_set).HasError()); 299 EXPECT_FALSE(storage_->Set(DEFAULTS, to_set).HasError());
295 EXPECT_TRUE(storage_->Set("f", *byte_value_1_).HasError()); 300 EXPECT_TRUE(storage_->Set(DEFAULTS, "f", *byte_value_1_).HasError());
296 } 301 }
297 } 302 }
298 303
299 TEST_F(ExtensionSettingsQuotaTest, ChangingUsedBytesWithSet) { 304 TEST_F(ExtensionSettingsQuotaTest, ChangingUsedBytesWithSet) {
300 DictionaryValue settings; 305 DictionaryValue settings;
301 CreateStorage(20, UINT_MAX, UINT_MAX); 306 CreateStorage(20, UINT_MAX, UINT_MAX);
302 307
303 // Change a setting to make it go over quota. 308 // Change a setting to make it go over quota.
304 storage_->Set("a", *byte_value_16_); 309 storage_->Set(DEFAULTS, "a", *byte_value_16_);
305 settings.Set("a", byte_value_16_->DeepCopy()); 310 settings.Set("a", byte_value_16_->DeepCopy());
306 EXPECT_TRUE(SettingsEqual(settings)); 311 EXPECT_TRUE(SettingsEqual(settings));
307 312
308 EXPECT_TRUE(storage_->Set("a", *byte_value_256_).HasError()); 313 EXPECT_TRUE(storage_->Set(DEFAULTS, "a", *byte_value_256_).HasError());
309 EXPECT_TRUE(SettingsEqual(settings)); 314 EXPECT_TRUE(SettingsEqual(settings));
310 315
311 // Change a setting to reduce usage and room for another setting. 316 // Change a setting to reduce usage and room for another setting.
312 EXPECT_TRUE(storage_->Set("foobar", *byte_value_1_).HasError()); 317 EXPECT_TRUE(storage_->Set(DEFAULTS, "foobar", *byte_value_1_).HasError());
313 storage_->Set("a", *byte_value_1_); 318 storage_->Set(DEFAULTS, "a", *byte_value_1_);
314 settings.Set("a", byte_value_1_->DeepCopy()); 319 settings.Set("a", byte_value_1_->DeepCopy());
315 320
316 EXPECT_FALSE(storage_->Set("foobar", *byte_value_1_).HasError()); 321 EXPECT_FALSE(storage_->Set(DEFAULTS, "foobar", *byte_value_1_).HasError());
317 settings.Set("foobar", byte_value_1_->DeepCopy()); 322 settings.Set("foobar", byte_value_1_->DeepCopy());
318 EXPECT_TRUE(SettingsEqual(settings)); 323 EXPECT_TRUE(SettingsEqual(settings));
319 } 324 }
320 325
321 TEST_F(ExtensionSettingsQuotaTest, SetsOnlyEntirelyCompletedWithByteQuota) { 326 TEST_F(ExtensionSettingsQuotaTest, SetsOnlyEntirelyCompletedWithByteQuota) {
322 DictionaryValue settings; 327 DictionaryValue settings;
323 CreateStorage(40, UINT_MAX, UINT_MAX); 328 CreateStorage(40, UINT_MAX, UINT_MAX);
324 329
325 storage_->Set("a", *byte_value_16_); 330 storage_->Set(DEFAULTS, "a", *byte_value_16_);
326 settings.Set("a", byte_value_16_->DeepCopy()); 331 settings.Set("a", byte_value_16_->DeepCopy());
327 332
328 // The entire change is over quota. 333 // The entire change is over quota.
329 DictionaryValue to_set; 334 DictionaryValue to_set;
330 to_set.Set("b", byte_value_16_->DeepCopy()); 335 to_set.Set("b", byte_value_16_->DeepCopy());
331 to_set.Set("c", byte_value_16_->DeepCopy()); 336 to_set.Set("c", byte_value_16_->DeepCopy());
332 EXPECT_TRUE(storage_->Set(to_set).HasError()); 337 EXPECT_TRUE(storage_->Set(DEFAULTS, to_set).HasError());
333 EXPECT_TRUE(SettingsEqual(settings)); 338 EXPECT_TRUE(SettingsEqual(settings));
334 339
335 // The entire change is over quota, but quota reduced in existing key. 340 // The entire change is over quota, but quota reduced in existing key.
336 to_set.Set("a", byte_value_1_->DeepCopy()); 341 to_set.Set("a", byte_value_1_->DeepCopy());
337 EXPECT_FALSE(storage_->Set(to_set).HasError()); 342 EXPECT_FALSE(storage_->Set(DEFAULTS, to_set).HasError());
338 settings.Set("a", byte_value_1_->DeepCopy()); 343 settings.Set("a", byte_value_1_->DeepCopy());
339 settings.Set("b", byte_value_16_->DeepCopy()); 344 settings.Set("b", byte_value_16_->DeepCopy());
340 settings.Set("c", byte_value_16_->DeepCopy()); 345 settings.Set("c", byte_value_16_->DeepCopy());
341 EXPECT_TRUE(SettingsEqual(settings)); 346 EXPECT_TRUE(SettingsEqual(settings));
342 } 347 }
343 348
344 TEST_F(ExtensionSettingsQuotaTest, SetsOnlyEntireCompletedWithMaxKeys) { 349 TEST_F(ExtensionSettingsQuotaTest, SetsOnlyEntireCompletedWithMaxKeys) {
345 DictionaryValue settings; 350 DictionaryValue settings;
346 CreateStorage(UINT_MAX, UINT_MAX, 2); 351 CreateStorage(UINT_MAX, UINT_MAX, 2);
347 352
348 storage_->Set("a", *byte_value_1_); 353 storage_->Set(DEFAULTS, "a", *byte_value_1_);
349 settings.Set("a", byte_value_1_->DeepCopy()); 354 settings.Set("a", byte_value_1_->DeepCopy());
350 355
351 DictionaryValue to_set; 356 DictionaryValue to_set;
352 to_set.Set("b", byte_value_16_->DeepCopy()); 357 to_set.Set("b", byte_value_16_->DeepCopy());
353 to_set.Set("c", byte_value_16_->DeepCopy()); 358 to_set.Set("c", byte_value_16_->DeepCopy());
354 EXPECT_TRUE(storage_->Set(to_set).HasError()); 359 EXPECT_TRUE(storage_->Set(DEFAULTS, to_set).HasError());
355 EXPECT_TRUE(SettingsEqual(settings)); 360 EXPECT_TRUE(SettingsEqual(settings));
356 } 361 }
357 362
358 TEST_F(ExtensionSettingsQuotaTest, WithInitialDataAndByteQuota) { 363 TEST_F(ExtensionSettingsQuotaTest, WithInitialDataAndByteQuota) {
359 DictionaryValue settings; 364 DictionaryValue settings;
360 delegate_->Set("a", *byte_value_256_); 365 delegate_->Set(DEFAULTS, "a", *byte_value_256_);
361 settings.Set("a", byte_value_256_->DeepCopy()); 366 settings.Set("a", byte_value_256_->DeepCopy());
362 367
363 CreateStorage(280, UINT_MAX, UINT_MAX); 368 CreateStorage(280, UINT_MAX, UINT_MAX);
364 EXPECT_TRUE(SettingsEqual(settings)); 369 EXPECT_TRUE(SettingsEqual(settings));
365 370
366 // Add some data. 371 // Add some data.
367 EXPECT_FALSE(storage_->Set("b", *byte_value_16_).HasError()); 372 EXPECT_FALSE(storage_->Set(DEFAULTS, "b", *byte_value_16_).HasError());
368 settings.Set("b", byte_value_16_->DeepCopy()); 373 settings.Set("b", byte_value_16_->DeepCopy());
369 EXPECT_TRUE(SettingsEqual(settings)); 374 EXPECT_TRUE(SettingsEqual(settings));
370 375
371 // Not enough quota. 376 // Not enough quota.
372 EXPECT_TRUE(storage_->Set("c", *byte_value_16_).HasError()); 377 EXPECT_TRUE(storage_->Set(DEFAULTS, "c", *byte_value_16_).HasError());
373 EXPECT_TRUE(SettingsEqual(settings)); 378 EXPECT_TRUE(SettingsEqual(settings));
374 379
375 // Reduce usage of original setting so that "c" can fit. 380 // Reduce usage of original setting so that "c" can fit.
376 EXPECT_FALSE(storage_->Set("a", *byte_value_16_).HasError()); 381 EXPECT_FALSE(storage_->Set(DEFAULTS, "a", *byte_value_16_).HasError());
377 settings.Set("a", byte_value_16_->DeepCopy()); 382 settings.Set("a", byte_value_16_->DeepCopy());
378 EXPECT_TRUE(SettingsEqual(settings)); 383 EXPECT_TRUE(SettingsEqual(settings));
379 384
380 EXPECT_FALSE(storage_->Set("c", *byte_value_16_).HasError()); 385 EXPECT_FALSE(storage_->Set(DEFAULTS, "c", *byte_value_16_).HasError());
381 settings.Set("c", byte_value_16_->DeepCopy()); 386 settings.Set("c", byte_value_16_->DeepCopy());
382 EXPECT_TRUE(SettingsEqual(settings)); 387 EXPECT_TRUE(SettingsEqual(settings));
383 388
384 // Remove to free up some more data. 389 // Remove to free up some more data.
385 EXPECT_TRUE(storage_->Set("d", *byte_value_256_).HasError()); 390 EXPECT_TRUE(storage_->Set(DEFAULTS, "d", *byte_value_256_).HasError());
386 391
387 std::vector<std::string> to_remove; 392 std::vector<std::string> to_remove;
388 to_remove.push_back("a"); 393 to_remove.push_back("a");
389 to_remove.push_back("b"); 394 to_remove.push_back("b");
390 storage_->Remove(to_remove); 395 storage_->Remove(DEFAULTS, to_remove);
391 settings.Remove("a", NULL); 396 settings.Remove("a", NULL);
392 settings.Remove("b", NULL); 397 settings.Remove("b", NULL);
393 EXPECT_TRUE(SettingsEqual(settings)); 398 EXPECT_TRUE(SettingsEqual(settings));
394 399
395 EXPECT_FALSE(storage_->Set("d", *byte_value_256_).HasError()); 400 EXPECT_FALSE(storage_->Set(DEFAULTS, "d", *byte_value_256_).HasError());
396 settings.Set("d", byte_value_256_->DeepCopy()); 401 settings.Set("d", byte_value_256_->DeepCopy());
397 EXPECT_TRUE(SettingsEqual(settings)); 402 EXPECT_TRUE(SettingsEqual(settings));
398 } 403 }
399 404
400 TEST_F(ExtensionSettingsQuotaTest, WithInitialDataAndMaxKeys) { 405 TEST_F(ExtensionSettingsQuotaTest, WithInitialDataAndMaxKeys) {
401 DictionaryValue settings; 406 DictionaryValue settings;
402 delegate_->Set("a", *byte_value_1_); 407 delegate_->Set(DEFAULTS, "a", *byte_value_1_);
403 settings.Set("a", byte_value_1_->DeepCopy()); 408 settings.Set("a", byte_value_1_->DeepCopy());
404 CreateStorage(UINT_MAX, UINT_MAX, 2); 409 CreateStorage(UINT_MAX, UINT_MAX, 2);
405 410
406 EXPECT_FALSE(storage_->Set("b", *byte_value_1_).HasError()); 411 EXPECT_FALSE(storage_->Set(DEFAULTS, "b", *byte_value_1_).HasError());
407 settings.Set("b", byte_value_1_->DeepCopy()); 412 settings.Set("b", byte_value_1_->DeepCopy());
408 413
409 EXPECT_TRUE(storage_->Set("c", *byte_value_1_).HasError()); 414 EXPECT_TRUE(storage_->Set(DEFAULTS, "c", *byte_value_1_).HasError());
410 415
411 EXPECT_TRUE(SettingsEqual(settings)); 416 EXPECT_TRUE(SettingsEqual(settings));
412 } 417 }
413 418
414 TEST_F(ExtensionSettingsQuotaTest, InitiallyOverByteQuota) { 419 TEST_F(ExtensionSettingsQuotaTest, InitiallyOverByteQuota) {
415 DictionaryValue settings; 420 DictionaryValue settings;
416 settings.Set("a", byte_value_16_->DeepCopy()); 421 settings.Set("a", byte_value_16_->DeepCopy());
417 settings.Set("b", byte_value_16_->DeepCopy()); 422 settings.Set("b", byte_value_16_->DeepCopy());
418 settings.Set("c", byte_value_16_->DeepCopy()); 423 settings.Set("c", byte_value_16_->DeepCopy());
419 delegate_->Set(settings); 424 delegate_->Set(DEFAULTS, settings);
420 425
421 CreateStorage(40, UINT_MAX, UINT_MAX); 426 CreateStorage(40, UINT_MAX, UINT_MAX);
422 EXPECT_TRUE(SettingsEqual(settings)); 427 EXPECT_TRUE(SettingsEqual(settings));
423 428
424 EXPECT_TRUE(storage_->Set("d", *byte_value_16_).HasError()); 429 EXPECT_TRUE(storage_->Set(DEFAULTS, "d", *byte_value_16_).HasError());
425 430
426 // Take under quota by reducing size of an existing setting 431 // Take under quota by reducing size of an existing setting
427 EXPECT_FALSE(storage_->Set("a", *byte_value_1_).HasError()); 432 EXPECT_FALSE(storage_->Set(DEFAULTS, "a", *byte_value_1_).HasError());
428 settings.Set("a", byte_value_1_->DeepCopy()); 433 settings.Set("a", byte_value_1_->DeepCopy());
429 EXPECT_TRUE(SettingsEqual(settings)); 434 EXPECT_TRUE(SettingsEqual(settings));
430 435
431 // Should be able set another small setting. 436 // Should be able set another small setting.
432 EXPECT_FALSE(storage_->Set("d", *byte_value_1_).HasError()); 437 EXPECT_FALSE(storage_->Set(DEFAULTS, "d", *byte_value_1_).HasError());
433 settings.Set("d", byte_value_1_->DeepCopy()); 438 settings.Set("d", byte_value_1_->DeepCopy());
434 EXPECT_TRUE(SettingsEqual(settings)); 439 EXPECT_TRUE(SettingsEqual(settings));
435 } 440 }
436 441
437 TEST_F(ExtensionSettingsQuotaTest, InitiallyOverMaxKeys) { 442 TEST_F(ExtensionSettingsQuotaTest, InitiallyOverMaxKeys) {
438 DictionaryValue settings; 443 DictionaryValue settings;
439 settings.Set("a", byte_value_16_->DeepCopy()); 444 settings.Set("a", byte_value_16_->DeepCopy());
440 settings.Set("b", byte_value_16_->DeepCopy()); 445 settings.Set("b", byte_value_16_->DeepCopy());
441 settings.Set("c", byte_value_16_->DeepCopy()); 446 settings.Set("c", byte_value_16_->DeepCopy());
442 delegate_->Set(settings); 447 delegate_->Set(DEFAULTS, settings);
443 448
444 CreateStorage(UINT_MAX, UINT_MAX, 2); 449 CreateStorage(UINT_MAX, UINT_MAX, 2);
445 EXPECT_TRUE(SettingsEqual(settings)); 450 EXPECT_TRUE(SettingsEqual(settings));
446 451
447 // Can't set either an existing or new setting. 452 // Can't set either an existing or new setting.
448 EXPECT_TRUE(storage_->Set("d", *byte_value_16_).HasError()); 453 EXPECT_TRUE(storage_->Set(DEFAULTS, "d", *byte_value_16_).HasError());
449 EXPECT_TRUE(storage_->Set("a", *byte_value_1_).HasError()); 454 EXPECT_TRUE(storage_->Set(DEFAULTS, "a", *byte_value_1_).HasError());
450 EXPECT_TRUE(SettingsEqual(settings)); 455 EXPECT_TRUE(SettingsEqual(settings));
451 456
452 // Should be able after removing 2. 457 // Should be able after removing 2.
453 storage_->Remove("a"); 458 storage_->Remove(DEFAULTS, "a");
454 settings.Remove("a", NULL); 459 settings.Remove("a", NULL);
455 storage_->Remove("b"); 460 storage_->Remove(DEFAULTS, "b");
456 settings.Remove("b", NULL); 461 settings.Remove("b", NULL);
457 EXPECT_TRUE(SettingsEqual(settings)); 462 EXPECT_TRUE(SettingsEqual(settings));
458 463
459 EXPECT_FALSE(storage_->Set("e", *byte_value_1_).HasError()); 464 EXPECT_FALSE(storage_->Set(DEFAULTS, "e", *byte_value_1_).HasError());
460 settings.Set("e", byte_value_1_->DeepCopy()); 465 settings.Set("e", byte_value_1_->DeepCopy());
461 EXPECT_TRUE(SettingsEqual(settings)); 466 EXPECT_TRUE(SettingsEqual(settings));
462 467
463 // Still can't set any. 468 // Still can't set any.
464 EXPECT_TRUE(storage_->Set("d", *byte_value_16_).HasError()); 469 EXPECT_TRUE(storage_->Set(DEFAULTS, "d", *byte_value_16_).HasError());
465 EXPECT_TRUE(storage_->Set("a", *byte_value_1_).HasError()); 470 EXPECT_TRUE(storage_->Set(DEFAULTS, "a", *byte_value_1_).HasError());
466 EXPECT_TRUE(SettingsEqual(settings)); 471 EXPECT_TRUE(SettingsEqual(settings));
467 } 472 }
468 473
469 TEST_F(ExtensionSettingsQuotaTest, ZeroQuotaBytesPerSetting) { 474 TEST_F(ExtensionSettingsQuotaTest, ZeroQuotaBytesPerSetting) {
470 DictionaryValue empty; 475 DictionaryValue empty;
471 CreateStorage(UINT_MAX, 0, UINT_MAX); 476 CreateStorage(UINT_MAX, 0, UINT_MAX);
472 477
473 EXPECT_TRUE(storage_->Set("a", *byte_value_1_).HasError()); 478 EXPECT_TRUE(storage_->Set(DEFAULTS, "a", *byte_value_1_).HasError());
474 EXPECT_FALSE(storage_->Remove("a").HasError()); 479 EXPECT_FALSE(storage_->Remove(DEFAULTS, "a").HasError());
475 EXPECT_FALSE(storage_->Remove("b").HasError()); 480 EXPECT_FALSE(storage_->Remove(DEFAULTS, "b").HasError());
476 EXPECT_TRUE(SettingsEqual(empty)); 481 EXPECT_TRUE(SettingsEqual(empty));
477 } 482 }
478 483
479 TEST_F(ExtensionSettingsQuotaTest, QuotaBytesPerSetting) { 484 TEST_F(ExtensionSettingsQuotaTest, QuotaBytesPerSetting) {
480 DictionaryValue settings; 485 DictionaryValue settings;
481 486
482 CreateStorage(UINT_MAX, 20, UINT_MAX); 487 CreateStorage(UINT_MAX, 20, UINT_MAX);
483 488
484 EXPECT_FALSE(storage_->Set("a", *byte_value_1_).HasError()); 489 EXPECT_FALSE(storage_->Set(DEFAULTS, "a", *byte_value_1_).HasError());
485 EXPECT_FALSE(storage_->Set("a", *byte_value_16_).HasError()); 490 EXPECT_FALSE(storage_->Set(DEFAULTS, "a", *byte_value_16_).HasError());
486 settings.Set("a", byte_value_16_->DeepCopy()); 491 settings.Set("a", byte_value_16_->DeepCopy());
487 EXPECT_TRUE(storage_->Set("a", *byte_value_256_).HasError()); 492 EXPECT_TRUE(storage_->Set(DEFAULTS, "a", *byte_value_256_).HasError());
488 493
489 EXPECT_FALSE(storage_->Set("b", *byte_value_1_).HasError()); 494 EXPECT_FALSE(storage_->Set(DEFAULTS, "b", *byte_value_1_).HasError());
490 EXPECT_FALSE(storage_->Set("b", *byte_value_16_).HasError()); 495 EXPECT_FALSE(storage_->Set(DEFAULTS, "b", *byte_value_16_).HasError());
491 settings.Set("b", byte_value_16_->DeepCopy()); 496 settings.Set("b", byte_value_16_->DeepCopy());
492 EXPECT_TRUE(storage_->Set("b", *byte_value_256_).HasError()); 497 EXPECT_TRUE(storage_->Set(DEFAULTS, "b", *byte_value_256_).HasError());
493 498
494 EXPECT_TRUE(SettingsEqual(settings)); 499 EXPECT_TRUE(SettingsEqual(settings));
495 } 500 }
496 501
497 TEST_F(ExtensionSettingsQuotaTest, QuotaBytesPerSettingWithInitialSettings) { 502 TEST_F(ExtensionSettingsQuotaTest, QuotaBytesPerSettingWithInitialSettings) {
498 DictionaryValue settings; 503 DictionaryValue settings;
499 504
500 delegate_->Set("a", *byte_value_1_); 505 delegate_->Set(DEFAULTS, "a", *byte_value_1_);
501 delegate_->Set("b", *byte_value_16_); 506 delegate_->Set(DEFAULTS, "b", *byte_value_16_);
502 delegate_->Set("c", *byte_value_256_); 507 delegate_->Set(DEFAULTS, "c", *byte_value_256_);
503 CreateStorage(UINT_MAX, 20, UINT_MAX); 508 CreateStorage(UINT_MAX, 20, UINT_MAX);
504 509
505 EXPECT_FALSE(storage_->Set("a", *byte_value_1_).HasError()); 510 EXPECT_FALSE(storage_->Set(DEFAULTS, "a", *byte_value_1_).HasError());
506 EXPECT_FALSE(storage_->Set("a", *byte_value_16_).HasError()); 511 EXPECT_FALSE(storage_->Set(DEFAULTS, "a", *byte_value_16_).HasError());
507 settings.Set("a", byte_value_16_->DeepCopy()); 512 settings.Set("a", byte_value_16_->DeepCopy());
508 EXPECT_TRUE(storage_->Set("a", *byte_value_256_).HasError()); 513 EXPECT_TRUE(storage_->Set(DEFAULTS, "a", *byte_value_256_).HasError());
509 514
510 EXPECT_FALSE(storage_->Set("b", *byte_value_1_).HasError()); 515 EXPECT_FALSE(storage_->Set(DEFAULTS, "b", *byte_value_1_).HasError());
511 EXPECT_FALSE(storage_->Set("b", *byte_value_16_).HasError()); 516 EXPECT_FALSE(storage_->Set(DEFAULTS, "b", *byte_value_16_).HasError());
512 settings.Set("b", byte_value_16_->DeepCopy()); 517 settings.Set("b", byte_value_16_->DeepCopy());
513 EXPECT_TRUE(storage_->Set("b", *byte_value_256_).HasError()); 518 EXPECT_TRUE(storage_->Set(DEFAULTS, "b", *byte_value_256_).HasError());
514 519
515 EXPECT_FALSE(storage_->Set("c", *byte_value_1_).HasError()); 520 EXPECT_FALSE(storage_->Set(DEFAULTS, "c", *byte_value_1_).HasError());
516 EXPECT_FALSE(storage_->Set("c", *byte_value_16_).HasError()); 521 EXPECT_FALSE(storage_->Set(DEFAULTS, "c", *byte_value_16_).HasError());
517 settings.Set("c", byte_value_16_->DeepCopy()); 522 settings.Set("c", byte_value_16_->DeepCopy());
518 EXPECT_TRUE(storage_->Set("c", *byte_value_256_).HasError()); 523 EXPECT_TRUE(storage_->Set(DEFAULTS, "c", *byte_value_256_).HasError());
519 524
520 EXPECT_TRUE(SettingsEqual(settings)); 525 EXPECT_TRUE(SettingsEqual(settings));
521 } 526 }
527
528 TEST_F(ExtensionSettingsQuotaTest,
529 QuotaBytesPerSettingWithInitialSettingsForced) {
not at google - send to devlin 2011/11/17 07:02:53 Change #1: a test.
530 // This is a lazy test to make sure FORCE lets through changes: the test above
531 // copied, but using FORCE and asserting nothing is ever rejected...
532 DictionaryValue settings;
533
534 delegate_->Set(DEFAULTS, "a", *byte_value_1_);
535 delegate_->Set(DEFAULTS, "b", *byte_value_16_);
536 delegate_->Set(DEFAULTS, "c", *byte_value_256_);
537 CreateStorage(UINT_MAX, 20, UINT_MAX);
538
539 EXPECT_FALSE(storage_->Set(FORCE, "a", *byte_value_1_).HasError());
540 EXPECT_FALSE(storage_->Set(FORCE, "a", *byte_value_16_).HasError());
541 EXPECT_FALSE(storage_->Set(FORCE, "a", *byte_value_256_).HasError());
542 settings.Set("a", byte_value_256_->DeepCopy());
543
544 EXPECT_FALSE(storage_->Set(FORCE, "b", *byte_value_1_).HasError());
545 EXPECT_FALSE(storage_->Set(FORCE, "b", *byte_value_16_).HasError());
546 EXPECT_FALSE(storage_->Set(FORCE, "b", *byte_value_256_).HasError());
547 settings.Set("b", byte_value_256_->DeepCopy());
548
549 EXPECT_FALSE(storage_->Set(FORCE, "c", *byte_value_1_).HasError());
550 EXPECT_FALSE(storage_->Set(FORCE, "c", *byte_value_16_).HasError());
551 settings.Set("c", byte_value_16_->DeepCopy());
552
553 // ... except the last. Make sure it can still fail.
554 EXPECT_TRUE(storage_->Set(DEFAULTS, "c", *byte_value_256_).HasError());
555
556 EXPECT_TRUE(SettingsEqual(settings));
557 }
522 558
523 } // namespace extensions 559 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698