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

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

Issue 22297005: Move webkit/{browser,common}/dom_storage into content/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 4 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 "content/renderer/dom_storage/dom_storage_cached_area.h" 5 #include "content/renderer/dom_storage/dom_storage_cached_area.h"
6 6
7 #include <list> 7 #include <list>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
11 #include "content/renderer/dom_storage/dom_storage_proxy.h" 11 #include "content/renderer/dom_storage/dom_storage_proxy.h"
12 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
13 13
14 namespace content { 14 namespace content {
15 15
16 namespace { 16 namespace {
17 // A mock implementation of the DomStorageProxy interface. 17 // A mock implementation of the DOMStorageProxy interface.
18 class MockProxy : public DomStorageProxy { 18 class MockProxy : public DOMStorageProxy {
19 public: 19 public:
20 MockProxy() { 20 MockProxy() {
21 ResetObservations(); 21 ResetObservations();
22 } 22 }
23 23
24 // DomStorageProxy interface for use by DomStorageCachedArea. 24 // DOMStorageProxy interface for use by DOMStorageCachedArea.
25 25
26 virtual void LoadArea(int connection_id, 26 virtual void LoadArea(int connection_id,
27 dom_storage::ValuesMap* values, 27 DOMStorageValuesMap* values,
28 const CompletionCallback& callback) OVERRIDE { 28 const CompletionCallback& callback) OVERRIDE {
29 pending_callbacks_.push_back(callback); 29 pending_callbacks_.push_back(callback);
30 observed_load_area_ = true; 30 observed_load_area_ = true;
31 observed_connection_id_ = connection_id; 31 observed_connection_id_ = connection_id;
32 *values = load_area_return_values_; 32 *values = load_area_return_values_;
33 } 33 }
34 34
35 virtual void SetItem(int connection_id, 35 virtual void SetItem(int connection_id,
36 const base::string16& key, 36 const base::string16& key,
37 const base::string16& value, 37 const base::string16& value,
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 } 84 }
85 85
86 void CompleteOnePendingCallback(bool success) { 86 void CompleteOnePendingCallback(bool success) {
87 ASSERT_TRUE(!pending_callbacks_.empty()); 87 ASSERT_TRUE(!pending_callbacks_.empty());
88 pending_callbacks_.front().Run(success); 88 pending_callbacks_.front().Run(success);
89 pending_callbacks_.pop_front(); 89 pending_callbacks_.pop_front();
90 } 90 }
91 91
92 typedef std::list<CompletionCallback> CallbackList; 92 typedef std::list<CompletionCallback> CallbackList;
93 93
94 dom_storage::ValuesMap load_area_return_values_; 94 DOMStorageValuesMap load_area_return_values_;
95 CallbackList pending_callbacks_; 95 CallbackList pending_callbacks_;
96 bool observed_load_area_; 96 bool observed_load_area_;
97 bool observed_set_item_; 97 bool observed_set_item_;
98 bool observed_remove_item_; 98 bool observed_remove_item_;
99 bool observed_clear_area_; 99 bool observed_clear_area_;
100 int observed_connection_id_; 100 int observed_connection_id_;
101 base::string16 observed_key_; 101 base::string16 observed_key_;
102 base::string16 observed_value_; 102 base::string16 observed_value_;
103 GURL observed_page_url_; 103 GURL observed_page_url_;
104 104
105 private: 105 private:
106 virtual ~MockProxy() {} 106 virtual ~MockProxy() {}
107 }; 107 };
108 108
109 } // namespace 109 } // namespace
110 110
111 class DomStorageCachedAreaTest : public testing::Test { 111 class DOMStorageCachedAreaTest : public testing::Test {
112 public: 112 public:
113 DomStorageCachedAreaTest() 113 DOMStorageCachedAreaTest()
114 : kNamespaceId(10), 114 : kNamespaceId(10),
115 kOrigin("http://dom_storage/"), 115 kOrigin("http://dom_storage/"),
116 kKey(ASCIIToUTF16("key")), 116 kKey(ASCIIToUTF16("key")),
117 kValue(ASCIIToUTF16("value")), 117 kValue(ASCIIToUTF16("value")),
118 kPageUrl("http://dom_storage/page") { 118 kPageUrl("http://dom_storage/page") {
119 } 119 }
120 120
121 const int64 kNamespaceId; 121 const int64 kNamespaceId;
122 const GURL kOrigin; 122 const GURL kOrigin;
123 const base::string16 kKey; 123 const base::string16 kKey;
124 const base::string16 kValue; 124 const base::string16 kValue;
125 const GURL kPageUrl; 125 const GURL kPageUrl;
126 126
127 virtual void SetUp() { 127 virtual void SetUp() {
128 mock_proxy_ = new MockProxy(); 128 mock_proxy_ = new MockProxy();
129 } 129 }
130 130
131 bool IsPrimed(DomStorageCachedArea* cached_area) { 131 bool IsPrimed(DOMStorageCachedArea* cached_area) {
132 return cached_area->map_.get(); 132 return cached_area->map_.get();
133 } 133 }
134 134
135 bool IsIgnoringAllMutations(DomStorageCachedArea* cached_area) { 135 bool IsIgnoringAllMutations(DOMStorageCachedArea* cached_area) {
136 return cached_area->ignore_all_mutations_; 136 return cached_area->ignore_all_mutations_;
137 } 137 }
138 138
139 bool IsIgnoringKeyMutations(DomStorageCachedArea* cached_area, 139 bool IsIgnoringKeyMutations(DOMStorageCachedArea* cached_area,
140 const base::string16& key) { 140 const base::string16& key) {
141 return cached_area->should_ignore_key_mutation(key); 141 return cached_area->should_ignore_key_mutation(key);
142 } 142 }
143 143
144 void ResetAll(DomStorageCachedArea* cached_area) { 144 void ResetAll(DOMStorageCachedArea* cached_area) {
145 cached_area->Reset(); 145 cached_area->Reset();
146 mock_proxy_->ResetObservations(); 146 mock_proxy_->ResetObservations();
147 mock_proxy_->pending_callbacks_.clear(); 147 mock_proxy_->pending_callbacks_.clear();
148 } 148 }
149 149
150 void ResetCacheOnly(DomStorageCachedArea* cached_area) { 150 void ResetCacheOnly(DOMStorageCachedArea* cached_area) {
151 cached_area->Reset(); 151 cached_area->Reset();
152 } 152 }
153 153
154 protected: 154 protected:
155 scoped_refptr<MockProxy> mock_proxy_; 155 scoped_refptr<MockProxy> mock_proxy_;
156 }; 156 };
157 157
158 TEST_F(DomStorageCachedAreaTest, Basics) { 158 TEST_F(DOMStorageCachedAreaTest, Basics) {
159 EXPECT_TRUE(mock_proxy_->HasOneRef()); 159 EXPECT_TRUE(mock_proxy_->HasOneRef());
160 scoped_refptr<DomStorageCachedArea> cached_area = 160 scoped_refptr<DOMStorageCachedArea> cached_area =
161 new DomStorageCachedArea(kNamespaceId, kOrigin, mock_proxy_.get()); 161 new DOMStorageCachedArea(kNamespaceId, kOrigin, mock_proxy_.get());
162 EXPECT_EQ(kNamespaceId, cached_area->namespace_id()); 162 EXPECT_EQ(kNamespaceId, cached_area->namespace_id());
163 EXPECT_EQ(kOrigin, cached_area->origin()); 163 EXPECT_EQ(kOrigin, cached_area->origin());
164 EXPECT_FALSE(mock_proxy_->HasOneRef()); 164 EXPECT_FALSE(mock_proxy_->HasOneRef());
165 cached_area->ApplyMutation(base::NullableString16(kKey, false), 165 cached_area->ApplyMutation(base::NullableString16(kKey, false),
166 base::NullableString16(kValue, false)); 166 base::NullableString16(kValue, false));
167 EXPECT_FALSE(IsPrimed(cached_area.get())); 167 EXPECT_FALSE(IsPrimed(cached_area.get()));
168 168
169 ResetAll(cached_area.get()); 169 ResetAll(cached_area.get());
170 EXPECT_EQ(kNamespaceId, cached_area->namespace_id()); 170 EXPECT_EQ(kNamespaceId, cached_area->namespace_id());
171 EXPECT_EQ(kOrigin, cached_area->origin()); 171 EXPECT_EQ(kOrigin, cached_area->origin());
172 172
173 const int kConnectionId = 1; 173 const int kConnectionId = 1;
174 EXPECT_EQ(0u, cached_area->GetLength(kConnectionId)); 174 EXPECT_EQ(0u, cached_area->GetLength(kConnectionId));
175 EXPECT_TRUE(cached_area->SetItem(kConnectionId, kKey, kValue, kPageUrl)); 175 EXPECT_TRUE(cached_area->SetItem(kConnectionId, kKey, kValue, kPageUrl));
176 EXPECT_EQ(1u, cached_area->GetLength(kConnectionId)); 176 EXPECT_EQ(1u, cached_area->GetLength(kConnectionId));
177 EXPECT_EQ(kKey, cached_area->GetKey(kConnectionId, 0).string()); 177 EXPECT_EQ(kKey, cached_area->GetKey(kConnectionId, 0).string());
178 EXPECT_EQ(kValue, cached_area->GetItem(kConnectionId, kKey).string()); 178 EXPECT_EQ(kValue, cached_area->GetItem(kConnectionId, kKey).string());
179 cached_area->RemoveItem(kConnectionId, kKey, kPageUrl); 179 cached_area->RemoveItem(kConnectionId, kKey, kPageUrl);
180 EXPECT_EQ(0u, cached_area->GetLength(kConnectionId)); 180 EXPECT_EQ(0u, cached_area->GetLength(kConnectionId));
181 } 181 }
182 182
183 TEST_F(DomStorageCachedAreaTest, Getters) { 183 TEST_F(DOMStorageCachedAreaTest, Getters) {
184 const int kConnectionId = 7; 184 const int kConnectionId = 7;
185 scoped_refptr<DomStorageCachedArea> cached_area = 185 scoped_refptr<DOMStorageCachedArea> cached_area =
186 new DomStorageCachedArea(kNamespaceId, kOrigin, mock_proxy_.get()); 186 new DOMStorageCachedArea(kNamespaceId, kOrigin, mock_proxy_.get());
187 187
188 // GetLength, we expect to see one call to load in the proxy. 188 // GetLength, we expect to see one call to load in the proxy.
189 EXPECT_FALSE(IsPrimed(cached_area.get())); 189 EXPECT_FALSE(IsPrimed(cached_area.get()));
190 EXPECT_EQ(0u, cached_area->GetLength(kConnectionId)); 190 EXPECT_EQ(0u, cached_area->GetLength(kConnectionId));
191 EXPECT_TRUE(IsPrimed(cached_area.get())); 191 EXPECT_TRUE(IsPrimed(cached_area.get()));
192 EXPECT_TRUE(mock_proxy_->observed_load_area_); 192 EXPECT_TRUE(mock_proxy_->observed_load_area_);
193 EXPECT_EQ(kConnectionId, mock_proxy_->observed_connection_id_); 193 EXPECT_EQ(kConnectionId, mock_proxy_->observed_connection_id_);
194 EXPECT_EQ(1u, mock_proxy_->pending_callbacks_.size()); 194 EXPECT_EQ(1u, mock_proxy_->pending_callbacks_.size());
195 EXPECT_TRUE(IsIgnoringAllMutations(cached_area.get())); 195 EXPECT_TRUE(IsIgnoringAllMutations(cached_area.get()));
196 mock_proxy_->CompleteAllPendingCallbacks(); 196 mock_proxy_->CompleteAllPendingCallbacks();
(...skipping 11 matching lines...) Expand all
208 // GetItem, ditto. 208 // GetItem, ditto.
209 ResetAll(cached_area.get()); 209 ResetAll(cached_area.get());
210 EXPECT_FALSE(IsPrimed(cached_area.get())); 210 EXPECT_FALSE(IsPrimed(cached_area.get()));
211 EXPECT_TRUE(cached_area->GetItem(kConnectionId, kKey).is_null()); 211 EXPECT_TRUE(cached_area->GetItem(kConnectionId, kKey).is_null());
212 EXPECT_TRUE(IsPrimed(cached_area.get())); 212 EXPECT_TRUE(IsPrimed(cached_area.get()));
213 EXPECT_TRUE(mock_proxy_->observed_load_area_); 213 EXPECT_TRUE(mock_proxy_->observed_load_area_);
214 EXPECT_EQ(kConnectionId, mock_proxy_->observed_connection_id_); 214 EXPECT_EQ(kConnectionId, mock_proxy_->observed_connection_id_);
215 EXPECT_EQ(1u, mock_proxy_->pending_callbacks_.size()); 215 EXPECT_EQ(1u, mock_proxy_->pending_callbacks_.size());
216 } 216 }
217 217
218 TEST_F(DomStorageCachedAreaTest, Setters) { 218 TEST_F(DOMStorageCachedAreaTest, Setters) {
219 const int kConnectionId = 7; 219 const int kConnectionId = 7;
220 scoped_refptr<DomStorageCachedArea> cached_area = 220 scoped_refptr<DOMStorageCachedArea> cached_area =
221 new DomStorageCachedArea(kNamespaceId, kOrigin, mock_proxy_.get()); 221 new DOMStorageCachedArea(kNamespaceId, kOrigin, mock_proxy_.get());
222 222
223 // SetItem, we expect a call to load followed by a call to set item 223 // SetItem, we expect a call to load followed by a call to set item
224 // in the proxy. 224 // in the proxy.
225 EXPECT_FALSE(IsPrimed(cached_area.get())); 225 EXPECT_FALSE(IsPrimed(cached_area.get()));
226 EXPECT_TRUE(cached_area->SetItem(kConnectionId, kKey, kValue, kPageUrl)); 226 EXPECT_TRUE(cached_area->SetItem(kConnectionId, kKey, kValue, kPageUrl));
227 EXPECT_TRUE(IsPrimed(cached_area.get())); 227 EXPECT_TRUE(IsPrimed(cached_area.get()));
228 EXPECT_TRUE(mock_proxy_->observed_load_area_); 228 EXPECT_TRUE(mock_proxy_->observed_load_area_);
229 EXPECT_TRUE(mock_proxy_->observed_set_item_); 229 EXPECT_TRUE(mock_proxy_->observed_set_item_);
230 EXPECT_EQ(kConnectionId, mock_proxy_->observed_connection_id_); 230 EXPECT_EQ(kConnectionId, mock_proxy_->observed_connection_id_);
231 EXPECT_EQ(kPageUrl, mock_proxy_->observed_page_url_); 231 EXPECT_EQ(kPageUrl, mock_proxy_->observed_page_url_);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 cached_area->RemoveItem(kConnectionId, kKey, kPageUrl); 263 cached_area->RemoveItem(kConnectionId, kKey, kPageUrl);
264 EXPECT_TRUE(IsPrimed(cached_area.get())); 264 EXPECT_TRUE(IsPrimed(cached_area.get()));
265 EXPECT_TRUE(mock_proxy_->observed_load_area_); 265 EXPECT_TRUE(mock_proxy_->observed_load_area_);
266 EXPECT_TRUE(mock_proxy_->observed_remove_item_); 266 EXPECT_TRUE(mock_proxy_->observed_remove_item_);
267 EXPECT_EQ(kConnectionId, mock_proxy_->observed_connection_id_); 267 EXPECT_EQ(kConnectionId, mock_proxy_->observed_connection_id_);
268 EXPECT_EQ(kPageUrl, mock_proxy_->observed_page_url_); 268 EXPECT_EQ(kPageUrl, mock_proxy_->observed_page_url_);
269 EXPECT_EQ(kKey, mock_proxy_->observed_key_); 269 EXPECT_EQ(kKey, mock_proxy_->observed_key_);
270 EXPECT_EQ(2u, mock_proxy_->pending_callbacks_.size()); 270 EXPECT_EQ(2u, mock_proxy_->pending_callbacks_.size());
271 } 271 }
272 272
273 TEST_F(DomStorageCachedAreaTest, MutationsAreIgnoredUntilLoadCompletion) { 273 TEST_F(DOMStorageCachedAreaTest, MutationsAreIgnoredUntilLoadCompletion) {
274 const int kConnectionId = 7; 274 const int kConnectionId = 7;
275 scoped_refptr<DomStorageCachedArea> cached_area = 275 scoped_refptr<DOMStorageCachedArea> cached_area =
276 new DomStorageCachedArea(kNamespaceId, kOrigin, mock_proxy_.get()); 276 new DOMStorageCachedArea(kNamespaceId, kOrigin, mock_proxy_.get());
277 EXPECT_TRUE(cached_area->GetItem(kConnectionId, kKey).is_null()); 277 EXPECT_TRUE(cached_area->GetItem(kConnectionId, kKey).is_null());
278 EXPECT_TRUE(IsPrimed(cached_area.get())); 278 EXPECT_TRUE(IsPrimed(cached_area.get()));
279 EXPECT_TRUE(IsIgnoringAllMutations(cached_area.get())); 279 EXPECT_TRUE(IsIgnoringAllMutations(cached_area.get()));
280 280
281 // Before load completion, the mutation should be ignored. 281 // Before load completion, the mutation should be ignored.
282 cached_area->ApplyMutation(base::NullableString16(kKey, false), 282 cached_area->ApplyMutation(base::NullableString16(kKey, false),
283 base::NullableString16(kValue, false)); 283 base::NullableString16(kValue, false));
284 EXPECT_TRUE(cached_area->GetItem(kConnectionId, kKey).is_null()); 284 EXPECT_TRUE(cached_area->GetItem(kConnectionId, kKey).is_null());
285 285
286 // Call the load completion callback. 286 // Call the load completion callback.
287 mock_proxy_->CompleteOnePendingCallback(true); 287 mock_proxy_->CompleteOnePendingCallback(true);
288 EXPECT_FALSE(IsIgnoringAllMutations(cached_area.get())); 288 EXPECT_FALSE(IsIgnoringAllMutations(cached_area.get()));
289 289
290 // Verify that mutations are now applied. 290 // Verify that mutations are now applied.
291 cached_area->ApplyMutation(base::NullableString16(kKey, false), 291 cached_area->ApplyMutation(base::NullableString16(kKey, false),
292 base::NullableString16(kValue, false)); 292 base::NullableString16(kValue, false));
293 EXPECT_EQ(kValue, cached_area->GetItem(kConnectionId, kKey).string()); 293 EXPECT_EQ(kValue, cached_area->GetItem(kConnectionId, kKey).string());
294 } 294 }
295 295
296 TEST_F(DomStorageCachedAreaTest, MutationsAreIgnoredUntilClearCompletion) { 296 TEST_F(DOMStorageCachedAreaTest, MutationsAreIgnoredUntilClearCompletion) {
297 const int kConnectionId = 4; 297 const int kConnectionId = 4;
298 scoped_refptr<DomStorageCachedArea> cached_area = 298 scoped_refptr<DOMStorageCachedArea> cached_area =
299 new DomStorageCachedArea(kNamespaceId, kOrigin, mock_proxy_.get()); 299 new DOMStorageCachedArea(kNamespaceId, kOrigin, mock_proxy_.get());
300 cached_area->Clear(kConnectionId, kPageUrl); 300 cached_area->Clear(kConnectionId, kPageUrl);
301 EXPECT_TRUE(IsIgnoringAllMutations(cached_area.get())); 301 EXPECT_TRUE(IsIgnoringAllMutations(cached_area.get()));
302 mock_proxy_->CompleteOnePendingCallback(true); 302 mock_proxy_->CompleteOnePendingCallback(true);
303 EXPECT_FALSE(IsIgnoringAllMutations(cached_area.get())); 303 EXPECT_FALSE(IsIgnoringAllMutations(cached_area.get()));
304 304
305 // Verify that calling Clear twice works as expected, the first 305 // Verify that calling Clear twice works as expected, the first
306 // completion callback should have been cancelled. 306 // completion callback should have been cancelled.
307 ResetCacheOnly(cached_area.get()); 307 ResetCacheOnly(cached_area.get());
308 cached_area->Clear(kConnectionId, kPageUrl); 308 cached_area->Clear(kConnectionId, kPageUrl);
309 EXPECT_TRUE(IsIgnoringAllMutations(cached_area.get())); 309 EXPECT_TRUE(IsIgnoringAllMutations(cached_area.get()));
310 cached_area->Clear(kConnectionId, kPageUrl); 310 cached_area->Clear(kConnectionId, kPageUrl);
311 EXPECT_TRUE(IsIgnoringAllMutations(cached_area.get())); 311 EXPECT_TRUE(IsIgnoringAllMutations(cached_area.get()));
312 mock_proxy_->CompleteOnePendingCallback(true); 312 mock_proxy_->CompleteOnePendingCallback(true);
313 EXPECT_TRUE(IsIgnoringAllMutations(cached_area.get())); 313 EXPECT_TRUE(IsIgnoringAllMutations(cached_area.get()));
314 mock_proxy_->CompleteOnePendingCallback(true); 314 mock_proxy_->CompleteOnePendingCallback(true);
315 EXPECT_FALSE(IsIgnoringAllMutations(cached_area.get())); 315 EXPECT_FALSE(IsIgnoringAllMutations(cached_area.get()));
316 } 316 }
317 317
318 TEST_F(DomStorageCachedAreaTest, KeyMutationsAreIgnoredUntilCompletion) { 318 TEST_F(DOMStorageCachedAreaTest, KeyMutationsAreIgnoredUntilCompletion) {
319 const int kConnectionId = 8; 319 const int kConnectionId = 8;
320 scoped_refptr<DomStorageCachedArea> cached_area = 320 scoped_refptr<DOMStorageCachedArea> cached_area =
321 new DomStorageCachedArea(kNamespaceId, kOrigin, mock_proxy_.get()); 321 new DOMStorageCachedArea(kNamespaceId, kOrigin, mock_proxy_.get());
322 322
323 // SetItem 323 // SetItem
324 EXPECT_TRUE(cached_area->SetItem(kConnectionId, kKey, kValue, kPageUrl)); 324 EXPECT_TRUE(cached_area->SetItem(kConnectionId, kKey, kValue, kPageUrl));
325 mock_proxy_->CompleteOnePendingCallback(true); // load completion 325 mock_proxy_->CompleteOnePendingCallback(true); // load completion
326 EXPECT_FALSE(IsIgnoringAllMutations(cached_area.get())); 326 EXPECT_FALSE(IsIgnoringAllMutations(cached_area.get()));
327 EXPECT_TRUE(IsIgnoringKeyMutations(cached_area.get(), kKey)); 327 EXPECT_TRUE(IsIgnoringKeyMutations(cached_area.get(), kKey));
328 cached_area->ApplyMutation(base::NullableString16(kKey, false), 328 cached_area->ApplyMutation(base::NullableString16(kKey, false),
329 base::NullableString16()); 329 base::NullableString16());
330 EXPECT_EQ(kValue, cached_area->GetItem(kConnectionId, kKey).string()); 330 EXPECT_EQ(kValue, cached_area->GetItem(kConnectionId, kKey).string());
331 mock_proxy_->CompleteOnePendingCallback(true); // set completion 331 mock_proxy_->CompleteOnePendingCallback(true); // set completion
(...skipping 14 matching lines...) Expand all
346 mock_proxy_->CompleteOnePendingCallback(true); // remove completion 346 mock_proxy_->CompleteOnePendingCallback(true); // remove completion
347 EXPECT_FALSE(IsIgnoringKeyMutations(cached_area.get(), kKey)); 347 EXPECT_FALSE(IsIgnoringKeyMutations(cached_area.get(), kKey));
348 348
349 // A failed set item operation should Reset the cache. 349 // A failed set item operation should Reset the cache.
350 EXPECT_TRUE(cached_area->SetItem(kConnectionId, kKey, kValue, kPageUrl)); 350 EXPECT_TRUE(cached_area->SetItem(kConnectionId, kKey, kValue, kPageUrl));
351 EXPECT_TRUE(IsIgnoringKeyMutations(cached_area.get(), kKey)); 351 EXPECT_TRUE(IsIgnoringKeyMutations(cached_area.get(), kKey));
352 mock_proxy_->CompleteOnePendingCallback(false); 352 mock_proxy_->CompleteOnePendingCallback(false);
353 EXPECT_FALSE(IsPrimed(cached_area.get())); 353 EXPECT_FALSE(IsPrimed(cached_area.get()));
354 } 354 }
355 355
356 } // namespace dom_storage 356 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/dom_storage/dom_storage_cached_area.cc ('k') | content/renderer/dom_storage/dom_storage_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698