Chromium Code Reviews| Index: base/bind_helpers_unittest.cc |
| diff --git a/base/bind_helpers_unittest.cc b/base/bind_helpers_unittest.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..9d56b971b53ea2aabbcbd1a2532d9691482dd74f |
| --- /dev/null |
| +++ b/base/bind_helpers_unittest.cc |
| @@ -0,0 +1,50 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "base/bind_helpers.h" |
| + |
| +#include "base/memory/ptr_util.h" |
| +#include "base/memory/ref_counted.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| + |
| +namespace base { |
| + |
| +TEST(BindHelpersTest, UnwrapUnretained) { |
| + int i = 0; |
| + auto unretained = Unretained(&i); |
| + EXPECT_EQ(&i, internal::Unwrap(unretained)); |
|
dcheng
2016/08/19 04:32:15
I feel like we should be testing this at a higher
tzik
2016/08/23 04:00:15
Ok, I updated bind_unittest.cc for Repeating and O
|
| + EXPECT_EQ(&i, internal::Unwrap(std::move(unretained))); |
| +} |
| + |
| +TEST(BindHelpersTest, UnwrapConstRef) { |
| + int p = 0; |
| + auto const_ref = ConstRef(p); |
| + EXPECT_EQ(&p, &internal::Unwrap(const_ref)); |
| + EXPECT_EQ(&p, &internal::Unwrap(std::move(const_ref))); |
| +} |
| + |
| +TEST(BindHelpersTest, UnwrapRetainedRef) { |
| + auto p = make_scoped_refptr(new RefCountedData<int>); |
| + auto retained_ref = RetainedRef(p); |
| + EXPECT_EQ(p.get(), internal::Unwrap(retained_ref)); |
| + EXPECT_EQ(p.get(), internal::Unwrap(std::move(retained_ref))); |
| +} |
| + |
| +TEST(BindHelpersTest, UnwrapOwned) { |
| + int* p = new int; |
| + auto owned = Owned(p); |
| + EXPECT_EQ(p, internal::Unwrap(owned)); |
| + EXPECT_EQ(p, internal::Unwrap(std::move(owned))); |
| +} |
| + |
| +TEST(BindHelpersTest, UnwrapPassed) { |
| + int* p = new int; |
| + auto passed = Passed(WrapUnique(p)); |
| + EXPECT_EQ(p, internal::Unwrap(passed).get()); |
| + |
| + p = new int; |
| + EXPECT_EQ(p, internal::Unwrap(Passed(WrapUnique(p))).get()); |
| +} |
| + |
| +} // namespace base |