| 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 "config.h" | 5 #include "config.h" |
| 6 #include "platform/graphics/ListContainer.h" | 6 #include "platform/graphics/ListContainer.h" |
| 7 | 7 |
| 8 #include "wtf/OwnPtr.h" | 8 #include "wtf/OwnPtr.h" |
| 9 #include "wtf/PassOwnPtr.h" | 9 #include "wtf/PassOwnPtr.h" |
| 10 #include "wtf/RefPtr.h" | 10 #include "wtf/RefPtr.h" |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 106 }; | 106 }; |
| 107 | 107 |
| 108 class SimpleDerivedElementConstructMagicNumberTwo : public SimpleDerivedElement
{ | 108 class SimpleDerivedElementConstructMagicNumberTwo : public SimpleDerivedElement
{ |
| 109 public: | 109 public: |
| 110 SimpleDerivedElementConstructMagicNumberTwo() | 110 SimpleDerivedElementConstructMagicNumberTwo() |
| 111 { | 111 { |
| 112 setValue(kMagicNumberToUseForSimpleDerivedElementTwo); | 112 setValue(kMagicNumberToUseForSimpleDerivedElementTwo); |
| 113 } | 113 } |
| 114 }; | 114 }; |
| 115 | 115 |
| 116 class SimpleDerivedElementConstructMagicNumberThree : public SimpleDerivedElemen
t { |
| 117 public: |
| 118 SimpleDerivedElementConstructMagicNumberThree() |
| 119 { |
| 120 setValue(kMagicNumberToUseForSimpleDerivedElementThree); |
| 121 } |
| 122 }; |
| 123 |
| 116 class MockDerivedElement : public SimpleDerivedElementConstructMagicNumberOne { | 124 class MockDerivedElement : public SimpleDerivedElementConstructMagicNumberOne { |
| 117 public: | 125 public: |
| 118 ~MockDerivedElement() override { Destruct(); } | 126 ~MockDerivedElement() override { Destruct(); } |
| 119 MOCK_METHOD0(Destruct, void()); | 127 MOCK_METHOD0(Destruct, void()); |
| 120 }; | 128 }; |
| 121 | 129 |
| 122 class MockDerivedElementSubclass : public MockDerivedElement { | 130 class MockDerivedElementSubclass : public MockDerivedElement { |
| 123 public: | 131 public: |
| 124 MockDerivedElementSubclass() | 132 MockDerivedElementSubclass() |
| 125 { | 133 { |
| (...skipping 806 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 932 list.appendByMoving(list.front()); | 940 list.appendByMoving(list.front()); |
| 933 EXPECT_TRUE(static_cast<LongSimpleDerivedElement*>(list.back())->areAllValue
sEqualTo(kMagicNumberToUseForLongSimpleDerivedElement)); | 941 EXPECT_TRUE(static_cast<LongSimpleDerivedElement*>(list.back())->areAllValue
sEqualTo(kMagicNumberToUseForLongSimpleDerivedElement)); |
| 934 EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementOne, simpleElement->getVal
ue()); | 942 EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementOne, simpleElement->getVal
ue()); |
| 935 | 943 |
| 936 LongSimpleDerivedElement* longElement = static_cast<LongSimpleDerivedElement
*>(list.back()); | 944 LongSimpleDerivedElement* longElement = static_cast<LongSimpleDerivedElement
*>(list.back()); |
| 937 list.appendByMoving(simpleElement); | 945 list.appendByMoving(simpleElement); |
| 938 EXPECT_TRUE(longElement->areAllValuesEqualTo(kMagicNumberToUseForLongSimpleD
erivedElement)); | 946 EXPECT_TRUE(longElement->areAllValuesEqualTo(kMagicNumberToUseForLongSimpleD
erivedElement)); |
| 939 EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementOne, list.back()->getValue
()); | 947 EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementOne, list.back()->getValue
()); |
| 940 } | 948 } |
| 941 | 949 |
| 950 TEST(ListContainerTest, Swap) |
| 951 { |
| 952 ListContainer<SimpleDerivedElement> list1(kCurrentLargestDerivedElementSize)
; |
| 953 list1.allocateAndConstruct<SimpleDerivedElementConstructMagicNumberOne>(); |
| 954 ListContainer<SimpleDerivedElement> list2(kCurrentLargestDerivedElementSize)
; |
| 955 list2.allocateAndConstruct<SimpleDerivedElementConstructMagicNumberTwo>(); |
| 956 list2.allocateAndConstruct<SimpleDerivedElementConstructMagicNumberThree>(); |
| 957 |
| 958 SimpleDerivedElement* preSwapList1Front = list1.front(); |
| 959 |
| 960 EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementOne, list1.front()->getVal
ue()); |
| 961 EXPECT_EQ(1u, list1.size()); |
| 962 EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementTwo, list2.front()->getVal
ue()); |
| 963 EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementThree, list2.back()->getVa
lue()); |
| 964 EXPECT_EQ(2u, list2.size()); |
| 965 |
| 966 list2.swap(list1); |
| 967 |
| 968 EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementTwo, list1.front()->getVal
ue()); |
| 969 EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementThree, list1.back()->getVa
lue()); |
| 970 EXPECT_EQ(2u, list1.size()); |
| 971 EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementOne, list2.front()->getVal
ue()); |
| 972 EXPECT_EQ(1u, list2.size()); |
| 973 |
| 974 // Ensure pointers are still valid after swapping. |
| 975 EXPECT_EQ(preSwapList1Front, list2.front()); |
| 976 } |
| 977 |
| 942 } // namespace | 978 } // namespace |
| 943 } // namespace blink | 979 } // namespace blink |
| OLD | NEW |