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

Side by Side Diff: webkit/renderer/dom_storage/dom_storage_cached_area_unittest.cc

Issue 16415016: Move nullable_string16.h to the string subdirectory. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: moar Created 7 years, 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <list> 5 #include <list>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "webkit/renderer/dom_storage/dom_storage_cached_area.h" 10 #include "webkit/renderer/dom_storage/dom_storage_cached_area.h"
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 scoped_refptr<MockProxy> mock_proxy_; 149 scoped_refptr<MockProxy> mock_proxy_;
150 }; 150 };
151 151
152 TEST_F(DomStorageCachedAreaTest, Basics) { 152 TEST_F(DomStorageCachedAreaTest, Basics) {
153 EXPECT_TRUE(mock_proxy_->HasOneRef()); 153 EXPECT_TRUE(mock_proxy_->HasOneRef());
154 scoped_refptr<DomStorageCachedArea> cached_area = 154 scoped_refptr<DomStorageCachedArea> cached_area =
155 new DomStorageCachedArea(kNamespaceId, kOrigin, mock_proxy_.get()); 155 new DomStorageCachedArea(kNamespaceId, kOrigin, mock_proxy_.get());
156 EXPECT_EQ(kNamespaceId, cached_area->namespace_id()); 156 EXPECT_EQ(kNamespaceId, cached_area->namespace_id());
157 EXPECT_EQ(kOrigin, cached_area->origin()); 157 EXPECT_EQ(kOrigin, cached_area->origin());
158 EXPECT_FALSE(mock_proxy_->HasOneRef()); 158 EXPECT_FALSE(mock_proxy_->HasOneRef());
159 cached_area->ApplyMutation(NullableString16(kKey, false), 159 cached_area->ApplyMutation(base::NullableString16(kKey, false),
160 NullableString16(kValue, false)); 160 base::NullableString16(kValue, false));
161 EXPECT_FALSE(IsPrimed(cached_area.get())); 161 EXPECT_FALSE(IsPrimed(cached_area.get()));
162 162
163 ResetAll(cached_area.get()); 163 ResetAll(cached_area.get());
164 EXPECT_EQ(kNamespaceId, cached_area->namespace_id()); 164 EXPECT_EQ(kNamespaceId, cached_area->namespace_id());
165 EXPECT_EQ(kOrigin, cached_area->origin()); 165 EXPECT_EQ(kOrigin, cached_area->origin());
166 166
167 const int kConnectionId = 1; 167 const int kConnectionId = 1;
168 EXPECT_EQ(0u, cached_area->GetLength(kConnectionId)); 168 EXPECT_EQ(0u, cached_area->GetLength(kConnectionId));
169 EXPECT_TRUE(cached_area->SetItem(kConnectionId, kKey, kValue, kPageUrl)); 169 EXPECT_TRUE(cached_area->SetItem(kConnectionId, kKey, kValue, kPageUrl));
170 EXPECT_EQ(1u, cached_area->GetLength(kConnectionId)); 170 EXPECT_EQ(1u, cached_area->GetLength(kConnectionId));
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 cached_area->RemoveItem(kConnectionId, kKey, kPageUrl); 244 cached_area->RemoveItem(kConnectionId, kKey, kPageUrl);
245 EXPECT_TRUE(IsPrimed(cached_area.get())); 245 EXPECT_TRUE(IsPrimed(cached_area.get()));
246 EXPECT_TRUE(mock_proxy_->observed_load_area_); 246 EXPECT_TRUE(mock_proxy_->observed_load_area_);
247 EXPECT_FALSE(mock_proxy_->observed_remove_item_); 247 EXPECT_FALSE(mock_proxy_->observed_remove_item_);
248 EXPECT_EQ(kConnectionId, mock_proxy_->observed_connection_id_); 248 EXPECT_EQ(kConnectionId, mock_proxy_->observed_connection_id_);
249 EXPECT_EQ(1u, mock_proxy_->pending_callbacks_.size()); 249 EXPECT_EQ(1u, mock_proxy_->pending_callbacks_.size());
250 250
251 // RemoveItem with something to remove, expect a call to load followed 251 // RemoveItem with something to remove, expect a call to load followed
252 // by a call to remove. 252 // by a call to remove.
253 ResetAll(cached_area.get()); 253 ResetAll(cached_area.get());
254 mock_proxy_->load_area_return_values_[kKey] = NullableString16(kValue, false); 254 mock_proxy_->load_area_return_values_[kKey] =
255 base::NullableString16(kValue, false);
255 EXPECT_FALSE(IsPrimed(cached_area.get())); 256 EXPECT_FALSE(IsPrimed(cached_area.get()));
256 cached_area->RemoveItem(kConnectionId, kKey, kPageUrl); 257 cached_area->RemoveItem(kConnectionId, kKey, kPageUrl);
257 EXPECT_TRUE(IsPrimed(cached_area.get())); 258 EXPECT_TRUE(IsPrimed(cached_area.get()));
258 EXPECT_TRUE(mock_proxy_->observed_load_area_); 259 EXPECT_TRUE(mock_proxy_->observed_load_area_);
259 EXPECT_TRUE(mock_proxy_->observed_remove_item_); 260 EXPECT_TRUE(mock_proxy_->observed_remove_item_);
260 EXPECT_EQ(kConnectionId, mock_proxy_->observed_connection_id_); 261 EXPECT_EQ(kConnectionId, mock_proxy_->observed_connection_id_);
261 EXPECT_EQ(kPageUrl, mock_proxy_->observed_page_url_); 262 EXPECT_EQ(kPageUrl, mock_proxy_->observed_page_url_);
262 EXPECT_EQ(kKey, mock_proxy_->observed_key_); 263 EXPECT_EQ(kKey, mock_proxy_->observed_key_);
263 EXPECT_EQ(2u, mock_proxy_->pending_callbacks_.size()); 264 EXPECT_EQ(2u, mock_proxy_->pending_callbacks_.size());
264 } 265 }
265 266
266 TEST_F(DomStorageCachedAreaTest, MutationsAreIgnoredUntilLoadCompletion) { 267 TEST_F(DomStorageCachedAreaTest, MutationsAreIgnoredUntilLoadCompletion) {
267 const int kConnectionId = 7; 268 const int kConnectionId = 7;
268 scoped_refptr<DomStorageCachedArea> cached_area = 269 scoped_refptr<DomStorageCachedArea> cached_area =
269 new DomStorageCachedArea(kNamespaceId, kOrigin, mock_proxy_.get()); 270 new DomStorageCachedArea(kNamespaceId, kOrigin, mock_proxy_.get());
270 EXPECT_TRUE(cached_area->GetItem(kConnectionId, kKey).is_null()); 271 EXPECT_TRUE(cached_area->GetItem(kConnectionId, kKey).is_null());
271 EXPECT_TRUE(IsPrimed(cached_area.get())); 272 EXPECT_TRUE(IsPrimed(cached_area.get()));
272 EXPECT_TRUE(IsIgnoringAllMutations(cached_area.get())); 273 EXPECT_TRUE(IsIgnoringAllMutations(cached_area.get()));
273 274
274 // Before load completion, the mutation should be ignored. 275 // Before load completion, the mutation should be ignored.
275 cached_area->ApplyMutation(NullableString16(kKey, false), 276 cached_area->ApplyMutation(base::NullableString16(kKey, false),
276 NullableString16(kValue, false)); 277 base::NullableString16(kValue, false));
277 EXPECT_TRUE(cached_area->GetItem(kConnectionId, kKey).is_null()); 278 EXPECT_TRUE(cached_area->GetItem(kConnectionId, kKey).is_null());
278 279
279 // Call the load completion callback. 280 // Call the load completion callback.
280 mock_proxy_->CompleteOnePendingCallback(true); 281 mock_proxy_->CompleteOnePendingCallback(true);
281 EXPECT_FALSE(IsIgnoringAllMutations(cached_area.get())); 282 EXPECT_FALSE(IsIgnoringAllMutations(cached_area.get()));
282 283
283 // Verify that mutations are now applied. 284 // Verify that mutations are now applied.
284 cached_area->ApplyMutation(NullableString16(kKey, false), 285 cached_area->ApplyMutation(base::NullableString16(kKey, false),
285 NullableString16(kValue, false)); 286 base::NullableString16(kValue, false));
286 EXPECT_EQ(kValue, cached_area->GetItem(kConnectionId, kKey).string()); 287 EXPECT_EQ(kValue, cached_area->GetItem(kConnectionId, kKey).string());
287 } 288 }
288 289
289 TEST_F(DomStorageCachedAreaTest, MutationsAreIgnoredUntilClearCompletion) { 290 TEST_F(DomStorageCachedAreaTest, MutationsAreIgnoredUntilClearCompletion) {
290 const int kConnectionId = 4; 291 const int kConnectionId = 4;
291 scoped_refptr<DomStorageCachedArea> cached_area = 292 scoped_refptr<DomStorageCachedArea> cached_area =
292 new DomStorageCachedArea(kNamespaceId, kOrigin, mock_proxy_.get()); 293 new DomStorageCachedArea(kNamespaceId, kOrigin, mock_proxy_.get());
293 cached_area->Clear(kConnectionId, kPageUrl); 294 cached_area->Clear(kConnectionId, kPageUrl);
294 EXPECT_TRUE(IsIgnoringAllMutations(cached_area.get())); 295 EXPECT_TRUE(IsIgnoringAllMutations(cached_area.get()));
295 mock_proxy_->CompleteOnePendingCallback(true); 296 mock_proxy_->CompleteOnePendingCallback(true);
(...skipping 15 matching lines...) Expand all
311 TEST_F(DomStorageCachedAreaTest, KeyMutationsAreIgnoredUntilCompletion) { 312 TEST_F(DomStorageCachedAreaTest, KeyMutationsAreIgnoredUntilCompletion) {
312 const int kConnectionId = 8; 313 const int kConnectionId = 8;
313 scoped_refptr<DomStorageCachedArea> cached_area = 314 scoped_refptr<DomStorageCachedArea> cached_area =
314 new DomStorageCachedArea(kNamespaceId, kOrigin, mock_proxy_.get()); 315 new DomStorageCachedArea(kNamespaceId, kOrigin, mock_proxy_.get());
315 316
316 // SetItem 317 // SetItem
317 EXPECT_TRUE(cached_area->SetItem(kConnectionId, kKey, kValue, kPageUrl)); 318 EXPECT_TRUE(cached_area->SetItem(kConnectionId, kKey, kValue, kPageUrl));
318 mock_proxy_->CompleteOnePendingCallback(true); // load completion 319 mock_proxy_->CompleteOnePendingCallback(true); // load completion
319 EXPECT_FALSE(IsIgnoringAllMutations(cached_area.get())); 320 EXPECT_FALSE(IsIgnoringAllMutations(cached_area.get()));
320 EXPECT_TRUE(IsIgnoringKeyMutations(cached_area.get(), kKey)); 321 EXPECT_TRUE(IsIgnoringKeyMutations(cached_area.get(), kKey));
321 cached_area->ApplyMutation(NullableString16(kKey, false), 322 cached_area->ApplyMutation(base::NullableString16(kKey, false),
322 NullableString16(true)); 323 base::NullableString16(true));
323 EXPECT_EQ(kValue, cached_area->GetItem(kConnectionId, kKey).string()); 324 EXPECT_EQ(kValue, cached_area->GetItem(kConnectionId, kKey).string());
324 mock_proxy_->CompleteOnePendingCallback(true); // set completion 325 mock_proxy_->CompleteOnePendingCallback(true); // set completion
325 EXPECT_FALSE(IsIgnoringKeyMutations(cached_area.get(), kKey)); 326 EXPECT_FALSE(IsIgnoringKeyMutations(cached_area.get(), kKey));
326 327
327 // RemoveItem 328 // RemoveItem
328 cached_area->RemoveItem(kConnectionId, kKey, kPageUrl); 329 cached_area->RemoveItem(kConnectionId, kKey, kPageUrl);
329 EXPECT_TRUE(IsIgnoringKeyMutations(cached_area.get(), kKey)); 330 EXPECT_TRUE(IsIgnoringKeyMutations(cached_area.get(), kKey));
330 mock_proxy_->CompleteOnePendingCallback(true); // remove completion 331 mock_proxy_->CompleteOnePendingCallback(true); // remove completion
331 EXPECT_FALSE(IsIgnoringKeyMutations(cached_area.get(), kKey)); 332 EXPECT_FALSE(IsIgnoringKeyMutations(cached_area.get(), kKey));
332 333
333 // Multiple mutations to the same key. 334 // Multiple mutations to the same key.
334 EXPECT_TRUE(cached_area->SetItem(kConnectionId, kKey, kValue, kPageUrl)); 335 EXPECT_TRUE(cached_area->SetItem(kConnectionId, kKey, kValue, kPageUrl));
335 cached_area->RemoveItem(kConnectionId, kKey, kPageUrl); 336 cached_area->RemoveItem(kConnectionId, kKey, kPageUrl);
336 EXPECT_TRUE(IsIgnoringKeyMutations(cached_area.get(), kKey)); 337 EXPECT_TRUE(IsIgnoringKeyMutations(cached_area.get(), kKey));
337 mock_proxy_->CompleteOnePendingCallback(true); // set completion 338 mock_proxy_->CompleteOnePendingCallback(true); // set completion
338 EXPECT_TRUE(IsIgnoringKeyMutations(cached_area.get(), kKey)); 339 EXPECT_TRUE(IsIgnoringKeyMutations(cached_area.get(), kKey));
339 mock_proxy_->CompleteOnePendingCallback(true); // remove completion 340 mock_proxy_->CompleteOnePendingCallback(true); // remove completion
340 EXPECT_FALSE(IsIgnoringKeyMutations(cached_area.get(), kKey)); 341 EXPECT_FALSE(IsIgnoringKeyMutations(cached_area.get(), kKey));
341 342
342 // A failed set item operation should Reset the cache. 343 // A failed set item operation should Reset the cache.
343 EXPECT_TRUE(cached_area->SetItem(kConnectionId, kKey, kValue, kPageUrl)); 344 EXPECT_TRUE(cached_area->SetItem(kConnectionId, kKey, kValue, kPageUrl));
344 EXPECT_TRUE(IsIgnoringKeyMutations(cached_area.get(), kKey)); 345 EXPECT_TRUE(IsIgnoringKeyMutations(cached_area.get(), kKey));
345 mock_proxy_->CompleteOnePendingCallback(false); 346 mock_proxy_->CompleteOnePendingCallback(false);
346 EXPECT_FALSE(IsPrimed(cached_area.get())); 347 EXPECT_FALSE(IsPrimed(cached_area.get()));
347 } 348 }
348 349
349 } // namespace dom_storage 350 } // namespace dom_storage
OLDNEW
« no previous file with comments | « webkit/renderer/dom_storage/dom_storage_cached_area.cc ('k') | webkit/renderer/dom_storage/dom_storage_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698