Chromium Code Reviews| Index: base/memory/weak_ptr_unittest.cc |
| diff --git a/base/memory/weak_ptr_unittest.cc b/base/memory/weak_ptr_unittest.cc |
| index e18a2079821a1306ad18aa669d7477743cec851c..405f38f4fdce9c517d921540fc3c47c0c6bc6efb 100644 |
| --- a/base/memory/weak_ptr_unittest.cc |
| +++ b/base/memory/weak_ptr_unittest.cc |
| @@ -353,4 +353,33 @@ TEST(WeakPtrTest, Dereference) { |
| EXPECT_EQ(data.member, ptr->member); |
| } |
| +struct WithRefCounting : RefCounted<WithRefCounting>, |
|
dominich
2012/06/18 15:32:44
I don't understand this. The WeakPtr is already re
|
| + SupportsWeakPtr<WithRefCounting> { |
| + protected: |
| + friend class base::RefCounted<WithRefCounting>; |
| + ~WithRefCounting() {} |
| +}; |
| + |
| +TEST(WeakPtrTest, WithRefCounting) { |
| + scoped_refptr<WithRefCounting> ref_ptr(new WithRefCounting); |
| + WeakPtr<WithRefCounting> weak_ptr = ref_ptr->AsWeakPtr(); |
| + EXPECT_EQ(ref_ptr.get(), weak_ptr.get()); |
| + ref_ptr = NULL; |
| + EXPECT_FALSE(weak_ptr); |
| +} |
| + |
| +struct SubtleWithRefCounting : WithRefCounting { |
| + SubtleWithRefCounting() : self(base::AsWeakPtr(this)) {} |
| + private: |
| + ~SubtleWithRefCounting() { |
| + EXPECT_EQ(this, self); |
| + } |
| + |
| + WeakPtr<SubtleWithRefCounting> self; |
| +}; |
| + |
| +TEST(WeakPtrTest, SubtleWithRefCounting) { |
| + scoped_refptr<SubtleWithRefCounting> ref_ptr(new SubtleWithRefCounting); |
| +} |
| + |
| } // namespace base |