| Index: components/leveldb/leveldb_service_unittest.cc
|
| diff --git a/components/leveldb/leveldb_service_unittest.cc b/components/leveldb/leveldb_service_unittest.cc
|
| index 598f48812a32dbd9daa6192bd9481553b8d764c3..2a5be6978fd5e9d8940323d93d3ae2ffe96b1f53 100644
|
| --- a/components/leveldb/leveldb_service_unittest.cc
|
| +++ b/components/leveldb/leveldb_service_unittest.cc
|
| @@ -8,8 +8,8 @@
|
| #include "components/filesystem/public/interfaces/directory.mojom.h"
|
| #include "components/filesystem/public/interfaces/file_system.mojom.h"
|
| #include "components/filesystem/public/interfaces/types.mojom.h"
|
| +#include "components/leveldb/public/cpp/util.h"
|
| #include "components/leveldb/public/interfaces/leveldb.mojom.h"
|
| -#include "mojo/common/common_type_converters.h"
|
| #include "mojo/public/cpp/bindings/binding_set.h"
|
| #include "services/shell/public/cpp/service_context.h"
|
| #include "services/shell/public/cpp/service_test.h"
|
| @@ -22,7 +22,7 @@ namespace {
|
| template <typename... Args> void IgnoreAllArgs(Args&&...) {}
|
|
|
| template <typename... Args>
|
| -void DoCaptures(Args*... out_args,
|
| +void DoCaptures(typename std::decay<Args>::type*... out_args,
|
| const base::Closure& quit_closure,
|
| Args... in_args) {
|
| IgnoreAllArgs((*out_args = std::move(in_args))...);
|
| @@ -41,42 +41,48 @@ base::Callback<void(T1, T2)> Capture(T1* t1,
|
| return base::Bind(&DoCaptures<T1, T2>, t1, t2, quit_closure);
|
| }
|
|
|
| +template <typename T1, typename T2>
|
| +base::Callback<void(T1, const T2&)>
|
| +CaptureConstRef(T1* t1, T2* t2, const base::Closure& quit_closure) {
|
| + return base::Bind(&DoCaptures<T1, const T2&>, t1, t2, quit_closure);
|
| +}
|
| +
|
| void DatabaseSyncPut(mojom::LevelDBDatabase* database,
|
| - mojo::Array<uint8_t> key,
|
| - mojo::Array<uint8_t> value,
|
| + const std::string& key,
|
| + const std::string& value,
|
| mojom::DatabaseError* out_error) {
|
| base::RunLoop run_loop;
|
| - database->Put(std::move(key), std::move(value),
|
| + database->Put(StdStringToUint8Vector(key), StdStringToUint8Vector(value),
|
| Capture(out_error, run_loop.QuitClosure()));
|
| run_loop.Run();
|
| }
|
|
|
| void DatabaseSyncGet(mojom::LevelDBDatabase* database,
|
| - mojo::Array<uint8_t> key,
|
| + const std::string& key,
|
| mojom::DatabaseError* out_error,
|
| - mojo::Array<uint8_t>* out_value) {
|
| + std::vector<uint8_t>* out_value) {
|
| base::RunLoop run_loop;
|
| - database->Get(std::move(key),
|
| - Capture(out_error, out_value, run_loop.QuitClosure()));
|
| + database->Get(StdStringToUint8Vector(key),
|
| + CaptureConstRef(out_error, out_value, run_loop.QuitClosure()));
|
| run_loop.Run();
|
| }
|
|
|
| void DatabaseSyncGetPrefixed(mojom::LevelDBDatabase* database,
|
| - mojo::Array<uint8_t> key_prefix,
|
| + const std::string& key_prefix,
|
| mojom::DatabaseError* out_error,
|
| - mojo::Array<mojom::KeyValuePtr>* out_key_values) {
|
| + std::vector<mojom::KeyValuePtr>* out_key_values) {
|
| base::RunLoop run_loop;
|
| database->GetPrefixed(
|
| - std::move(key_prefix),
|
| + StdStringToUint8Vector(key_prefix),
|
| Capture(out_error, out_key_values, run_loop.QuitClosure()));
|
| run_loop.Run();
|
| }
|
|
|
| void DatabaseSyncDeletePrefixed(mojom::LevelDBDatabase* database,
|
| - mojo::Array<uint8_t> key_prefix,
|
| + const std::string& key_prefix,
|
| mojom::DatabaseError* out_error) {
|
| base::RunLoop run_loop;
|
| - database->DeletePrefixed(std::move(key_prefix),
|
| + database->DeletePrefixed(StdStringToUint8Vector(key_prefix),
|
| Capture(out_error, run_loop.QuitClosure()));
|
| run_loop.Run();
|
| }
|
| @@ -136,36 +142,30 @@ TEST_F(LevelDBServiceTest, Basic) {
|
|
|
| // Write a key to the database.
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - DatabaseSyncPut(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("key")),
|
| - mojo::Array<uint8_t>::From(std::string("value")), &error);
|
| + DatabaseSyncPut(database.get(), "key", "value", &error);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
|
|
| // Read the key back from the database.
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - mojo::Array<uint8_t> value;
|
| - DatabaseSyncGet(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("key")), &error,
|
| - &value);
|
| + std::vector<uint8_t> value;
|
| + DatabaseSyncGet(database.get(), "key", &error, &value);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| - EXPECT_EQ("value", value.To<std::string>());
|
| + EXPECT_EQ("value", Uint8VectorToStdString(value));
|
|
|
| // Delete the key from the database.
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| base::RunLoop run_loop;
|
| - database->Delete(mojo::Array<uint8_t>::From(std::string("key")),
|
| + database->Delete(StdStringToUint8Vector("key"),
|
| Capture(&error, run_loop.QuitClosure()));
|
| run_loop.Run();
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
|
|
| // Read the key back from the database.
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - value.SetToEmpty();
|
| - DatabaseSyncGet(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("key")), &error,
|
| - &value);
|
| + value.clear();
|
| + DatabaseSyncGet(database.get(), "key", &error, &value);
|
| EXPECT_EQ(mojom::DatabaseError::NOT_FOUND, error);
|
| - EXPECT_EQ("", value.To<std::string>());
|
| + EXPECT_EQ("", Uint8VectorToStdString(value));
|
| }
|
|
|
| TEST_F(LevelDBServiceTest, WriteBatch) {
|
| @@ -175,22 +175,20 @@ TEST_F(LevelDBServiceTest, WriteBatch) {
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
|
|
| // Write a key to the database.
|
| - DatabaseSyncPut(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("key")),
|
| - mojo::Array<uint8_t>::From(std::string("value")), &error);
|
| + DatabaseSyncPut(database.get(), "key", "value", &error);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
|
|
| // Create a batched operation which both deletes "key" and adds another write.
|
| - mojo::Array<mojom::BatchedOperationPtr> operations;
|
| + std::vector<mojom::BatchedOperationPtr> operations;
|
| mojom::BatchedOperationPtr item = mojom::BatchedOperation::New();
|
| item->type = mojom::BatchOperationType::DELETE_KEY;
|
| - item->key = mojo::Array<uint8_t>::From(std::string("key"));
|
| + item->key = StdStringToUint8Vector("key");
|
| operations.push_back(std::move(item));
|
|
|
| item = mojom::BatchedOperation::New();
|
| item->type = mojom::BatchOperationType::PUT_KEY;
|
| - item->key = mojo::Array<uint8_t>::From(std::string("other"));
|
| - item->value = mojo::Array<uint8_t>::From(std::string("more"));
|
| + item->key = StdStringToUint8Vector("other");
|
| + item->value = StdStringToUint8Vector("more");
|
| operations.push_back(std::move(item));
|
|
|
| base::RunLoop run_loop;
|
| @@ -201,36 +199,28 @@ TEST_F(LevelDBServiceTest, WriteBatch) {
|
|
|
| // Reading "key" should be invalid now.
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - mojo::Array<uint8_t> value;
|
| - DatabaseSyncGet(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("key")), &error,
|
| - &value);
|
| + std::vector<uint8_t> value;
|
| + DatabaseSyncGet(database.get(), "key", &error, &value);
|
| EXPECT_EQ(mojom::DatabaseError::NOT_FOUND, error);
|
| - EXPECT_EQ("", value.To<std::string>());
|
| + EXPECT_EQ("", Uint8VectorToStdString(value));
|
|
|
| // Reading "other" should return "more"
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - DatabaseSyncGet(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("other")), &error,
|
| - &value);
|
| + DatabaseSyncGet(database.get(), "other", &error, &value);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| - EXPECT_EQ("more", value.To<std::string>());
|
| + EXPECT_EQ("more", Uint8VectorToStdString(value));
|
|
|
| // Write a some prefixed keys to the database.
|
| - DatabaseSyncPut(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("prefix-key1")),
|
| - mojo::Array<uint8_t>::From(std::string("value")), &error);
|
| + DatabaseSyncPut(database.get(), "prefix-key1", "value", &error);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| - DatabaseSyncPut(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("prefix-key2")),
|
| - mojo::Array<uint8_t>::From(std::string("value")), &error);
|
| + DatabaseSyncPut(database.get(), "prefix-key2", "value", &error);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
|
|
| // Create a batched operation to delete them.
|
| - operations.SetToEmpty();
|
| + operations.clear();
|
| item = mojom::BatchedOperation::New();
|
| item->type = mojom::BatchOperationType::DELETE_PREFIXED_KEY;
|
| - item->key = mojo::Array<uint8_t>::From(std::string("prefix"));
|
| + item->key = StdStringToUint8Vector("prefix");
|
| operations.push_back(std::move(item));
|
| base::RunLoop run_loop2;
|
| database->Write(std::move(operations),
|
| @@ -240,20 +230,16 @@ TEST_F(LevelDBServiceTest, WriteBatch) {
|
|
|
| // Reading all "prefix" keys should be invalid now.
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - value = nullptr;
|
| - DatabaseSyncGet(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("prefix-key1")),
|
| - &error, &value);
|
| + value.clear();
|
| + DatabaseSyncGet(database.get(), "prefix-key1", &error, &value);
|
| EXPECT_EQ(mojom::DatabaseError::NOT_FOUND, error);
|
| - EXPECT_EQ("", value.To<std::string>());
|
| + EXPECT_EQ("", Uint8VectorToStdString(value));
|
| // Reading "key" should be invalid now.
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - value = nullptr;
|
| - DatabaseSyncGet(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("prefix-key2")),
|
| - &error, &value);
|
| + value.clear();
|
| + DatabaseSyncGet(database.get(), "prefix-key2", &error, &value);
|
| EXPECT_EQ(mojom::DatabaseError::NOT_FOUND, error);
|
| - EXPECT_EQ("", value.To<std::string>());
|
| + EXPECT_EQ("", Uint8VectorToStdString(value));
|
| }
|
|
|
| TEST_F(LevelDBServiceTest, Reconnect) {
|
| @@ -279,9 +265,7 @@ TEST_F(LevelDBServiceTest, Reconnect) {
|
|
|
| // Write a key to the database.
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - DatabaseSyncPut(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("key")),
|
| - mojo::Array<uint8_t>::From(std::string("value")), &error);
|
| + DatabaseSyncPut(database.get(), "key", "value", &error);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
|
|
| // The database should go out of scope here.
|
| @@ -301,12 +285,10 @@ TEST_F(LevelDBServiceTest, Reconnect) {
|
|
|
| // We should still be able to read the key back from the database.
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - mojo::Array<uint8_t> value;
|
| - DatabaseSyncGet(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("key")), &error,
|
| - &value);
|
| + std::vector<uint8_t> value;
|
| + DatabaseSyncGet(database.get(), "key", &error, &value);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| - EXPECT_EQ("value", value.To<std::string>());
|
| + EXPECT_EQ("value", Uint8VectorToStdString(value));
|
| }
|
| }
|
|
|
| @@ -331,9 +313,7 @@ TEST_F(LevelDBServiceTest, GetFromSnapshots) {
|
|
|
| // Write a key to the database.
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - DatabaseSyncPut(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("key")),
|
| - mojo::Array<uint8_t>::From(std::string("value")), &error);
|
| + DatabaseSyncPut(database.get(), "key", "value", &error);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
|
|
| // Take a snapshot where key=value.
|
| @@ -344,30 +324,26 @@ TEST_F(LevelDBServiceTest, GetFromSnapshots) {
|
|
|
| // Change key to "yek".
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - DatabaseSyncPut(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("key")),
|
| - mojo::Array<uint8_t>::From(std::string("yek")), &error);
|
| + DatabaseSyncPut(database.get(), "key", "yek", &error);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
|
|
| // (Ensure this change is live on the database.)
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - mojo::Array<uint8_t> value;
|
| - DatabaseSyncGet(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("key")), &error,
|
| - &value);
|
| + std::vector<uint8_t> value;
|
| + DatabaseSyncGet(database.get(), "key", &error, &value);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| - EXPECT_EQ("yek", value.To<std::string>());
|
| + EXPECT_EQ("yek", Uint8VectorToStdString(value));
|
|
|
| // But if we were to read from the snapshot, we'd still get value.
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - value.SetToEmpty();
|
| + value.clear();
|
| base::RunLoop run_loop2;
|
| - database->GetFromSnapshot(key_value_snapshot,
|
| - mojo::Array<uint8_t>::From(std::string("key")),
|
| - Capture(&error, &value, run_loop2.QuitClosure()));
|
| + database->GetFromSnapshot(
|
| + key_value_snapshot, StdStringToUint8Vector("key"),
|
| + CaptureConstRef(&error, &value, run_loop2.QuitClosure()));
|
| run_loop2.Run();
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| - EXPECT_EQ("value", value.To<std::string>());
|
| + EXPECT_EQ("value", Uint8VectorToStdString(value));
|
| }
|
|
|
| TEST_F(LevelDBServiceTest, InvalidArgumentOnInvalidSnapshot) {
|
| @@ -379,11 +355,11 @@ TEST_F(LevelDBServiceTest, InvalidArgumentOnInvalidSnapshot) {
|
| uint64_t invalid_snapshot = 8;
|
|
|
| error = mojom::DatabaseError::OK;
|
| - mojo::Array<uint8_t> value;
|
| + std::vector<uint8_t> value;
|
| base::RunLoop run_loop;
|
| - database->GetFromSnapshot(invalid_snapshot,
|
| - mojo::Array<uint8_t>::From(std::string("key")),
|
| - Capture(&error, &value, run_loop.QuitClosure()));
|
| + database->GetFromSnapshot(
|
| + invalid_snapshot, StdStringToUint8Vector("key"),
|
| + CaptureConstRef(&error, &value, run_loop.QuitClosure()));
|
| run_loop.Run();
|
| EXPECT_EQ(mojom::DatabaseError::INVALID_ARGUMENT, error);
|
| }
|
| @@ -396,36 +372,30 @@ TEST_F(LevelDBServiceTest, MemoryDBReadWrite) {
|
|
|
| // Write a key to the database.
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - DatabaseSyncPut(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("key")),
|
| - mojo::Array<uint8_t>::From(std::string("value")), &error);
|
| + DatabaseSyncPut(database.get(), "key", "value", &error);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
|
|
| // Read the key back from the database.
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - mojo::Array<uint8_t> value;
|
| - DatabaseSyncGet(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("key")), &error,
|
| - &value);
|
| + std::vector<uint8_t> value;
|
| + DatabaseSyncGet(database.get(), "key", &error, &value);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| - EXPECT_EQ("value", value.To<std::string>());
|
| + EXPECT_EQ("value", Uint8VectorToStdString(value));
|
|
|
| // Delete the key from the database.
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| base::RunLoop run_loop;
|
| - database->Delete(mojo::Array<uint8_t>::From(std::string("key")),
|
| + database->Delete(StdStringToUint8Vector("key"),
|
| Capture(&error, run_loop.QuitClosure()));
|
| run_loop.Run();
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
|
|
| // Read the key back from the database.
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - value.SetToEmpty();
|
| - DatabaseSyncGet(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("key")), &error,
|
| - &value);
|
| + value.clear();
|
| + DatabaseSyncGet(database.get(), "key", &error, &value);
|
| EXPECT_EQ(mojom::DatabaseError::NOT_FOUND, error);
|
| - EXPECT_EQ("", value.To<std::string>());
|
| + EXPECT_EQ("", Uint8VectorToStdString(value));
|
| }
|
|
|
| TEST_F(LevelDBServiceTest, Prefixed) {
|
| @@ -436,110 +406,90 @@ TEST_F(LevelDBServiceTest, Prefixed) {
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
|
|
| const std::string prefix("prefix");
|
| - mojo::Array<mojom::KeyValuePtr> key_values;
|
| + std::vector<mojom::KeyValuePtr> key_values;
|
|
|
| // Completely empty database.
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - DatabaseSyncGetPrefixed(database.get(), mojo::Array<uint8_t>::From(prefix),
|
| - &error, &key_values);
|
| + DatabaseSyncGetPrefixed(database.get(), prefix, &error, &key_values);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| EXPECT_TRUE(key_values.empty());
|
|
|
| // No values with our prefix, but values before and after.
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - DatabaseSyncPut(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("a-before-prefix")),
|
| - mojo::Array<uint8_t>::From(std::string("value")), &error);
|
| + DatabaseSyncPut(database.get(), "a-before-prefix", "value", &error);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - DatabaseSyncPut(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("z-after-prefix")),
|
| - mojo::Array<uint8_t>::From(std::string("value")), &error);
|
| + DatabaseSyncPut(database.get(), "z-after-prefix", "value", &error);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| - key_values.SetToEmpty();
|
| + key_values.clear();
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - DatabaseSyncGetPrefixed(database.get(), mojo::Array<uint8_t>::From(prefix),
|
| - &error, &key_values);
|
| + DatabaseSyncGetPrefixed(database.get(), prefix, &error, &key_values);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| EXPECT_TRUE(key_values.empty());
|
|
|
| // One value with the exact prefix.
|
| - DatabaseSyncPut(database.get(), mojo::Array<uint8_t>::From(prefix),
|
| - mojo::Array<uint8_t>::From(std::string("value")), &error);
|
| + DatabaseSyncPut(database.get(), prefix, "value", &error);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - key_values.SetToEmpty();
|
| - DatabaseSyncGetPrefixed(database.get(), mojo::Array<uint8_t>::From(prefix),
|
| - &error, &key_values);
|
| + key_values.clear();
|
| + DatabaseSyncGetPrefixed(database.get(), prefix, &error, &key_values);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| EXPECT_EQ(1u, key_values.size());
|
| - EXPECT_EQ("prefix", key_values[0]->key.To<std::string>());
|
| - EXPECT_EQ("value", key_values[0]->value.To<std::string>());
|
| + EXPECT_EQ("prefix", Uint8VectorToStdString(key_values[0]->key));
|
| + EXPECT_EQ("value", Uint8VectorToStdString(key_values[0]->value));
|
|
|
| // Multiple values with starting with the prefix.
|
| - DatabaseSyncPut(database.get(), mojo::Array<uint8_t>::From(prefix + "2"),
|
| - mojo::Array<uint8_t>::From(std::string("value2")), &error);
|
| + DatabaseSyncPut(database.get(), (prefix + "2"), "value2", &error);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - key_values.SetToEmpty();
|
| - DatabaseSyncGetPrefixed(database.get(), mojo::Array<uint8_t>::From(prefix),
|
| - &error, &key_values);
|
| + key_values.clear();
|
| + DatabaseSyncGetPrefixed(database.get(), prefix, &error, &key_values);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| EXPECT_EQ(2u, key_values.size());
|
| - EXPECT_EQ("prefix", key_values[0]->key.To<std::string>());
|
| - EXPECT_EQ("value", key_values[0]->value.To<std::string>());
|
| - EXPECT_EQ("prefix2", key_values[1]->key.To<std::string>());
|
| - EXPECT_EQ("value2", key_values[1]->value.To<std::string>());
|
| + EXPECT_EQ("prefix", Uint8VectorToStdString(key_values[0]->key));
|
| + EXPECT_EQ("value", Uint8VectorToStdString(key_values[0]->value));
|
| + EXPECT_EQ("prefix2", Uint8VectorToStdString(key_values[1]->key));
|
| + EXPECT_EQ("value2", Uint8VectorToStdString(key_values[1]->value));
|
|
|
| // Delete the prefixed values.
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - DatabaseSyncDeletePrefixed(database.get(), mojo::Array<uint8_t>::From(prefix),
|
| - &error);
|
| + DatabaseSyncDeletePrefixed(database.get(), prefix, &error);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - key_values.SetToEmpty();
|
| - DatabaseSyncGetPrefixed(database.get(), mojo::Array<uint8_t>::From(prefix),
|
| - &error, &key_values);
|
| + key_values.clear();
|
| + DatabaseSyncGetPrefixed(database.get(), prefix, &error, &key_values);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| EXPECT_TRUE(key_values.empty());
|
|
|
| // Make sure the others are not deleted.
|
| - mojo::Array<uint8_t> value;
|
| - DatabaseSyncGet(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("a-before-prefix")),
|
| - &error, &value);
|
| + std::vector<uint8_t> value;
|
| + DatabaseSyncGet(database.get(), "a-before-prefix", &error, &value);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| - EXPECT_EQ("value", value.To<std::string>());
|
| - value.SetToEmpty();
|
| - DatabaseSyncGet(database.get(),
|
| - mojo::Array<uint8_t>::From(std::string("z-after-prefix")),
|
| - &error, &value);
|
| + EXPECT_EQ("value", Uint8VectorToStdString(value));
|
| + value.clear();
|
| + DatabaseSyncGet(database.get(), "z-after-prefix", &error, &value);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| - EXPECT_EQ("value", value.To<std::string>());
|
| + EXPECT_EQ("value", Uint8VectorToStdString(value));
|
|
|
| // A key having our prefix, but no key matching it exactly.
|
| // Even thought there is no exact matching key, GetPrefixed
|
| // and DeletePrefixed still operate on the values.
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - DatabaseSyncPut(database.get(), mojo::Array<uint8_t>::From(prefix + "2"),
|
| - mojo::Array<uint8_t>::From(std::string("value2")), &error);
|
| + DatabaseSyncPut(database.get(), (prefix + "2"), "value2", &error);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - key_values.SetToEmpty();
|
| - DatabaseSyncGetPrefixed(database.get(), mojo::Array<uint8_t>::From(prefix),
|
| - &error, &key_values);
|
| + key_values.clear();
|
| + DatabaseSyncGetPrefixed(database.get(), prefix, &error, &key_values);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| EXPECT_EQ(1u, key_values.size());
|
| - EXPECT_EQ("prefix2", key_values[0]->key.To<std::string>());
|
| - EXPECT_EQ("value2", key_values[0]->value.To<std::string>());
|
| + EXPECT_EQ("prefix2", Uint8VectorToStdString(key_values[0]->key));
|
| + EXPECT_EQ("value2", Uint8VectorToStdString(key_values[0]->value));
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - DatabaseSyncDeletePrefixed(database.get(), mojo::Array<uint8_t>::From(prefix),
|
| - &error);
|
| + DatabaseSyncDeletePrefixed(database.get(), prefix, &error);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| error = mojom::DatabaseError::INVALID_ARGUMENT;
|
| - key_values.SetToEmpty();
|
| - DatabaseSyncGetPrefixed(database.get(), mojo::Array<uint8_t>::From(prefix),
|
| - &error, &key_values);
|
| + key_values.clear();
|
| + DatabaseSyncGetPrefixed(database.get(), prefix, &error, &key_values);
|
| EXPECT_EQ(mojom::DatabaseError::OK, error);
|
| EXPECT_TRUE(key_values.empty());
|
| }
|
|
|