diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/core/html/custom/custom_element_reaction_queue_test.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/core/html/custom/custom_element_reaction_queue_test.cc | 78 |
1 files changed, 61 insertions, 17 deletions
diff --git a/chromium/third_party/blink/renderer/core/html/custom/custom_element_reaction_queue_test.cc b/chromium/third_party/blink/renderer/core/html/custom/custom_element_reaction_queue_test.cc index af1de9ce0da..651efd1e45e 100644 --- a/chromium/third_party/blink/renderer/core/html/custom/custom_element_reaction_queue_test.cc +++ b/chromium/third_party/blink/renderer/core/html/custom/custom_element_reaction_queue_test.cc @@ -17,7 +17,10 @@ namespace blink { TEST(CustomElementReactionQueueTest, invokeReactions_one) { std::vector<char> log; CustomElementReactionQueue* queue = new CustomElementReactionQueue(); - queue->Add(new TestReaction({new Log('a', log)})); + HeapVector<Member<Command>>* commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + commands->push_back(MakeGarbageCollected<Log>('a', log)); + queue->Add(MakeGarbageCollected<TestReaction>(commands)); queue->InvokeReactions(nullptr); EXPECT_EQ(log, std::vector<char>({'a'})) << "the reaction should have been invoked"; @@ -26,9 +29,24 @@ TEST(CustomElementReactionQueueTest, invokeReactions_one) { TEST(CustomElementReactionQueueTest, invokeReactions_many) { std::vector<char> log; CustomElementReactionQueue* queue = new CustomElementReactionQueue(); - queue->Add(new TestReaction({new Log('a', log)})); - queue->Add(new TestReaction({new Log('b', log)})); - queue->Add(new TestReaction({new Log('c', log)})); + { + HeapVector<Member<Command>>* commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + commands->push_back(MakeGarbageCollected<Log>('a', log)); + queue->Add(MakeGarbageCollected<TestReaction>(commands)); + } + { + HeapVector<Member<Command>>* commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + commands->push_back(MakeGarbageCollected<Log>('b', log)); + queue->Add(MakeGarbageCollected<TestReaction>(commands)); + } + { + HeapVector<Member<Command>>* commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + commands->push_back(MakeGarbageCollected<Log>('c', log)); + queue->Add(MakeGarbageCollected<TestReaction>(commands)); + } queue->InvokeReactions(nullptr); EXPECT_EQ(log, std::vector<char>({'a', 'b', 'c'})) << "the reaction should have been invoked"; @@ -38,16 +56,27 @@ TEST(CustomElementReactionQueueTest, invokeReactions_recursive) { std::vector<char> log; CustomElementReactionQueue* queue = new CustomElementReactionQueue(); - CustomElementReaction* third = new TestReaction( - {new Log('c', log), new Recurse(queue)}); // "Empty" recursion + HeapVector<Member<Command>>* third_commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + third_commands->push_back(MakeGarbageCollected<Log>('c', log)); + third_commands->push_back(MakeGarbageCollected<Recurse>(queue)); + CustomElementReaction* third = + MakeGarbageCollected<TestReaction>(third_commands); // "Empty" recursion - CustomElementReaction* second = new TestReaction( - {new Log('b', log), - new Enqueue(queue, third)}); // Unwinds one level of recursion + HeapVector<Member<Command>>* second_commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + second_commands->push_back(MakeGarbageCollected<Log>('b', log)); + second_commands->push_back(MakeGarbageCollected<Enqueue>(queue, third)); + CustomElementReaction* second = MakeGarbageCollected<TestReaction>( + second_commands); // Unwinds one level of recursion - CustomElementReaction* first = - new TestReaction({new Log('a', log), new Enqueue(queue, second), - new Recurse(queue)}); // Non-empty recursion + HeapVector<Member<Command>>* first_commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + first_commands->push_back(MakeGarbageCollected<Log>('a', log)); + first_commands->push_back(MakeGarbageCollected<Enqueue>(queue, second)); + first_commands->push_back(MakeGarbageCollected<Recurse>(queue)); + CustomElementReaction* first = MakeGarbageCollected<TestReaction>( + first_commands); // Non-empty recursion queue->Add(first); queue->InvokeReactions(nullptr); @@ -59,11 +88,26 @@ TEST(CustomElementReactionQueueTest, clear_duringInvoke) { std::vector<char> log; CustomElementReactionQueue* queue = new CustomElementReactionQueue(); - queue->Add(new TestReaction({new Log('a', log)})); - queue->Add(new TestReaction({new Call(WTF::Bind( - [](CustomElementReactionQueue* queue, Element*) { queue->Clear(); }, - WrapPersistent(queue)))})); - queue->Add(new TestReaction({new Log('b', log)})); + { + HeapVector<Member<Command>>* commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + commands->push_back(MakeGarbageCollected<Log>('a', log)); + queue->Add(MakeGarbageCollected<TestReaction>(commands)); + } + { + HeapVector<Member<Command>>* commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + commands->push_back(new Call(WTF::Bind( + [](CustomElementReactionQueue* queue, Element*) { queue->Clear(); }, + WrapPersistent(queue)))); + queue->Add(MakeGarbageCollected<TestReaction>(commands)); + } + { + HeapVector<Member<Command>>* commands = + MakeGarbageCollected<HeapVector<Member<Command>>>(); + commands->push_back(MakeGarbageCollected<Log>('b', log)); + queue->Add(MakeGarbageCollected<TestReaction>(commands)); + } queue->InvokeReactions(nullptr); EXPECT_EQ(log, std::vector<char>({'a'})) |