| Index: Source/platform/graphics/ListContainerTest.cpp
|
| diff --git a/Source/platform/graphics/ListContainerTest.cpp b/Source/platform/graphics/ListContainerTest.cpp
|
| index b92b588bcb977fdb77a9bd1e13ba78e1e440cbbd..3d2546b8fe95efa136707b5278b826dfa49ccafe 100644
|
| --- a/Source/platform/graphics/ListContainerTest.cpp
|
| +++ b/Source/platform/graphics/ListContainerTest.cpp
|
| @@ -153,6 +153,27 @@ TEST(ListContainerTest, ConstructorCalledInAllocateAndConstruct)
|
| EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementTwo, derivedElement2->getValue());
|
| }
|
|
|
| +TEST(ListContainerTest, AllocateAndConstructWithArguments)
|
| +{
|
| + // Create a new OwnPtr<SimpleDerivedElement> by passing in a new SimpleDerivedElement.
|
| + ListContainer<OwnPtr<SimpleDerivedElement>> list1(kCurrentLargestDerivedElementSize);
|
| + auto* sdeOwnPtr1 = list1.allocateAndConstruct<OwnPtr<SimpleDerivedElement>>(adoptPtr(new SimpleDerivedElementConstructMagicNumberOne()));
|
| + EXPECT_EQ(1u, list1.size());
|
| + EXPECT_EQ(sdeOwnPtr1, list1.back());
|
| + EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementOne, (*sdeOwnPtr1)->getValue());
|
| + (*sdeOwnPtr1)->setValue(kMagicNumberToUseForSimpleDerivedElementTwo);
|
| +
|
| + // Transfer an OwnPtr<SimpleDerivedElement> to another list.
|
| + ListContainer<OwnPtr<SimpleDerivedElement>> list2(kCurrentLargestDerivedElementSize);
|
| + auto* sdeOwnPtr2 = list2.allocateAndConstruct<OwnPtr<SimpleDerivedElement>>(sdeOwnPtr1->release());
|
| + EXPECT_EQ(1u, list2.size());
|
| + EXPECT_EQ(sdeOwnPtr2, list2.back());
|
| + EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementTwo, (*sdeOwnPtr2)->getValue());
|
| +
|
| + // Verify the first OwnPtr is null after moving.
|
| + EXPECT_EQ(nullptr, list1.back()->get());
|
| +}
|
| +
|
| TEST(ListContainerTest, DestructorCalled)
|
| {
|
| ListContainer<DerivedElement> list(kCurrentLargestDerivedElementSize);
|
| @@ -853,6 +874,20 @@ TEST(ListContainerTest, AppendByMovingDoesNotDestruct)
|
| EXPECT_CALL(*mde1, Destruct());
|
| }
|
|
|
| +TEST(ListContainerTest, AppendByMovingReturnsMovedPointer)
|
| +{
|
| + ListContainer<SimpleDerivedElement> list1(kCurrentLargestDerivedElementSize);
|
| + ListContainer<SimpleDerivedElement> list2(kCurrentLargestDerivedElementSize);
|
| + SimpleDerivedElement* simpleElement = list1.allocateAndConstruct<SimpleDerivedElement>();
|
| +
|
| + SimpleDerivedElement* movedElement1 = list2.appendByMoving(simpleElement);
|
| + EXPECT_EQ(list2.back(), movedElement1);
|
| +
|
| + SimpleDerivedElement* movedElement2 = list1.appendByMoving(movedElement1);
|
| + EXPECT_EQ(list1.back(), movedElement2);
|
| + EXPECT_NE(movedElement1, movedElement2);
|
| +}
|
| +
|
| TEST(ListContainerTest, AppendByMovingReplacesSourceWithNewDerivedElement)
|
| {
|
| ListContainer<SimpleDerivedElementConstructMagicNumberOne> list1(kCurrentLargestDerivedElementSize);
|
|
|