Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(117)

Side by Side Diff: ui/events/platform/platform_event_source_unittest.cc

Issue 2211473003: Remove calls to deprecated MessageLoop methods on Windows and Linux. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/base/x/selection_requestor_unittest.cc ('k') | ui/gl/gl_surface_glx.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "ui/events/platform/platform_event_source.h" 5 #include "ui/events/platform/platform_event_source.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 } 493 }
494 494
495 // Provides mechanism for running tests from inside an active message-loop. 495 // Provides mechanism for running tests from inside an active message-loop.
496 class PlatformEventTestWithMessageLoop : public PlatformEventTest { 496 class PlatformEventTestWithMessageLoop : public PlatformEventTest {
497 public: 497 public:
498 PlatformEventTestWithMessageLoop() {} 498 PlatformEventTestWithMessageLoop() {}
499 ~PlatformEventTestWithMessageLoop() override {} 499 ~PlatformEventTestWithMessageLoop() override {}
500 500
501 void Run() { 501 void Run() {
502 message_loop_.task_runner()->PostTask( 502 message_loop_.task_runner()->PostTask(
503 FROM_HERE, base::Bind(&PlatformEventTestWithMessageLoop::RunTest, 503 FROM_HERE, base::Bind(&PlatformEventTestWithMessageLoop::RunTestImpl,
504 base::Unretained(this))); 504 base::Unretained(this)));
505 message_loop_.Run(); 505 base::RunLoop().RunUntilIdle();
506 } 506 }
507 507
508 protected: 508 protected:
509 void RunTest() {
510 RunTestImpl();
511 message_loop_.QuitWhenIdle();
512 }
513
514 virtual void RunTestImpl() = 0; 509 virtual void RunTestImpl() = 0;
515 510
516 private: 511 private:
517 base::MessageLoopForUI message_loop_; 512 base::MessageLoopForUI message_loop_;
518 513
519 DISALLOW_COPY_AND_ASSIGN(PlatformEventTestWithMessageLoop); 514 DISALLOW_COPY_AND_ASSIGN(PlatformEventTestWithMessageLoop);
520 }; 515 };
521 516
522 #define RUN_TEST_IN_MESSAGE_LOOP(name) \ 517 #define RUN_TEST_IN_MESSAGE_LOOP(name) \
523 TEST_F(name, Run) { Run(); } 518 TEST_F(name, Run) { Run(); }
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
624 ASSERT_LT(count, events.size()); 619 ASSERT_LT(count, events.size());
625 events.erase(events.begin(), events.begin() + count); 620 events.erase(events.begin(), events.begin() + count);
626 621
627 count = source()->DispatchEventStream(events); 622 count = source()->DispatchEventStream(events);
628 EXPECT_EQ(1u, count); 623 EXPECT_EQ(1u, count);
629 ASSERT_EQ(2u, list->size()); 624 ASSERT_EQ(2u, list->size());
630 EXPECT_EQ(15, (*list)[0]); 625 EXPECT_EQ(15, (*list)[0]);
631 EXPECT_EQ(10, (*list)[1]); 626 EXPECT_EQ(10, (*list)[1]);
632 list->clear(); 627 list->clear();
633 628
634 // Terminate the message-loop. 629 // Terminate the run loop.
635 base::MessageLoopForUI::current()->QuitNow(); 630 run_loop_.Quit();
636 } 631 }
637 632
638 // PlatformEventTestWithMessageLoop: 633 // PlatformEventTestWithMessageLoop:
639 void RunTestImpl() override { 634 void RunTestImpl() override {
640 std::vector<int> list; 635 std::vector<int> list;
641 TestPlatformEventDispatcher dispatcher(10, &list); 636 TestPlatformEventDispatcher dispatcher(10, &list);
642 TestPlatformEventObserver observer(15, &list); 637 TestPlatformEventObserver observer(15, &list);
643 638
644 DestroyScopedHandleDispatcher overriding(20, &list); 639 DestroyScopedHandleDispatcher overriding(20, &list);
645 source()->RemovePlatformEventDispatcher(&overriding); 640 source()->RemovePlatformEventDispatcher(&overriding);
646 std::unique_ptr<ScopedEventDispatcher> override_handle = 641 std::unique_ptr<ScopedEventDispatcher> override_handle =
647 source()->OverrideDispatcher(&overriding); 642 source()->OverrideDispatcher(&overriding);
648 643
649 std::unique_ptr<PlatformEvent> event(CreatePlatformEvent()); 644 std::unique_ptr<PlatformEvent> event(CreatePlatformEvent());
650 source()->Dispatch(*event); 645 source()->Dispatch(*event);
651 ASSERT_EQ(2u, list.size()); 646 ASSERT_EQ(2u, list.size());
652 EXPECT_EQ(15, list[0]); 647 EXPECT_EQ(15, list[0]);
653 EXPECT_EQ(20, list[1]); 648 EXPECT_EQ(20, list[1]);
654 list.clear(); 649 list.clear();
655 650
656 overriding.SetScopedHandle(std::move(override_handle)); 651 overriding.SetScopedHandle(std::move(override_handle));
657 base::RunLoop run_loop;
658 base::MessageLoopForUI* loop = base::MessageLoopForUI::current(); 652 base::MessageLoopForUI* loop = base::MessageLoopForUI::current();
659 base::MessageLoopForUI::ScopedNestableTaskAllower allow_nested(loop); 653 base::MessageLoopForUI::ScopedNestableTaskAllower allow_nested(loop);
660 loop->task_runner()->PostTask( 654 loop->task_runner()->PostTask(
661 FROM_HERE, 655 FROM_HERE,
662 base::Bind( 656 base::Bind(
663 &DestroyedNestedOverriddenDispatcherQuitsNestedLoopIteration:: 657 &DestroyedNestedOverriddenDispatcherQuitsNestedLoopIteration::
664 NestedTask, 658 NestedTask,
665 base::Unretained(this), base::Unretained(&list), 659 base::Unretained(this), base::Unretained(&list),
666 base::Unretained(&overriding))); 660 base::Unretained(&overriding)));
667 run_loop.Run(); 661 run_loop_.Run();
668 662
669 // Dispatching the event should now reach the default dispatcher. 663 // Dispatching the event should now reach the default dispatcher.
670 source()->Dispatch(*event); 664 source()->Dispatch(*event);
671 ASSERT_EQ(2u, list.size()); 665 ASSERT_EQ(2u, list.size());
672 EXPECT_EQ(15, list[0]); 666 EXPECT_EQ(15, list[0]);
673 EXPECT_EQ(10, list[1]); 667 EXPECT_EQ(10, list[1]);
674 } 668 }
669
670 private:
671 base::RunLoop run_loop_;
675 }; 672 };
676 673
677 RUN_TEST_IN_MESSAGE_LOOP( 674 RUN_TEST_IN_MESSAGE_LOOP(
678 DestroyedNestedOverriddenDispatcherQuitsNestedLoopIteration) 675 DestroyedNestedOverriddenDispatcherQuitsNestedLoopIteration)
679 676
680 // Tests that resetting an overridden dispatcher, and installing another 677 // Tests that resetting an overridden dispatcher, and installing another
681 // overridden dispatcher before the nested message-loop completely unwinds 678 // overridden dispatcher before the nested message-loop completely unwinds
682 // function correctly. 679 // function correctly.
683 class ConsecutiveOverriddenDispatcherInTheSameMessageLoopIteration 680 class ConsecutiveOverriddenDispatcherInTheSameMessageLoopIteration
684 : public PlatformEventTestWithMessageLoop { 681 : public PlatformEventTestWithMessageLoop {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
723 FROM_HERE, 720 FROM_HERE,
724 base::Bind(base::IgnoreResult(&TestPlatformEventSource::Dispatch), 721 base::Bind(base::IgnoreResult(&TestPlatformEventSource::Dispatch),
725 base::Unretained(source()), *event)); 722 base::Unretained(source()), *event));
726 run_loop.Run(); 723 run_loop.Run();
727 ASSERT_EQ(2u, list->size()); 724 ASSERT_EQ(2u, list->size());
728 EXPECT_EQ(15, (*list)[0]); 725 EXPECT_EQ(15, (*list)[0]);
729 EXPECT_EQ(70, (*list)[1]); 726 EXPECT_EQ(70, (*list)[1]);
730 list->clear(); 727 list->clear();
731 728
732 // Terminate the message-loop. 729 // Terminate the message-loop.
733 base::MessageLoopForUI::current()->QuitNow(); 730 run_loop_.Quit();
734 } 731 }
735 732
736 // PlatformEventTestWithMessageLoop: 733 // PlatformEventTestWithMessageLoop:
737 void RunTestImpl() override { 734 void RunTestImpl() override {
738 std::vector<int> list; 735 std::vector<int> list;
739 TestPlatformEventDispatcher dispatcher(10, &list); 736 TestPlatformEventDispatcher dispatcher(10, &list);
740 TestPlatformEventObserver observer(15, &list); 737 TestPlatformEventObserver observer(15, &list);
741 738
742 TestPlatformEventDispatcher overriding(20, &list); 739 TestPlatformEventDispatcher overriding(20, &list);
743 source()->RemovePlatformEventDispatcher(&overriding); 740 source()->RemovePlatformEventDispatcher(&overriding);
744 std::unique_ptr<ScopedEventDispatcher> override_handle = 741 std::unique_ptr<ScopedEventDispatcher> override_handle =
745 source()->OverrideDispatcher(&overriding); 742 source()->OverrideDispatcher(&overriding);
746 743
747 std::unique_ptr<PlatformEvent> event(CreatePlatformEvent()); 744 std::unique_ptr<PlatformEvent> event(CreatePlatformEvent());
748 source()->Dispatch(*event); 745 source()->Dispatch(*event);
749 ASSERT_EQ(2u, list.size()); 746 ASSERT_EQ(2u, list.size());
750 EXPECT_EQ(15, list[0]); 747 EXPECT_EQ(15, list[0]);
751 EXPECT_EQ(20, list[1]); 748 EXPECT_EQ(20, list[1]);
752 list.clear(); 749 list.clear();
753 750
754 // Start a nested message-loop, and destroy |override_handle| in the nested 751 // Start a nested message-loop, and destroy |override_handle| in the nested
755 // loop. That should terminate the nested loop, restore the previous 752 // loop. That should terminate the nested loop, restore the previous
756 // dispatchers, and return control to this function. 753 // dispatchers, and return control to this function.
757 base::RunLoop run_loop;
758 base::MessageLoopForUI* loop = base::MessageLoopForUI::current(); 754 base::MessageLoopForUI* loop = base::MessageLoopForUI::current();
759 base::MessageLoopForUI::ScopedNestableTaskAllower allow_nested(loop); 755 base::MessageLoopForUI::ScopedNestableTaskAllower allow_nested(loop);
760 loop->task_runner()->PostTask( 756 loop->task_runner()->PostTask(
761 FROM_HERE, 757 FROM_HERE,
762 base::Bind( 758 base::Bind(
763 &ConsecutiveOverriddenDispatcherInTheSameMessageLoopIteration:: 759 &ConsecutiveOverriddenDispatcherInTheSameMessageLoopIteration::
764 NestedTask, 760 NestedTask,
765 base::Unretained(this), base::Passed(&override_handle), 761 base::Unretained(this), base::Passed(&override_handle),
766 base::Unretained(&list))); 762 base::Unretained(&list)));
767 run_loop.Run(); 763 run_loop_.Run();
768 764
769 // Dispatching the event should now reach the default dispatcher. 765 // Dispatching the event should now reach the default dispatcher.
770 source()->Dispatch(*event); 766 source()->Dispatch(*event);
771 ASSERT_EQ(2u, list.size()); 767 ASSERT_EQ(2u, list.size());
772 EXPECT_EQ(15, list[0]); 768 EXPECT_EQ(15, list[0]);
773 EXPECT_EQ(10, list[1]); 769 EXPECT_EQ(10, list[1]);
774 } 770 }
771
772 private:
773 base::RunLoop run_loop_;
775 }; 774 };
776 775
777 RUN_TEST_IN_MESSAGE_LOOP( 776 RUN_TEST_IN_MESSAGE_LOOP(
778 ConsecutiveOverriddenDispatcherInTheSameMessageLoopIteration) 777 ConsecutiveOverriddenDispatcherInTheSameMessageLoopIteration)
779 778
780 } // namespace ui 779 } // namespace ui
OLDNEW
« no previous file with comments | « ui/base/x/selection_requestor_unittest.cc ('k') | ui/gl/gl_surface_glx.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698