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 |