| OLD | NEW |
| 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 "components/filesystem/public/interfaces/directory.mojom.h" | 7 #include "components/filesystem/public/interfaces/directory.mojom.h" |
| 8 #include "components/filesystem/public/interfaces/file_system.mojom.h" | 8 #include "components/filesystem/public/interfaces/file_system.mojom.h" |
| 9 #include "components/filesystem/public/interfaces/types.mojom.h" | 9 #include "components/filesystem/public/interfaces/types.mojom.h" |
| 10 #include "components/leveldb/public/interfaces/leveldb.mojom.h" | 10 #include "components/leveldb/public/interfaces/leveldb.mojom.h" |
| 11 #include "mojo/common/common_type_converters.h" | 11 #include "mojo/common/common_type_converters.h" |
| 12 #include "mojo/public/cpp/bindings/binding_set.h" | 12 #include "mojo/public/cpp/bindings/binding_set.h" |
| 13 #include "services/shell/public/cpp/service_test.h" |
| 13 #include "services/shell/public/cpp/shell_connection.h" | 14 #include "services/shell/public/cpp/shell_connection.h" |
| 14 #include "services/shell/public/cpp/shell_test.h" | |
| 15 | 15 |
| 16 using filesystem::mojom::FileError; | 16 using filesystem::mojom::FileError; |
| 17 | 17 |
| 18 namespace leveldb { | 18 namespace leveldb { |
| 19 namespace { | 19 namespace { |
| 20 | 20 |
| 21 template <typename... Args> void IgnoreAllArgs(Args&&...) {} | 21 template <typename... Args> void IgnoreAllArgs(Args&&...) {} |
| 22 | 22 |
| 23 template <typename... Args> | 23 template <typename... Args> |
| 24 void DoCaptures(Args*... out_args, Args... in_args) { | 24 void DoCaptures(Args*... out_args, Args... in_args) { |
| 25 IgnoreAllArgs((*out_args = std::move(in_args))...); | 25 IgnoreAllArgs((*out_args = std::move(in_args))...); |
| 26 } | 26 } |
| 27 | 27 |
| 28 template <typename T1> | 28 template <typename T1> |
| 29 base::Callback<void(T1)> Capture(T1* t1) { | 29 base::Callback<void(T1)> Capture(T1* t1) { |
| 30 return base::Bind(&DoCaptures<T1>, t1); | 30 return base::Bind(&DoCaptures<T1>, t1); |
| 31 } | 31 } |
| 32 | 32 |
| 33 template <typename T1, typename T2> | 33 template <typename T1, typename T2> |
| 34 base::Callback<void(T1, T2)> Capture(T1* t1, T2* t2) { | 34 base::Callback<void(T1, T2)> Capture(T1* t1, T2* t2) { |
| 35 return base::Bind(&DoCaptures<T1, T2>, t1, t2); | 35 return base::Bind(&DoCaptures<T1, T2>, t1, t2); |
| 36 } | 36 } |
| 37 | 37 |
| 38 class LevelDBServiceTest : public shell::test::ShellTest { | 38 class LevelDBServiceTest : public shell::test::ServiceTest { |
| 39 public: | 39 public: |
| 40 LevelDBServiceTest() : ShellTest("exe:leveldb_service_unittests") {} | 40 LevelDBServiceTest() : ServiceTest("exe:leveldb_service_unittests") {} |
| 41 ~LevelDBServiceTest() override {} | 41 ~LevelDBServiceTest() override {} |
| 42 | 42 |
| 43 protected: | 43 protected: |
| 44 // Overridden from mojo::test::ApplicationTestBase: | 44 // Overridden from mojo::test::ApplicationTestBase: |
| 45 void SetUp() override { | 45 void SetUp() override { |
| 46 ShellTest::SetUp(); | 46 ServiceTest::SetUp(); |
| 47 connector()->ConnectToInterface("mojo:filesystem", &files_); | 47 connector()->ConnectToInterface("mojo:filesystem", &files_); |
| 48 connector()->ConnectToInterface("mojo:leveldb", &leveldb_); | 48 connector()->ConnectToInterface("mojo:leveldb", &leveldb_); |
| 49 } | 49 } |
| 50 | 50 |
| 51 void TearDown() override { | 51 void TearDown() override { |
| 52 leveldb_.reset(); | 52 leveldb_.reset(); |
| 53 files_.reset(); | 53 files_.reset(); |
| 54 ShellTest::TearDown(); | 54 ServiceTest::TearDown(); |
| 55 } | 55 } |
| 56 | 56 |
| 57 // Note: This has an out parameter rather than returning the |DirectoryPtr|, | 57 // Note: This has an out parameter rather than returning the |DirectoryPtr|, |
| 58 // since |ASSERT_...()| doesn't work with return values. | 58 // since |ASSERT_...()| doesn't work with return values. |
| 59 void GetTempDirectory(filesystem::mojom::DirectoryPtr* directory) { | 59 void GetTempDirectory(filesystem::mojom::DirectoryPtr* directory) { |
| 60 FileError error = FileError::FAILED; | 60 FileError error = FileError::FAILED; |
| 61 files()->OpenTempDirectory(GetProxy(directory), Capture(&error)); | 61 files()->OpenTempDirectory(GetProxy(directory), Capture(&error)); |
| 62 ASSERT_TRUE(files().WaitForIncomingResponse()); | 62 ASSERT_TRUE(files().WaitForIncomingResponse()); |
| 63 ASSERT_EQ(FileError::OK, error); | 63 ASSERT_EQ(FileError::OK, error); |
| 64 } | 64 } |
| (...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 507 key_values.SetToEmpty(); | 507 key_values.SetToEmpty(); |
| 508 database->GetPrefixed(mojo::Array<uint8_t>::From(prefix), | 508 database->GetPrefixed(mojo::Array<uint8_t>::From(prefix), |
| 509 Capture(&error, &key_values)); | 509 Capture(&error, &key_values)); |
| 510 ASSERT_TRUE(database.WaitForIncomingResponse()); | 510 ASSERT_TRUE(database.WaitForIncomingResponse()); |
| 511 EXPECT_EQ(mojom::DatabaseError::OK, error); | 511 EXPECT_EQ(mojom::DatabaseError::OK, error); |
| 512 EXPECT_TRUE(key_values.empty()); | 512 EXPECT_TRUE(key_values.empty()); |
| 513 } | 513 } |
| 514 | 514 |
| 515 } // namespace | 515 } // namespace |
| 516 } // namespace leveldb | 516 } // namespace leveldb |
| OLD | NEW |