Chromium Code Reviews| Index: ui/views/test/widget_test.cc |
| diff --git a/ui/views/test/widget_test.cc b/ui/views/test/widget_test.cc |
| index d67e951ce23eeba26abce4340ca8c3ce1216a796..e5c94cfc2fe5ba02de77cee47abe7e051d9582f3 100644 |
| --- a/ui/views/test/widget_test.cc |
| +++ b/ui/views/test/widget_test.cc |
| @@ -150,5 +150,33 @@ View* TestInitialFocusWidgetDelegate::GetInitiallyFocusedView() { |
| return view_; |
| } |
| +WidgetActivationWaiter::WidgetActivationWaiter(Widget* widget, bool active) |
| + : observed_(false), active_(active) { |
| + if (active == widget->IsActive()) { |
| + observed_ = true; |
| + return; |
| + } |
| + EXPECT_NE(active, widget->IsActive()); |
|
sky
2016/10/12 19:23:53
There is no point in this call now.
Qiang(Joe) Xu
2016/10/12 20:25:16
Done.
|
| + widget->AddObserver(this); |
| +} |
| + |
| +WidgetActivationWaiter::~WidgetActivationWaiter() {} |
| + |
| +void WidgetActivationWaiter::Wait() { |
| + if (!observed_) |
| + run_loop_.Run(); |
| +} |
| + |
| +void WidgetActivationWaiter::OnWidgetActivationChanged(Widget* widget, |
| + bool active) { |
| + if (active_ != active) |
| + return; |
| + |
| + observed_ = true; |
| + widget->RemoveObserver(this); |
| + if (run_loop_.running()) |
| + run_loop_.Quit(); |
| +} |
| + |
| } // namespace test |
| } // namespace views |