| Index: base/containers/scoped_ptr_map_unittest.cc
|
| diff --git a/base/containers/scoped_ptr_map_unittest.cc b/base/containers/scoped_ptr_map_unittest.cc
|
| deleted file mode 100644
|
| index f8a9779f3dc062a5e132831338ae194b61b122cd..0000000000000000000000000000000000000000
|
| --- a/base/containers/scoped_ptr_map_unittest.cc
|
| +++ /dev/null
|
| @@ -1,244 +0,0 @@
|
| -// Copyright 2015 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/containers/scoped_ptr_map.h"
|
| -
|
| -#include <functional>
|
| -#include <map>
|
| -#include <utility>
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/callback.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -namespace base {
|
| -namespace {
|
| -
|
| -namespace namespace_with_ignore_result {
|
| -
|
| -class Value {};
|
| -
|
| -template <typename T>
|
| -void ignore_result(const T&) {}
|
| -
|
| -} // namespace namespace_with_ignore_result
|
| -
|
| -// A ScopedDestroyer sets a Boolean to true upon destruction.
|
| -class ScopedDestroyer {
|
| - public:
|
| - ScopedDestroyer(bool* destroyed) : destroyed_(destroyed) {
|
| - *destroyed_ = false;
|
| - }
|
| -
|
| - ~ScopedDestroyer() { *destroyed_ = true; }
|
| -
|
| - private:
|
| - bool* destroyed_;
|
| -};
|
| -
|
| -TEST(ScopedPtrMapTest, Insert) {
|
| - bool destroyed1 = false;
|
| - bool destroyed2 = false;
|
| - {
|
| - ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map;
|
| -
|
| - // Insert to new key.
|
| - ScopedDestroyer* elem1 = new ScopedDestroyer(&destroyed1);
|
| - EXPECT_FALSE(destroyed1);
|
| - EXPECT_TRUE(scoped_map.insert(0, make_scoped_ptr(elem1)).second);
|
| - EXPECT_EQ(elem1, scoped_map.find(0)->second);
|
| - EXPECT_FALSE(destroyed1);
|
| -
|
| - // Insert to existing key.
|
| - ScopedDestroyer* elem2 = new ScopedDestroyer(&destroyed2);
|
| - EXPECT_FALSE(destroyed2);
|
| - EXPECT_FALSE(scoped_map.insert(0, make_scoped_ptr(elem2)).second);
|
| - EXPECT_EQ(elem1, scoped_map.find(0)->second);
|
| -
|
| - EXPECT_FALSE(destroyed1);
|
| - EXPECT_TRUE(destroyed2);
|
| - }
|
| - EXPECT_TRUE(destroyed1);
|
| -}
|
| -
|
| -TEST(ScopedPtrMapTest, Set) {
|
| - bool destroyed1 = false;
|
| - bool destroyed2 = false;
|
| - {
|
| - ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map;
|
| -
|
| - // Set a new key.
|
| - ScopedDestroyer* elem1 = new ScopedDestroyer(&destroyed1);
|
| - EXPECT_FALSE(destroyed1);
|
| - scoped_map.set(0, make_scoped_ptr(elem1));
|
| - EXPECT_EQ(elem1, scoped_map.find(0)->second);
|
| - EXPECT_FALSE(destroyed1);
|
| -
|
| - // Set to replace an existing key.
|
| - ScopedDestroyer* elem2 = new ScopedDestroyer(&destroyed2);
|
| - EXPECT_FALSE(destroyed2);
|
| - scoped_map.set(0, make_scoped_ptr(elem2));
|
| - EXPECT_EQ(elem2, scoped_map.find(0)->second);
|
| -
|
| - EXPECT_TRUE(destroyed1);
|
| - EXPECT_FALSE(destroyed2);
|
| - }
|
| - EXPECT_TRUE(destroyed1);
|
| - EXPECT_TRUE(destroyed2);
|
| -}
|
| -
|
| -TEST(ScopedPtrMapTest, EraseIterator) {
|
| - bool destroyed = false;
|
| - ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map;
|
| - scoped_map.insert(0, make_scoped_ptr(new ScopedDestroyer(&destroyed)));
|
| - EXPECT_FALSE(destroyed);
|
| - scoped_map.erase(scoped_map.find(0));
|
| - EXPECT_TRUE(destroyed);
|
| - EXPECT_TRUE(scoped_map.empty());
|
| -}
|
| -
|
| -TEST(ScopedPtrMapTest, EraseKey) {
|
| - bool destroyed = false;
|
| - ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map;
|
| - scoped_map.insert(0, make_scoped_ptr(new ScopedDestroyer(&destroyed)));
|
| - EXPECT_FALSE(destroyed);
|
| - EXPECT_EQ(1u, scoped_map.erase(0));
|
| - EXPECT_TRUE(destroyed);
|
| - EXPECT_TRUE(scoped_map.empty());
|
| -
|
| - // Test erase of a non-existent key.
|
| - EXPECT_EQ(0u, scoped_map.erase(7));
|
| -}
|
| -
|
| -TEST(ScopedPtrMapTest, EraseRange) {
|
| - bool destroyed1 = false;
|
| - bool destroyed2 = false;
|
| - ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map;
|
| -
|
| - scoped_map.insert(0, make_scoped_ptr(new ScopedDestroyer(&destroyed1)));
|
| - EXPECT_FALSE(destroyed1);
|
| -
|
| - scoped_map.insert(1, make_scoped_ptr(new ScopedDestroyer(&destroyed2)));
|
| - EXPECT_FALSE(destroyed2);
|
| -
|
| - scoped_map.erase(scoped_map.find(0), scoped_map.end());
|
| - EXPECT_TRUE(destroyed1);
|
| - EXPECT_TRUE(destroyed2);
|
| - EXPECT_TRUE(scoped_map.empty());
|
| -}
|
| -
|
| -TEST(ScopedPtrMapTest, TakeAndErase) {
|
| - bool destroyed = false;
|
| - ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map;
|
| - ScopedDestroyer* elem = new ScopedDestroyer(&destroyed);
|
| - scoped_map.insert(0, make_scoped_ptr(elem));
|
| - EXPECT_EQ(elem, scoped_map.find(0)->second);
|
| - EXPECT_FALSE(destroyed);
|
| - scoped_ptr<ScopedDestroyer> object = scoped_map.take_and_erase(0);
|
| - EXPECT_EQ(elem, object.get());
|
| - EXPECT_FALSE(destroyed);
|
| - EXPECT_TRUE(scoped_map.empty());
|
| - object.reset();
|
| - EXPECT_TRUE(destroyed);
|
| -}
|
| -
|
| -TEST(ScopedPtrMapTest, Clear) {
|
| - bool destroyed = false;
|
| - ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map;
|
| - scoped_map.insert(0, make_scoped_ptr(new ScopedDestroyer(&destroyed)));
|
| - EXPECT_FALSE(destroyed);
|
| - scoped_map.clear();
|
| - EXPECT_TRUE(destroyed);
|
| - EXPECT_TRUE(scoped_map.empty());
|
| -}
|
| -
|
| -TEST(ScopedPtrMapTest, Compare) {
|
| - // Construct a ScopedPtrMap with a custom comparison function.
|
| - ScopedPtrMap<int, scoped_ptr<int>, std::greater<int>> scoped_map1;
|
| - scoped_map1.insert(0, make_scoped_ptr(new int(0)));
|
| - scoped_map1.insert(1, make_scoped_ptr(new int(0)));
|
| -
|
| - auto it = scoped_map1.begin();
|
| - EXPECT_EQ(1, it->first);
|
| - ++it;
|
| - EXPECT_EQ(0, it->first);
|
| -
|
| - // Test the move constructor.
|
| - ScopedPtrMap<int, scoped_ptr<int>, std::greater<int>> scoped_map2(
|
| - std::move(scoped_map1));
|
| - EXPECT_EQ(2u, scoped_map2.size());
|
| - EXPECT_TRUE(scoped_map1.empty());
|
| -
|
| - // Test move assignment.
|
| - scoped_map1 = std::move(scoped_map2);
|
| - EXPECT_EQ(2u, scoped_map1.size());
|
| - EXPECT_TRUE(scoped_map2.empty());
|
| -
|
| - // Test swap.
|
| - scoped_map2.swap(scoped_map1);
|
| - EXPECT_EQ(2u, scoped_map2.size());
|
| - EXPECT_TRUE(scoped_map1.empty());
|
| -}
|
| -
|
| -TEST(ScopedPtrMapTest, Scope) {
|
| - bool destroyed = false;
|
| - {
|
| - ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map;
|
| - scoped_map.insert(0, make_scoped_ptr(new ScopedDestroyer(&destroyed)));
|
| - EXPECT_FALSE(destroyed);
|
| - }
|
| - EXPECT_TRUE(destroyed);
|
| -}
|
| -
|
| -TEST(ScopedPtrMapTest, MoveConstruct) {
|
| - bool destroyed = false;
|
| - {
|
| - ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map;
|
| - ScopedDestroyer* elem = new ScopedDestroyer(&destroyed);
|
| - scoped_map.insert(0, make_scoped_ptr(elem));
|
| - EXPECT_EQ(elem, scoped_map.find(0)->second);
|
| - EXPECT_FALSE(destroyed);
|
| - EXPECT_FALSE(scoped_map.empty());
|
| -
|
| - ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map_copy(
|
| - std::move(scoped_map));
|
| - EXPECT_TRUE(scoped_map.empty());
|
| - EXPECT_FALSE(scoped_map_copy.empty());
|
| - EXPECT_EQ(elem, scoped_map_copy.find(0)->second);
|
| - EXPECT_FALSE(destroyed);
|
| - }
|
| - EXPECT_TRUE(destroyed);
|
| -}
|
| -
|
| -TEST(ScopedPtrMapTest, MoveAssign) {
|
| - bool destroyed = false;
|
| - {
|
| - ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map;
|
| - ScopedDestroyer* elem = new ScopedDestroyer(&destroyed);
|
| - scoped_map.insert(0, make_scoped_ptr(elem));
|
| - EXPECT_EQ(elem, scoped_map.find(0)->second);
|
| - EXPECT_FALSE(destroyed);
|
| - EXPECT_FALSE(scoped_map.empty());
|
| -
|
| - ScopedPtrMap<int, scoped_ptr<ScopedDestroyer>> scoped_map_assign;
|
| - scoped_map_assign = std::move(scoped_map);
|
| - EXPECT_TRUE(scoped_map.empty());
|
| - EXPECT_FALSE(scoped_map_assign.empty());
|
| - EXPECT_EQ(elem, scoped_map_assign.find(0)->second);
|
| - EXPECT_FALSE(destroyed);
|
| - }
|
| - EXPECT_TRUE(destroyed);
|
| -}
|
| -
|
| -// Test that using a value type from a namespace containing an ignore_result
|
| -// function compiles correctly.
|
| -TEST(ScopedPtrMapTest, IgnoreResultCompile) {
|
| - ScopedPtrMap<int, scoped_ptr<namespace_with_ignore_result::Value>> scoped_map;
|
| - scoped_map.insert(1,
|
| - make_scoped_ptr(new namespace_with_ignore_result::Value));
|
| -}
|
| -
|
| -} // namespace
|
| -} // namespace base
|
|
|