summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/html/custom/custom_element_reaction_stack_test.cc
diff options
context:
space:
mode:
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.cc119
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 "