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

Side by Side Diff: components/leveldb/leveldb_service_unittest.cc

Issue 2589663003: mojo:: Rename mojo::GetProxy() to mojo::MakeRequest() (Closed)
Patch Set: Rebase Created 4 years 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
1 // Copyright 2016 The Chromium Authors. All rights reserved. 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 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/macros.h" 6 #include "base/macros.h"
7 #include "base/run_loop.h" 7 #include "base/run_loop.h"
8 #include "components/filesystem/public/interfaces/directory.mojom.h" 8 #include "components/filesystem/public/interfaces/directory.mojom.h"
9 #include "components/filesystem/public/interfaces/file_system.mojom.h" 9 #include "components/filesystem/public/interfaces/file_system.mojom.h"
10 #include "components/filesystem/public/interfaces/types.mojom.h" 10 #include "components/filesystem/public/interfaces/types.mojom.h"
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 void TearDown() override { 119 void TearDown() override {
120 leveldb_.reset(); 120 leveldb_.reset();
121 files_.reset(); 121 files_.reset();
122 ServiceTest::TearDown(); 122 ServiceTest::TearDown();
123 } 123 }
124 124
125 // Note: This has an out parameter rather than returning the |DirectoryPtr|, 125 // Note: This has an out parameter rather than returning the |DirectoryPtr|,
126 // since |ASSERT_...()| doesn't work with return values. 126 // since |ASSERT_...()| doesn't work with return values.
127 void GetTempDirectory(filesystem::mojom::DirectoryPtr* directory) { 127 void GetTempDirectory(filesystem::mojom::DirectoryPtr* directory) {
128 FileError error = FileError::FAILED; 128 FileError error = FileError::FAILED;
129 bool handled = files()->OpenTempDirectory(GetProxy(directory), &error); 129 bool handled = files()->OpenTempDirectory(MakeRequest(directory), &error);
130 ASSERT_TRUE(handled); 130 ASSERT_TRUE(handled);
131 ASSERT_EQ(FileError::OK, error); 131 ASSERT_EQ(FileError::OK, error);
132 } 132 }
133 133
134 filesystem::mojom::FileSystemPtr& files() { return files_; } 134 filesystem::mojom::FileSystemPtr& files() { return files_; }
135 mojom::LevelDBServicePtr& leveldb() { return leveldb_; } 135 mojom::LevelDBServicePtr& leveldb() { return leveldb_; }
136 136
137 private: 137 private:
138 filesystem::mojom::FileSystemPtr files_; 138 filesystem::mojom::FileSystemPtr files_;
139 mojom::LevelDBServicePtr leveldb_; 139 mojom::LevelDBServicePtr leveldb_;
140 140
141 DISALLOW_COPY_AND_ASSIGN(LevelDBServiceTest); 141 DISALLOW_COPY_AND_ASSIGN(LevelDBServiceTest);
142 }; 142 };
143 143
144 TEST_F(LevelDBServiceTest, Basic) { 144 TEST_F(LevelDBServiceTest, Basic) {
145 mojom::DatabaseError error; 145 mojom::DatabaseError error;
146 mojom::LevelDBDatabasePtr database; 146 mojom::LevelDBDatabasePtr database;
147 LevelDBSyncOpenInMemory(leveldb().get(), GetProxy(&database), &error); 147 LevelDBSyncOpenInMemory(leveldb().get(), MakeRequest(&database), &error);
148 EXPECT_EQ(mojom::DatabaseError::OK, error); 148 EXPECT_EQ(mojom::DatabaseError::OK, error);
149 149
150 // Write a key to the database. 150 // Write a key to the database.
151 error = mojom::DatabaseError::INVALID_ARGUMENT; 151 error = mojom::DatabaseError::INVALID_ARGUMENT;
152 DatabaseSyncPut(database.get(), "key", "value", &error); 152 DatabaseSyncPut(database.get(), "key", "value", &error);
153 EXPECT_EQ(mojom::DatabaseError::OK, error); 153 EXPECT_EQ(mojom::DatabaseError::OK, error);
154 154
155 // Read the key back from the database. 155 // Read the key back from the database.
156 error = mojom::DatabaseError::INVALID_ARGUMENT; 156 error = mojom::DatabaseError::INVALID_ARGUMENT;
157 std::vector<uint8_t> value; 157 std::vector<uint8_t> value;
(...skipping 13 matching lines...) Expand all
171 error = mojom::DatabaseError::INVALID_ARGUMENT; 171 error = mojom::DatabaseError::INVALID_ARGUMENT;
172 value.clear(); 172 value.clear();
173 DatabaseSyncGet(database.get(), "key", &error, &value); 173 DatabaseSyncGet(database.get(), "key", &error, &value);
174 EXPECT_EQ(mojom::DatabaseError::NOT_FOUND, error); 174 EXPECT_EQ(mojom::DatabaseError::NOT_FOUND, error);
175 EXPECT_EQ("", Uint8VectorToStdString(value)); 175 EXPECT_EQ("", Uint8VectorToStdString(value));
176 } 176 }
177 177
178 TEST_F(LevelDBServiceTest, WriteBatch) { 178 TEST_F(LevelDBServiceTest, WriteBatch) {
179 mojom::DatabaseError error; 179 mojom::DatabaseError error;
180 mojom::LevelDBDatabasePtr database; 180 mojom::LevelDBDatabasePtr database;
181 LevelDBSyncOpenInMemory(leveldb().get(), GetProxy(&database), &error); 181 LevelDBSyncOpenInMemory(leveldb().get(), MakeRequest(&database), &error);
182 EXPECT_EQ(mojom::DatabaseError::OK, error); 182 EXPECT_EQ(mojom::DatabaseError::OK, error);
183 183
184 // Write a key to the database. 184 // Write a key to the database.
185 DatabaseSyncPut(database.get(), "key", "value", &error); 185 DatabaseSyncPut(database.get(), "key", "value", &error);
186 EXPECT_EQ(mojom::DatabaseError::OK, error); 186 EXPECT_EQ(mojom::DatabaseError::OK, error);
187 187
188 // Create a batched operation which both deletes "key" and adds another write. 188 // Create a batched operation which both deletes "key" and adds another write.
189 std::vector<mojom::BatchedOperationPtr> operations; 189 std::vector<mojom::BatchedOperationPtr> operations;
190 mojom::BatchedOperationPtr item = mojom::BatchedOperation::New(); 190 mojom::BatchedOperationPtr item = mojom::BatchedOperation::New();
191 item->type = mojom::BatchOperationType::DELETE_KEY; 191 item->type = mojom::BatchOperationType::DELETE_KEY;
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 } 250 }
251 251
252 TEST_F(LevelDBServiceTest, Reconnect) { 252 TEST_F(LevelDBServiceTest, Reconnect) {
253 mojom::DatabaseError error; 253 mojom::DatabaseError error;
254 254
255 filesystem::mojom::DirectoryPtr temp_directory; 255 filesystem::mojom::DirectoryPtr temp_directory;
256 GetTempDirectory(&temp_directory); 256 GetTempDirectory(&temp_directory);
257 257
258 { 258 {
259 filesystem::mojom::DirectoryPtr directory; 259 filesystem::mojom::DirectoryPtr directory;
260 temp_directory->Clone(GetProxy(&directory)); 260 temp_directory->Clone(MakeRequest(&directory));
261 261
262 mojom::LevelDBDatabasePtr database; 262 mojom::LevelDBDatabasePtr database;
263 leveldb::mojom::OpenOptionsPtr options = leveldb::mojom::OpenOptions::New(); 263 leveldb::mojom::OpenOptionsPtr options = leveldb::mojom::OpenOptions::New();
264 options->error_if_exists = true; 264 options->error_if_exists = true;
265 options->create_if_missing = true; 265 options->create_if_missing = true;
266 base::RunLoop run_loop; 266 base::RunLoop run_loop;
267 leveldb()->OpenWithOptions(std::move(options), std::move(directory), "test", 267 leveldb()->OpenWithOptions(std::move(options), std::move(directory), "test",
268 GetProxy(&database), 268 MakeRequest(&database),
269 Capture(&error, run_loop.QuitClosure())); 269 Capture(&error, run_loop.QuitClosure()));
270 run_loop.Run(); 270 run_loop.Run();
271 EXPECT_EQ(mojom::DatabaseError::OK, error); 271 EXPECT_EQ(mojom::DatabaseError::OK, error);
272 272
273 // Write a key to the database. 273 // Write a key to the database.
274 error = mojom::DatabaseError::INVALID_ARGUMENT; 274 error = mojom::DatabaseError::INVALID_ARGUMENT;
275 DatabaseSyncPut(database.get(), "key", "value", &error); 275 DatabaseSyncPut(database.get(), "key", "value", &error);
276 EXPECT_EQ(mojom::DatabaseError::OK, error); 276 EXPECT_EQ(mojom::DatabaseError::OK, error);
277 277
278 // The database should go out of scope here. 278 // The database should go out of scope here.
279 } 279 }
280 280
281 { 281 {
282 filesystem::mojom::DirectoryPtr directory; 282 filesystem::mojom::DirectoryPtr directory;
283 temp_directory->Clone(GetProxy(&directory)); 283 temp_directory->Clone(MakeRequest(&directory));
284 284
285 // Reconnect to the database. 285 // Reconnect to the database.
286 mojom::LevelDBDatabasePtr database; 286 mojom::LevelDBDatabasePtr database;
287 base::RunLoop run_loop; 287 base::RunLoop run_loop;
288 leveldb()->Open(std::move(directory), "test", GetProxy(&database), 288 leveldb()->Open(std::move(directory), "test", MakeRequest(&database),
289 Capture(&error, run_loop.QuitClosure())); 289 Capture(&error, run_loop.QuitClosure()));
290 run_loop.Run(); 290 run_loop.Run();
291 EXPECT_EQ(mojom::DatabaseError::OK, error); 291 EXPECT_EQ(mojom::DatabaseError::OK, error);
292 292
293 // We should still be able to read the key back from the database. 293 // We should still be able to read the key back from the database.
294 error = mojom::DatabaseError::INVALID_ARGUMENT; 294 error = mojom::DatabaseError::INVALID_ARGUMENT;
295 std::vector<uint8_t> value; 295 std::vector<uint8_t> value;
296 DatabaseSyncGet(database.get(), "key", &error, &value); 296 DatabaseSyncGet(database.get(), "key", &error, &value);
297 EXPECT_EQ(mojom::DatabaseError::OK, error); 297 EXPECT_EQ(mojom::DatabaseError::OK, error);
298 EXPECT_EQ("value", Uint8VectorToStdString(value)); 298 EXPECT_EQ("value", Uint8VectorToStdString(value));
299 } 299 }
300 } 300 }
301 301
302 TEST_F(LevelDBServiceTest, GetSnapshotSimple) { 302 TEST_F(LevelDBServiceTest, GetSnapshotSimple) {
303 mojom::DatabaseError error; 303 mojom::DatabaseError error;
304 mojom::LevelDBDatabasePtr database; 304 mojom::LevelDBDatabasePtr database;
305 LevelDBSyncOpenInMemory(leveldb().get(), GetProxy(&database), &error); 305 LevelDBSyncOpenInMemory(leveldb().get(), MakeRequest(&database), &error);
306 EXPECT_EQ(mojom::DatabaseError::OK, error); 306 EXPECT_EQ(mojom::DatabaseError::OK, error);
307 307
308 base::UnguessableToken snapshot; 308 base::UnguessableToken snapshot;
309 base::RunLoop run_loop; 309 base::RunLoop run_loop;
310 database->GetSnapshot(CaptureConstRef(&snapshot, run_loop.QuitClosure())); 310 database->GetSnapshot(CaptureConstRef(&snapshot, run_loop.QuitClosure()));
311 run_loop.Run(); 311 run_loop.Run();
312 EXPECT_FALSE(snapshot.is_empty()); 312 EXPECT_FALSE(snapshot.is_empty());
313 } 313 }
314 314
315 TEST_F(LevelDBServiceTest, GetFromSnapshots) { 315 TEST_F(LevelDBServiceTest, GetFromSnapshots) {
316 mojom::DatabaseError error; 316 mojom::DatabaseError error;
317 mojom::LevelDBDatabasePtr database; 317 mojom::LevelDBDatabasePtr database;
318 LevelDBSyncOpenInMemory(leveldb().get(), GetProxy(&database), &error); 318 LevelDBSyncOpenInMemory(leveldb().get(), MakeRequest(&database), &error);
319 EXPECT_EQ(mojom::DatabaseError::OK, error); 319 EXPECT_EQ(mojom::DatabaseError::OK, error);
320 320
321 // Write a key to the database. 321 // Write a key to the database.
322 error = mojom::DatabaseError::INVALID_ARGUMENT; 322 error = mojom::DatabaseError::INVALID_ARGUMENT;
323 DatabaseSyncPut(database.get(), "key", "value", &error); 323 DatabaseSyncPut(database.get(), "key", "value", &error);
324 EXPECT_EQ(mojom::DatabaseError::OK, error); 324 EXPECT_EQ(mojom::DatabaseError::OK, error);
325 325
326 // Take a snapshot where key=value. 326 // Take a snapshot where key=value.
327 base::UnguessableToken key_value_snapshot; 327 base::UnguessableToken key_value_snapshot;
328 base::RunLoop run_loop; 328 base::RunLoop run_loop;
(...skipping 21 matching lines...) Expand all
350 key_value_snapshot, StdStringToUint8Vector("key"), 350 key_value_snapshot, StdStringToUint8Vector("key"),
351 CaptureConstRef(&error, &value, run_loop2.QuitClosure())); 351 CaptureConstRef(&error, &value, run_loop2.QuitClosure()));
352 run_loop2.Run(); 352 run_loop2.Run();
353 EXPECT_EQ(mojom::DatabaseError::OK, error); 353 EXPECT_EQ(mojom::DatabaseError::OK, error);
354 EXPECT_EQ("value", Uint8VectorToStdString(value)); 354 EXPECT_EQ("value", Uint8VectorToStdString(value));
355 } 355 }
356 356
357 TEST_F(LevelDBServiceTest, InvalidArgumentOnInvalidSnapshot) { 357 TEST_F(LevelDBServiceTest, InvalidArgumentOnInvalidSnapshot) {
358 mojom::LevelDBDatabasePtr database; 358 mojom::LevelDBDatabasePtr database;
359 mojom::DatabaseError error = mojom::DatabaseError::INVALID_ARGUMENT; 359 mojom::DatabaseError error = mojom::DatabaseError::INVALID_ARGUMENT;
360 LevelDBSyncOpenInMemory(leveldb().get(), GetProxy(&database), &error); 360 LevelDBSyncOpenInMemory(leveldb().get(), MakeRequest(&database), &error);
361 EXPECT_EQ(mojom::DatabaseError::OK, error); 361 EXPECT_EQ(mojom::DatabaseError::OK, error);
362 362
363 base::UnguessableToken invalid_snapshot = base::UnguessableToken::Create(); 363 base::UnguessableToken invalid_snapshot = base::UnguessableToken::Create();
364 364
365 error = mojom::DatabaseError::OK; 365 error = mojom::DatabaseError::OK;
366 std::vector<uint8_t> value; 366 std::vector<uint8_t> value;
367 base::RunLoop run_loop; 367 base::RunLoop run_loop;
368 database->GetFromSnapshot( 368 database->GetFromSnapshot(
369 invalid_snapshot, StdStringToUint8Vector("key"), 369 invalid_snapshot, StdStringToUint8Vector("key"),
370 CaptureConstRef(&error, &value, run_loop.QuitClosure())); 370 CaptureConstRef(&error, &value, run_loop.QuitClosure()));
371 run_loop.Run(); 371 run_loop.Run();
372 EXPECT_EQ(mojom::DatabaseError::INVALID_ARGUMENT, error); 372 EXPECT_EQ(mojom::DatabaseError::INVALID_ARGUMENT, error);
373 } 373 }
374 374
375 TEST_F(LevelDBServiceTest, MemoryDBReadWrite) { 375 TEST_F(LevelDBServiceTest, MemoryDBReadWrite) {
376 mojom::LevelDBDatabasePtr database; 376 mojom::LevelDBDatabasePtr database;
377 mojom::DatabaseError error = mojom::DatabaseError::INVALID_ARGUMENT; 377 mojom::DatabaseError error = mojom::DatabaseError::INVALID_ARGUMENT;
378 LevelDBSyncOpenInMemory(leveldb().get(), GetProxy(&database), &error); 378 LevelDBSyncOpenInMemory(leveldb().get(), MakeRequest(&database), &error);
379 EXPECT_EQ(mojom::DatabaseError::OK, error); 379 EXPECT_EQ(mojom::DatabaseError::OK, error);
380 380
381 // Write a key to the database. 381 // Write a key to the database.
382 error = mojom::DatabaseError::INVALID_ARGUMENT; 382 error = mojom::DatabaseError::INVALID_ARGUMENT;
383 DatabaseSyncPut(database.get(), "key", "value", &error); 383 DatabaseSyncPut(database.get(), "key", "value", &error);
384 EXPECT_EQ(mojom::DatabaseError::OK, error); 384 EXPECT_EQ(mojom::DatabaseError::OK, error);
385 385
386 // Read the key back from the database. 386 // Read the key back from the database.
387 error = mojom::DatabaseError::INVALID_ARGUMENT; 387 error = mojom::DatabaseError::INVALID_ARGUMENT;
388 std::vector<uint8_t> value; 388 std::vector<uint8_t> value;
(...skipping 14 matching lines...) Expand all
403 value.clear(); 403 value.clear();
404 DatabaseSyncGet(database.get(), "key", &error, &value); 404 DatabaseSyncGet(database.get(), "key", &error, &value);
405 EXPECT_EQ(mojom::DatabaseError::NOT_FOUND, error); 405 EXPECT_EQ(mojom::DatabaseError::NOT_FOUND, error);
406 EXPECT_EQ("", Uint8VectorToStdString(value)); 406 EXPECT_EQ("", Uint8VectorToStdString(value));
407 } 407 }
408 408
409 TEST_F(LevelDBServiceTest, Prefixed) { 409 TEST_F(LevelDBServiceTest, Prefixed) {
410 // Open an in memory database for speed. 410 // Open an in memory database for speed.
411 mojom::DatabaseError error = mojom::DatabaseError::INVALID_ARGUMENT; 411 mojom::DatabaseError error = mojom::DatabaseError::INVALID_ARGUMENT;
412 mojom::LevelDBDatabasePtr database; 412 mojom::LevelDBDatabasePtr database;
413 LevelDBSyncOpenInMemory(leveldb().get(), GetProxy(&database), &error); 413 LevelDBSyncOpenInMemory(leveldb().get(), MakeRequest(&database), &error);
414 EXPECT_EQ(mojom::DatabaseError::OK, error); 414 EXPECT_EQ(mojom::DatabaseError::OK, error);
415 415
416 const std::string prefix("prefix"); 416 const std::string prefix("prefix");
417 std::vector<mojom::KeyValuePtr> key_values; 417 std::vector<mojom::KeyValuePtr> key_values;
418 418
419 // Completely empty database. 419 // Completely empty database.
420 error = mojom::DatabaseError::INVALID_ARGUMENT; 420 error = mojom::DatabaseError::INVALID_ARGUMENT;
421 DatabaseSyncGetPrefixed(database.get(), prefix, &error, &key_values); 421 DatabaseSyncGetPrefixed(database.get(), prefix, &error, &key_values);
422 EXPECT_EQ(mojom::DatabaseError::OK, error); 422 EXPECT_EQ(mojom::DatabaseError::OK, error);
423 EXPECT_TRUE(key_values.empty()); 423 EXPECT_TRUE(key_values.empty());
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 EXPECT_EQ(mojom::DatabaseError::OK, error); 497 EXPECT_EQ(mojom::DatabaseError::OK, error);
498 error = mojom::DatabaseError::INVALID_ARGUMENT; 498 error = mojom::DatabaseError::INVALID_ARGUMENT;
499 key_values.clear(); 499 key_values.clear();
500 DatabaseSyncGetPrefixed(database.get(), prefix, &error, &key_values); 500 DatabaseSyncGetPrefixed(database.get(), prefix, &error, &key_values);
501 EXPECT_EQ(mojom::DatabaseError::OK, error); 501 EXPECT_EQ(mojom::DatabaseError::OK, error);
502 EXPECT_TRUE(key_values.empty()); 502 EXPECT_TRUE(key_values.empty());
503 } 503 }
504 504
505 } // namespace 505 } // namespace
506 } // namespace leveldb 506 } // namespace leveldb
OLDNEW
« no previous file with comments | « components/leveldb/leveldb_mojo_proxy.cc ('k') | components/leveldb/remote_iterator_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698