| Index: content/browser/leveldb_wrapper_impl_unittest.cc
|
| diff --git a/content/browser/leveldb_wrapper_impl_unittest.cc b/content/browser/leveldb_wrapper_impl_unittest.cc
|
| index 3fd3dd8c22e3f8c43fb3c7fa4b59eed3eed198cc..cd25332de3432d69f2536ff3ef694ffd6b1a408e 100644
|
| --- a/content/browser/leveldb_wrapper_impl_unittest.cc
|
| +++ b/content/browser/leveldb_wrapper_impl_unittest.cc
|
| @@ -8,6 +8,7 @@
|
| #include "components/leveldb/public/cpp/util.h"
|
| #include "content/public/test/test_browser_thread_bundle.h"
|
| #include "mojo/public/cpp/bindings/associated_binding.h"
|
| +#include "mojo/public/cpp/bindings/strong_associated_binding.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| using leveldb::StdStringToUint8Vector;
|
| @@ -163,6 +164,34 @@ class MockLevelDBDatabase : public leveldb::mojom::LevelDBDatabase {
|
| std::map<std::vector<uint8_t>, std::vector<uint8_t>>& mock_data_;
|
| };
|
|
|
| +class GetAllCallback : public mojom::LevelDBWrapperGetAllCallback {
|
| + public:
|
| + static mojom::LevelDBWrapperGetAllCallbackAssociatedPtrInfo CreateAndBind(
|
| + mojo::AssociatedGroup* associated_group,
|
| + bool* result,
|
| + const base::Closure& callback) {
|
| + mojom::LevelDBWrapperGetAllCallbackAssociatedPtrInfo ptr_info;
|
| + mojom::LevelDBWrapperGetAllCallbackAssociatedRequest request;
|
| + associated_group->CreateAssociatedInterface(
|
| + mojo::AssociatedGroup::WILL_PASS_PTR, &ptr_info, &request);
|
| + mojo::MakeStrongAssociatedBinding(
|
| + base::WrapUnique(new GetAllCallback(result, callback)),
|
| + std::move(request));
|
| + return ptr_info;
|
| + }
|
| +
|
| + private:
|
| + GetAllCallback(bool* result, const base::Closure& callback)
|
| + : m_result(result), m_callback(callback) {}
|
| + void Complete(bool success) override {
|
| + *m_result = success;
|
| + m_callback.Run();
|
| + }
|
| +
|
| + bool* m_result;
|
| + base::Closure m_callback;
|
| +};
|
| +
|
| void NoOp() {}
|
|
|
| void GetCallback(const base::Closure& callback,
|
| @@ -211,7 +240,7 @@ class LevelDBWrapperImplTest : public testing::Test,
|
|
|
| level_db_wrapper_.Bind(mojo::MakeRequest(&level_db_wrapper_ptr_));
|
| mojom::LevelDBObserverAssociatedPtrInfo ptr_info;
|
| - observer_binding_.Bind(&ptr_info, level_db_wrapper_ptr_.associated_group());
|
| + observer_binding_.Bind(&ptr_info, associated_group());
|
| level_db_wrapper_ptr_->AddObserver(std::move(ptr_info));
|
| }
|
|
|
| @@ -235,6 +264,9 @@ class LevelDBWrapperImplTest : public testing::Test,
|
| }
|
|
|
| mojom::LevelDBWrapper* wrapper() { return level_db_wrapper_ptr_.get(); }
|
| + mojo::AssociatedGroup* associated_group() {
|
| + return level_db_wrapper_ptr_.associated_group();
|
| + }
|
|
|
| bool GetSync(const std::vector<uint8_t>& key, std::vector<uint8_t>* result) {
|
| base::RunLoop run_loop;
|
| @@ -309,7 +341,6 @@ class LevelDBWrapperImplTest : public testing::Test,
|
| void AllDeleted(const std::string& source) override {
|
| observations_.push_back({Observation::kDeleteAll, "", "", "", source});
|
| }
|
| - void GetAllComplete(const std::string& source) override {}
|
|
|
| TestBrowserThreadBundle thread_bundle_;
|
| std::map<std::vector<uint8_t>, std::vector<uint8_t>> mock_data_;
|
| @@ -353,9 +384,17 @@ TEST_F(LevelDBWrapperImplTest, GetFromPutNewKey) {
|
| TEST_F(LevelDBWrapperImplTest, GetAll) {
|
| leveldb::mojom::DatabaseError status;
|
| std::vector<mojom::KeyValuePtr> data;
|
| - EXPECT_TRUE(wrapper()->GetAll(kTestSource, &status, &data));
|
| + base::RunLoop run_loop;
|
| + bool result = false;
|
| + EXPECT_TRUE(wrapper()->GetAll(
|
| + GetAllCallback::CreateAndBind(associated_group(), &result,
|
| + run_loop.QuitClosure()),
|
| + &status, &data));
|
| EXPECT_EQ(leveldb::mojom::DatabaseError::OK, status);
|
| EXPECT_EQ(2u, data.size());
|
| + EXPECT_FALSE(result);
|
| + run_loop.Run();
|
| + EXPECT_TRUE(result);
|
| }
|
|
|
| TEST_F(LevelDBWrapperImplTest, CommitPutToDB) {
|
|
|