diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/core/html/custom/custom_element_reaction_stack_test.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/core/html/custom/custom_element_reaction_stack_test.cc | 119 |
1 files changed, 96 insertions, 23 deletions
diff --git a/chromium/third_party/blink/renderer/core/html/custom/custom_element_reaction_stack_test.cc b/chromium/third_party/blink/renderer/core/html/custom/custom_element_reaction_stack_test.cc index 5ed8fbfa8b8..49ec44d502d 100644 --- a/chromium/third_party/blink/renderer/core/html/custom/custom_element_reaction_stack_test.cc +++ b/chromium/third_party/blink/renderer/core/html/custom/custom_element_reaction_stack_test.cc @@ -21,8 +21,11 @@ TEST(CustomElementReactionStackTest, one) { CustomElementReactionStack* stack = new CustomElementReactionStack(); stack->Push(); + HeapVector<Member<Command>>* commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + commands->push_back(MakeGarbageCollected<Log>('a', log)); stack->EnqueueToCurrentQueue(CreateElement("a"), - new TestReaction({new Log('a', log)})); + MakeGarbageCollected<TestReaction>(commands)); stack->PopInvokingReactions(); EXPECT_EQ(log, std::vector<char>({'a'})) @@ -34,10 +37,20 @@ TEST(CustomElementReactionStackTest, multipleElements) { CustomElementReactionStack* stack = new CustomElementReactionStack(); stack->Push(); - stack->EnqueueToCurrentQueue(CreateElement("a"), - new TestReaction({new Log('a', log)})); - stack->EnqueueToCurrentQueue(CreateElement("a"), - new TestReaction({new Log('b', log)})); + { + HeapVector<Member<Command>>* commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + commands->push_back(MakeGarbageCollected<Log>('a', log)); + stack->EnqueueToCurrentQueue(CreateElement("a"), + MakeGarbageCollected<TestReaction>(commands)); + } + { + HeapVector<Member<Command>>* commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + commands->push_back(MakeGarbageCollected<Log>('b', log)); + stack->EnqueueToCurrentQueue(CreateElement("a"), + MakeGarbageCollected<TestReaction>(commands)); + } stack->PopInvokingReactions(); EXPECT_EQ(log, std::vector<char>({'a', 'b'})) @@ -49,8 +62,11 @@ TEST(CustomElementReactionStackTest, popTopEmpty) { CustomElementReactionStack* stack = new CustomElementReactionStack(); stack->Push(); + HeapVector<Member<Command>>* commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + commands->push_back(MakeGarbageCollected<Log>('a', log)); stack->EnqueueToCurrentQueue(CreateElement("a"), - new TestReaction({new Log('a', log)})); + MakeGarbageCollected<TestReaction>(commands)); stack->Push(); stack->PopInvokingReactions(); @@ -63,11 +79,21 @@ TEST(CustomElementReactionStackTest, popTop) { CustomElementReactionStack* stack = new CustomElementReactionStack(); stack->Push(); - stack->EnqueueToCurrentQueue(CreateElement("a"), - new TestReaction({new Log('a', log)})); + { + HeapVector<Member<Command>>* commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + commands->push_back(MakeGarbageCollected<Log>('a', log)); + stack->EnqueueToCurrentQueue(CreateElement("a"), + MakeGarbageCollected<TestReaction>(commands)); + } stack->Push(); - stack->EnqueueToCurrentQueue(CreateElement("a"), - new TestReaction({new Log('b', log)})); + { + HeapVector<Member<Command>>* commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + commands->push_back(MakeGarbageCollected<Log>('b', log)); + stack->EnqueueToCurrentQueue(CreateElement("a"), + MakeGarbageCollected<TestReaction>(commands)); + } stack->PopInvokingReactions(); EXPECT_EQ(log, std::vector<char>({'b'})) @@ -81,10 +107,27 @@ TEST(CustomElementReactionStackTest, requeueingDoesNotReorderElements) { CustomElementReactionStack* stack = new CustomElementReactionStack(); stack->Push(); - stack->EnqueueToCurrentQueue(element, new TestReaction({new Log('a', log)})); - stack->EnqueueToCurrentQueue(CreateElement("a"), - new TestReaction({new Log('z', log)})); - stack->EnqueueToCurrentQueue(element, new TestReaction({new Log('b', log)})); + { + HeapVector<Member<Command>>* commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + commands->push_back(MakeGarbageCollected<Log>('a', log)); + stack->EnqueueToCurrentQueue(element, + MakeGarbageCollected<TestReaction>(commands)); + } + { + HeapVector<Member<Command>>* commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + commands->push_back(MakeGarbageCollected<Log>('z', log)); + stack->EnqueueToCurrentQueue(CreateElement("a"), + MakeGarbageCollected<TestReaction>(commands)); + } + { + HeapVector<Member<Command>>* commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + commands->push_back(MakeGarbageCollected<Log>('b', log)); + stack->EnqueueToCurrentQueue(element, + MakeGarbageCollected<TestReaction>(commands)); + } stack->PopInvokingReactions(); EXPECT_EQ(log, std::vector<char>({'a', 'b', 'z'})) @@ -98,13 +141,35 @@ TEST(CustomElementReactionStackTest, oneReactionQueuePerElement) { CustomElementReactionStack* stack = new CustomElementReactionStack(); stack->Push(); - stack->EnqueueToCurrentQueue(element, new TestReaction({new Log('a', log)})); - stack->EnqueueToCurrentQueue(CreateElement("a"), - new TestReaction({new Log('z', log)})); + { + HeapVector<Member<Command>>* commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + commands->push_back(MakeGarbageCollected<Log>('a', log)); + stack->EnqueueToCurrentQueue(element, + MakeGarbageCollected<TestReaction>(commands)); + } + { + HeapVector<Member<Command>>* commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + commands->push_back(MakeGarbageCollected<Log>('z', log)); + stack->EnqueueToCurrentQueue(CreateElement("a"), + MakeGarbageCollected<TestReaction>(commands)); + } stack->Push(); - stack->EnqueueToCurrentQueue(CreateElement("a"), - new TestReaction({new Log('y', log)})); - stack->EnqueueToCurrentQueue(element, new TestReaction({new Log('b', log)})); + { + HeapVector<Member<Command>>* commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + commands->push_back(MakeGarbageCollected<Log>('y', log)); + stack->EnqueueToCurrentQueue(CreateElement("a"), + MakeGarbageCollected<TestReaction>(commands)); + } + { + HeapVector<Member<Command>>* commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + commands->push_back(MakeGarbageCollected<Log>('b', log)); + stack->EnqueueToCurrentQueue(element, + MakeGarbageCollected<TestReaction>(commands)); + } stack->PopInvokingReactions(); EXPECT_EQ(log, std::vector<char>({'y', 'a', 'b'})) @@ -147,9 +212,17 @@ TEST(CustomElementReactionStackTest, enqueueFromReaction) { CustomElementReactionStack* stack = new CustomElementReactionStack(); stack->Push(); - stack->EnqueueToCurrentQueue( - element, new TestReaction({new EnqueueToStack( - stack, element, new TestReaction({new Log('a', log)}))})); + { + HeapVector<Member<Command>>* subcommands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + subcommands->push_back(MakeGarbageCollected<Log>('a', log)); + HeapVector<Member<Command>>* commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + commands->push_back(MakeGarbageCollected<EnqueueToStack>( + stack, element, MakeGarbageCollected<TestReaction>(subcommands))); + stack->EnqueueToCurrentQueue(element, + MakeGarbageCollected<TestReaction>(commands)); + } stack->PopInvokingReactions(); EXPECT_EQ(log, std::vector<char>({'a'})) << "enqueued reaction from another " |