| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/containers/scoped_ptr_map.h" | 5 #include "base/containers/scoped_ptr_map.h" |
| 6 | 6 |
| 7 #include <functional> |
| 7 #include <map> | 8 #include <map> |
| 8 #include <utility> | 9 #include <utility> |
| 9 | 10 |
| 10 #include "base/bind.h" | 11 #include "base/bind.h" |
| 11 #include "base/callback.h" | 12 #include "base/callback.h" |
| 12 #include "base/memory/scoped_ptr.h" | 13 #include "base/memory/scoped_ptr.h" |
| 13 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
| 14 | 15 |
| 15 namespace { | 16 namespace { |
| 16 | 17 |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 TEST(ScopedPtrMapTest, Clear) { | 137 TEST(ScopedPtrMapTest, Clear) { |
| 137 bool destroyed = false; | 138 bool destroyed = false; |
| 138 ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map; | 139 ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map; |
| 139 scoped_map.insert(0, make_scoped_ptr(new ScopedDestroyer(&destroyed))); | 140 scoped_map.insert(0, make_scoped_ptr(new ScopedDestroyer(&destroyed))); |
| 140 EXPECT_FALSE(destroyed); | 141 EXPECT_FALSE(destroyed); |
| 141 scoped_map.clear(); | 142 scoped_map.clear(); |
| 142 EXPECT_TRUE(destroyed); | 143 EXPECT_TRUE(destroyed); |
| 143 EXPECT_TRUE(scoped_map.empty()); | 144 EXPECT_TRUE(scoped_map.empty()); |
| 144 } | 145 } |
| 145 | 146 |
| 147 TEST(ScopedPtrMapTest, Compare) { |
| 148 // Construct a ScopedPtrMap with a custom comparison function. |
| 149 bool destroyed = false; |
| 150 ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>, std::greater<int>> scoped_map; |
| 151 scoped_map.insert(0, make_scoped_ptr(new ScopedDestroyer(&destroyed))); |
| 152 scoped_map.insert(1, make_scoped_ptr(new ScopedDestroyer(&destroyed))); |
| 153 |
| 154 auto it = scoped_map.begin(); |
| 155 EXPECT_EQ(1, it->first); |
| 156 ++it; |
| 157 EXPECT_EQ(0, it->first); |
| 158 } |
| 159 |
| 146 TEST(ScopedPtrMapTest, Scope) { | 160 TEST(ScopedPtrMapTest, Scope) { |
| 147 bool destroyed = false; | 161 bool destroyed = false; |
| 148 { | 162 { |
| 149 ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map; | 163 ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map; |
| 150 scoped_map.insert(0, make_scoped_ptr(new ScopedDestroyer(&destroyed))); | 164 scoped_map.insert(0, make_scoped_ptr(new ScopedDestroyer(&destroyed))); |
| 151 EXPECT_FALSE(destroyed); | 165 EXPECT_FALSE(destroyed); |
| 152 } | 166 } |
| 153 EXPECT_TRUE(destroyed); | 167 EXPECT_TRUE(destroyed); |
| 154 } | 168 } |
| 155 | 169 |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 215 ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> result = callback.Run(); | 229 ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> result = callback.Run(); |
| 216 EXPECT_TRUE(scoped_map.empty()); | 230 EXPECT_TRUE(scoped_map.empty()); |
| 217 EXPECT_EQ(elem, result.find(0)->second); | 231 EXPECT_EQ(elem, result.find(0)->second); |
| 218 EXPECT_FALSE(destroyed); | 232 EXPECT_FALSE(destroyed); |
| 219 | 233 |
| 220 result.clear(); | 234 result.clear(); |
| 221 EXPECT_TRUE(destroyed); | 235 EXPECT_TRUE(destroyed); |
| 222 }; | 236 }; |
| 223 | 237 |
| 224 } // namespace | 238 } // namespace |
| OLD | NEW |