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/shell_connection.h" | 13 #include "services/shell/public/cpp/shell_connection.h" |
14 #include "services/shell/public/cpp/shell_test.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&&...) {} |
| 22 |
| 23 template <typename... Args> |
| 24 void DoCaptures(Args*... out_args, Args... in_args) { |
| 25 IgnoreAllArgs((*out_args = std::move(in_args))...); |
| 26 } |
| 27 |
21 template <typename T1> | 28 template <typename T1> |
22 mojo::Callback<void(T1)> Capture(T1* t1) { | 29 base::Callback<void(T1)> Capture(T1* t1) { |
23 return [t1](T1 got_t1) { *t1 = std::move(got_t1); }; | 30 return base::Bind(&DoCaptures<T1>, t1); |
24 } | 31 } |
25 | 32 |
26 template <typename T1, typename T2> | 33 template <typename T1, typename T2> |
27 mojo::Callback<void(T1, T2)> Capture(T1* t1, T2* t2) { | 34 base::Callback<void(T1, T2)> Capture(T1* t1, T2* t2) { |
28 return [t1, t2](T1 got_t1, T2 got_t2) { | 35 return base::Bind(&DoCaptures<T1, T2>, t1, t2); |
29 *t1 = std::move(got_t1); | |
30 *t2 = std::move(got_t2); | |
31 }; | |
32 } | 36 } |
33 | 37 |
34 class LevelDBServiceTest : public shell::test::ShellTest { | 38 class LevelDBServiceTest : public shell::test::ShellTest { |
35 public: | 39 public: |
36 LevelDBServiceTest() : ShellTest("exe:leveldb_service_unittests") {} | 40 LevelDBServiceTest() : ShellTest("exe:leveldb_service_unittests") {} |
37 ~LevelDBServiceTest() override {} | 41 ~LevelDBServiceTest() override {} |
38 | 42 |
39 protected: | 43 protected: |
40 // Overridden from mojo::test::ApplicationTestBase: | 44 // Overridden from mojo::test::ApplicationTestBase: |
41 void SetUp() override { | 45 void SetUp() override { |
(...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
503 key_values.SetToEmpty(); | 507 key_values.SetToEmpty(); |
504 database->GetPrefixed(mojo::Array<uint8_t>::From(prefix), | 508 database->GetPrefixed(mojo::Array<uint8_t>::From(prefix), |
505 Capture(&error, &key_values)); | 509 Capture(&error, &key_values)); |
506 ASSERT_TRUE(database.WaitForIncomingResponse()); | 510 ASSERT_TRUE(database.WaitForIncomingResponse()); |
507 EXPECT_EQ(mojom::DatabaseError::OK, error); | 511 EXPECT_EQ(mojom::DatabaseError::OK, error); |
508 EXPECT_TRUE(key_values.empty()); | 512 EXPECT_TRUE(key_values.empty()); |
509 } | 513 } |
510 | 514 |
511 } // namespace | 515 } // namespace |
512 } // namespace leveldb | 516 } // namespace leveldb |
OLD | NEW |