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

Side by Side Diff: webkit/browser/dom_storage/dom_storage_context_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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/file_util.h" 6 #include "base/file_util.h"
7 #include "base/files/scoped_temp_dir.h" 7 #include "base/files/scoped_temp_dir.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "base/message_loop/message_loop_proxy.h" 9 #include "base/message_loop/message_loop_proxy.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 TEST_F(DomStorageContextTest, UsageInfo) { 92 TEST_F(DomStorageContextTest, UsageInfo) {
93 // Should be empty initially 93 // Should be empty initially
94 std::vector<LocalStorageUsageInfo> infos; 94 std::vector<LocalStorageUsageInfo> infos;
95 context_->GetLocalStorageUsage(&infos, kDontIncludeFileInfo); 95 context_->GetLocalStorageUsage(&infos, kDontIncludeFileInfo);
96 EXPECT_TRUE(infos.empty()); 96 EXPECT_TRUE(infos.empty());
97 context_->GetLocalStorageUsage(&infos, kDoIncludeFileInfo); 97 context_->GetLocalStorageUsage(&infos, kDoIncludeFileInfo);
98 EXPECT_TRUE(infos.empty()); 98 EXPECT_TRUE(infos.empty());
99 99
100 // Put some data into local storage and shutdown the context 100 // Put some data into local storage and shutdown the context
101 // to ensure data is written to disk. 101 // to ensure data is written to disk.
102 NullableString16 old_value; 102 base::NullableString16 old_value;
103 EXPECT_TRUE(context_->GetStorageNamespace(kLocalStorageNamespaceId)-> 103 EXPECT_TRUE(context_->GetStorageNamespace(kLocalStorageNamespaceId)->
104 OpenStorageArea(kOrigin)->SetItem(kKey, kValue, &old_value)); 104 OpenStorageArea(kOrigin)->SetItem(kKey, kValue, &old_value));
105 context_->Shutdown(); 105 context_->Shutdown();
106 context_ = NULL; 106 context_ = NULL;
107 base::MessageLoop::current()->RunUntilIdle(); 107 base::MessageLoop::current()->RunUntilIdle();
108 108
109 // Create a new context that points to the same directory, see that 109 // Create a new context that points to the same directory, see that
110 // it knows about the origin that we stored data for. 110 // it knows about the origin that we stored data for.
111 context_ = new DomStorageContext(temp_dir_.path(), base::FilePath(), NULL, NUL L); 111 context_ = new DomStorageContext(temp_dir_.path(), base::FilePath(), NULL, NUL L);
112 context_->GetLocalStorageUsage(&infos, kDontIncludeFileInfo); 112 context_->GetLocalStorageUsage(&infos, kDontIncludeFileInfo);
113 EXPECT_EQ(1u, infos.size()); 113 EXPECT_EQ(1u, infos.size());
114 EXPECT_EQ(kOrigin, infos[0].origin); 114 EXPECT_EQ(kOrigin, infos[0].origin);
115 EXPECT_EQ(0u, infos[0].data_size); 115 EXPECT_EQ(0u, infos[0].data_size);
116 EXPECT_EQ(base::Time(), infos[0].last_modified); 116 EXPECT_EQ(base::Time(), infos[0].last_modified);
117 infos.clear(); 117 infos.clear();
118 context_->GetLocalStorageUsage(&infos, kDoIncludeFileInfo); 118 context_->GetLocalStorageUsage(&infos, kDoIncludeFileInfo);
119 EXPECT_EQ(1u, infos.size()); 119 EXPECT_EQ(1u, infos.size());
120 EXPECT_EQ(kOrigin, infos[0].origin); 120 EXPECT_EQ(kOrigin, infos[0].origin);
121 EXPECT_NE(0u, infos[0].data_size); 121 EXPECT_NE(0u, infos[0].data_size);
122 EXPECT_NE(base::Time(), infos[0].last_modified); 122 EXPECT_NE(base::Time(), infos[0].last_modified);
123 } 123 }
124 124
125 TEST_F(DomStorageContextTest, SessionOnly) { 125 TEST_F(DomStorageContextTest, SessionOnly) {
126 const GURL kSessionOnlyOrigin("http://www.sessiononly.com/"); 126 const GURL kSessionOnlyOrigin("http://www.sessiononly.com/");
127 storage_policy_->AddSessionOnly(kSessionOnlyOrigin); 127 storage_policy_->AddSessionOnly(kSessionOnlyOrigin);
128 128
129 // Store data for a normal and a session-only origin and then 129 // Store data for a normal and a session-only origin and then
130 // invoke Shutdown() which should delete data for session-only 130 // invoke Shutdown() which should delete data for session-only
131 // origins. 131 // origins.
132 NullableString16 old_value; 132 base::NullableString16 old_value;
133 EXPECT_TRUE(context_->GetStorageNamespace(kLocalStorageNamespaceId)-> 133 EXPECT_TRUE(context_->GetStorageNamespace(kLocalStorageNamespaceId)->
134 OpenStorageArea(kOrigin)->SetItem(kKey, kValue, &old_value)); 134 OpenStorageArea(kOrigin)->SetItem(kKey, kValue, &old_value));
135 EXPECT_TRUE(context_->GetStorageNamespace(kLocalStorageNamespaceId)-> 135 EXPECT_TRUE(context_->GetStorageNamespace(kLocalStorageNamespaceId)->
136 OpenStorageArea(kSessionOnlyOrigin)->SetItem(kKey, kValue, &old_value)); 136 OpenStorageArea(kSessionOnlyOrigin)->SetItem(kKey, kValue, &old_value));
137 context_->Shutdown(); 137 context_->Shutdown();
138 context_ = NULL; 138 context_ = NULL;
139 base::MessageLoop::current()->RunUntilIdle(); 139 base::MessageLoop::current()->RunUntilIdle();
140 140
141 // Verify that the session-only origin data is gone. 141 // Verify that the session-only origin data is gone.
142 VerifySingleOriginRemains(kOrigin); 142 VerifySingleOriginRemains(kOrigin);
143 } 143 }
144 144
145 TEST_F(DomStorageContextTest, SetForceKeepSessionState) { 145 TEST_F(DomStorageContextTest, SetForceKeepSessionState) {
146 const GURL kSessionOnlyOrigin("http://www.sessiononly.com/"); 146 const GURL kSessionOnlyOrigin("http://www.sessiononly.com/");
147 storage_policy_->AddSessionOnly(kSessionOnlyOrigin); 147 storage_policy_->AddSessionOnly(kSessionOnlyOrigin);
148 148
149 // Store data for a session-only origin, setup to save session data, then 149 // Store data for a session-only origin, setup to save session data, then
150 // shutdown. 150 // shutdown.
151 NullableString16 old_value; 151 base::NullableString16 old_value;
152 EXPECT_TRUE(context_->GetStorageNamespace(kLocalStorageNamespaceId)-> 152 EXPECT_TRUE(context_->GetStorageNamespace(kLocalStorageNamespaceId)->
153 OpenStorageArea(kSessionOnlyOrigin)->SetItem(kKey, kValue, &old_value)); 153 OpenStorageArea(kSessionOnlyOrigin)->SetItem(kKey, kValue, &old_value));
154 context_->SetForceKeepSessionState(); // Should override clear behavior. 154 context_->SetForceKeepSessionState(); // Should override clear behavior.
155 context_->Shutdown(); 155 context_->Shutdown();
156 context_ = NULL; 156 context_ = NULL;
157 base::MessageLoop::current()->RunUntilIdle(); 157 base::MessageLoop::current()->RunUntilIdle();
158 158
159 VerifySingleOriginRemains(kSessionOnlyOrigin); 159 VerifySingleOriginRemains(kSessionOnlyOrigin);
160 } 160 }
161 161
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 // Write data. 200 // Write data.
201 const int kSessionStorageNamespaceId = 1; 201 const int kSessionStorageNamespaceId = 1;
202 const std::string kPersistentId = "persistent"; 202 const std::string kPersistentId = "persistent";
203 context_->CreateSessionNamespace(kSessionStorageNamespaceId, 203 context_->CreateSessionNamespace(kSessionStorageNamespaceId,
204 kPersistentId); 204 kPersistentId);
205 DomStorageNamespace* dom_namespace = 205 DomStorageNamespace* dom_namespace =
206 context_->GetStorageNamespace(kSessionStorageNamespaceId); 206 context_->GetStorageNamespace(kSessionStorageNamespaceId);
207 DomStorageArea* area = dom_namespace->OpenStorageArea(kOrigin); 207 DomStorageArea* area = dom_namespace->OpenStorageArea(kOrigin);
208 const base::string16 kKey(ASCIIToUTF16("foo")); 208 const base::string16 kKey(ASCIIToUTF16("foo"));
209 const base::string16 kValue(ASCIIToUTF16("bar")); 209 const base::string16 kValue(ASCIIToUTF16("bar"));
210 NullableString16 old_nullable_value; 210 base::NullableString16 old_nullable_value;
211 area->SetItem(kKey, kValue, &old_nullable_value); 211 area->SetItem(kKey, kValue, &old_nullable_value);
212 dom_namespace->CloseStorageArea(area); 212 dom_namespace->CloseStorageArea(area);
213 213
214 // Destroy and recreate the DomStorageContext. 214 // Destroy and recreate the DomStorageContext.
215 context_->Shutdown(); 215 context_->Shutdown();
216 context_ = NULL; 216 context_ = NULL;
217 base::MessageLoop::current()->RunUntilIdle(); 217 base::MessageLoop::current()->RunUntilIdle();
218 context_ = new DomStorageContext( 218 context_ = new DomStorageContext(
219 temp_dir_.path(), temp_dir_.path(), 219 temp_dir_.path(), temp_dir_.path(),
220 storage_policy_.get(), task_runner_.get()); 220 storage_policy_.get(), task_runner_.get());
221 context_->SetSaveSessionStorageOnDisk(); 221 context_->SetSaveSessionStorageOnDisk();
222 222
223 // Read the data back. 223 // Read the data back.
224 context_->CreateSessionNamespace(kSessionStorageNamespaceId, 224 context_->CreateSessionNamespace(kSessionStorageNamespaceId,
225 kPersistentId); 225 kPersistentId);
226 dom_namespace = context_->GetStorageNamespace(kSessionStorageNamespaceId); 226 dom_namespace = context_->GetStorageNamespace(kSessionStorageNamespaceId);
227 area = dom_namespace->OpenStorageArea(kOrigin); 227 area = dom_namespace->OpenStorageArea(kOrigin);
228 NullableString16 read_value; 228 base::NullableString16 read_value;
229 read_value = area->GetItem(kKey); 229 read_value = area->GetItem(kKey);
230 EXPECT_EQ(kValue, read_value.string()); 230 EXPECT_EQ(kValue, read_value.string());
231 dom_namespace->CloseStorageArea(area); 231 dom_namespace->CloseStorageArea(area);
232 232
233 SessionStorageUsageInfo info; 233 SessionStorageUsageInfo info;
234 info.origin = kOrigin; 234 info.origin = kOrigin;
235 info.persistent_namespace_id = kPersistentId; 235 info.persistent_namespace_id = kPersistentId;
236 context_->DeleteSessionStorage(info); 236 context_->DeleteSessionStorage(info);
237 237
238 // Destroy and recreate again. 238 // Destroy and recreate again.
(...skipping 12 matching lines...) Expand all
251 area = dom_namespace->OpenStorageArea(kOrigin); 251 area = dom_namespace->OpenStorageArea(kOrigin);
252 read_value = area->GetItem(kKey); 252 read_value = area->GetItem(kKey);
253 EXPECT_TRUE(read_value.is_null()); 253 EXPECT_TRUE(read_value.is_null());
254 dom_namespace->CloseStorageArea(area); 254 dom_namespace->CloseStorageArea(area);
255 context_->Shutdown(); 255 context_->Shutdown();
256 context_ = NULL; 256 context_ = NULL;
257 base::MessageLoop::current()->RunUntilIdle(); 257 base::MessageLoop::current()->RunUntilIdle();
258 } 258 }
259 259
260 } // namespace dom_storage 260 } // namespace dom_storage
OLDNEW
« no previous file with comments | « webkit/browser/dom_storage/dom_storage_context.cc ('k') | webkit/browser/dom_storage/dom_storage_database.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698