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

Side by Side Diff: ui/aura/window_event_dispatcher_unittest.cc

Issue 157003005: Replace std::map with base::SmallMap in ui::LatencyInfo (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years, 9 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 | « ipc/ipc_message_utils.h ('k') | ui/events/latency_info.h » ('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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/aura/window_event_dispatcher.h" 5 #include "ui/aura/window_event_dispatcher.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 1604 matching lines...) Expand 10 before | Expand all | Expand 10 after
1615 virtual ~WindowEventDispatcherTestWithMessageLoop() {} 1615 virtual ~WindowEventDispatcherTestWithMessageLoop() {}
1616 1616
1617 void RunTest() { 1617 void RunTest() {
1618 // Reset any event the window may have received when bringing up the window 1618 // Reset any event the window may have received when bringing up the window
1619 // (e.g. mouse-move events if the mouse cursor is over the window). 1619 // (e.g. mouse-move events if the mouse cursor is over the window).
1620 handler_.Reset(); 1620 handler_.Reset();
1621 1621
1622 // Start a nested message-loop, post an event to be dispatched, and then 1622 // Start a nested message-loop, post an event to be dispatched, and then
1623 // terminate the message-loop. When the message-loop unwinds and gets back, 1623 // terminate the message-loop. When the message-loop unwinds and gets back,
1624 // the reposted event should not have fired. 1624 // the reposted event should not have fired.
1625 ui::MouseEvent mouse(ui::ET_MOUSE_PRESSED, gfx::Point(10, 10), 1625 scoped_ptr<ui::MouseEvent> mouse(new ui::MouseEvent(ui::ET_MOUSE_PRESSED,
1626 gfx::Point(10, 10), ui::EF_NONE, ui::EF_NONE); 1626 gfx::Point(10, 10),
1627 message_loop()->PostTask(FROM_HERE, 1627 gfx::Point(10, 10),
1628 base::Bind(&WindowEventDispatcher::RepostEvent, 1628 ui::EF_NONE,
1629 base::Unretained(host()->dispatcher()), 1629 ui::EF_NONE));
1630 mouse)); 1630 message_loop()->PostTask(
1631 message_loop()->PostTask(FROM_HERE, 1631 FROM_HERE,
1632 message_loop()->QuitClosure()); 1632 base::Bind(&WindowEventDispatcherTestWithMessageLoop::RepostEventHelper,
1633 host()->dispatcher(),
1634 base::Passed(&mouse)));
1635 message_loop()->PostTask(FROM_HERE, message_loop()->QuitClosure());
1633 1636
1634 base::MessageLoop::ScopedNestableTaskAllower allow(message_loop()); 1637 base::MessageLoop::ScopedNestableTaskAllower allow(message_loop());
1635 base::RunLoop loop; 1638 base::RunLoop loop;
1636 loop.Run(); 1639 loop.Run();
1637 EXPECT_EQ(0, handler_.num_mouse_events()); 1640 EXPECT_EQ(0, handler_.num_mouse_events());
1638 1641
1639 // Let the current message-loop run. The event-handler will terminate the 1642 // Let the current message-loop run. The event-handler will terminate the
1640 // message-loop when it receives the reposted event. 1643 // message-loop when it receives the reposted event.
1641 } 1644 }
1642 1645
1643 base::MessageLoop* message_loop() { 1646 base::MessageLoop* message_loop() {
1644 return base::MessageLoopForUI::current(); 1647 return base::MessageLoopForUI::current();
1645 } 1648 }
1646 1649
1647 protected: 1650 protected:
1648 virtual void SetUp() OVERRIDE { 1651 virtual void SetUp() OVERRIDE {
1649 WindowEventDispatcherTest::SetUp(); 1652 WindowEventDispatcherTest::SetUp();
1650 window_.reset(CreateNormalWindow(1, root_window(), NULL)); 1653 window_.reset(CreateNormalWindow(1, root_window(), NULL));
1651 window_->AddPreTargetHandler(&handler_); 1654 window_->AddPreTargetHandler(&handler_);
1652 } 1655 }
1653 1656
1654 virtual void TearDown() OVERRIDE { 1657 virtual void TearDown() OVERRIDE {
1655 window_.reset(); 1658 window_.reset();
1656 WindowEventDispatcherTest::TearDown(); 1659 WindowEventDispatcherTest::TearDown();
1657 } 1660 }
1658 1661
1659 private: 1662 private:
1663 // Used to avoid a copying |event| when binding to a closure.
1664 static void RepostEventHelper(WindowEventDispatcher* dispatcher,
1665 scoped_ptr<ui::MouseEvent> event) {
1666 dispatcher->RepostEvent(*event);
1667 }
1668
1660 scoped_ptr<Window> window_; 1669 scoped_ptr<Window> window_;
1661 ExitMessageLoopOnMousePress handler_; 1670 ExitMessageLoopOnMousePress handler_;
1662 1671
1663 DISALLOW_COPY_AND_ASSIGN(WindowEventDispatcherTestWithMessageLoop); 1672 DISALLOW_COPY_AND_ASSIGN(WindowEventDispatcherTestWithMessageLoop);
1664 }; 1673 };
1665 1674
1666 TEST_F(WindowEventDispatcherTestWithMessageLoop, EventRepostedInNonNestedLoop) { 1675 TEST_F(WindowEventDispatcherTestWithMessageLoop, EventRepostedInNonNestedLoop) {
1667 CHECK(!message_loop()->is_running()); 1676 CHECK(!message_loop()->is_running());
1668 // Perform the test in a callback, so that it runs after the message-loop 1677 // Perform the test in a callback, so that it runs after the message-loop
1669 // starts. 1678 // starts.
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
1937 EXPECT_TRUE(details.target_destroyed); 1946 EXPECT_TRUE(details.target_destroyed);
1938 EXPECT_EQ(first.get(), move.target()); 1947 EXPECT_EQ(first.get(), move.target());
1939 EXPECT_TRUE(dispatch_event.dispatched()); 1948 EXPECT_TRUE(dispatch_event.dispatched());
1940 EXPECT_EQ(second_root, first->GetRootWindow()); 1949 EXPECT_EQ(second_root, first->GetRootWindow());
1941 1950
1942 first->RemovePreTargetHandler(&dispatch_event); 1951 first->RemovePreTargetHandler(&dispatch_event);
1943 second->RemovePreTargetHandler(&move_window); 1952 second->RemovePreTargetHandler(&move_window);
1944 } 1953 }
1945 1954
1946 } // namespace aura 1955 } // namespace aura
OLDNEW
« no previous file with comments | « ipc/ipc_message_utils.h ('k') | ui/events/latency_info.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698