diff options
Diffstat (limited to 'ash')
-rw-r--r-- | ash/test/ash_test_base.cc | 1 | ||||
-rw-r--r-- | ash/wm/overlay_event_filter.cc | 8 | ||||
-rw-r--r-- | ash/wm/partial_screenshot_view_unittest.cc | 2 | ||||
-rw-r--r-- | ash/wm/session_state_animator_impl.cc | 20 | ||||
-rw-r--r-- | ash/wm/window_manager_unittest.cc | 2 |
5 files changed, 22 insertions, 11 deletions
diff --git a/ash/test/ash_test_base.cc b/ash/test/ash_test_base.cc index 34d14a4..4cb0f80 100644 --- a/ash/test/ash_test_base.cc +++ b/ash/test/ash_test_base.cc @@ -160,6 +160,7 @@ void AshTestBase::SetUp() { void AshTestBase::TearDown() { teardown_called_ = true; + Shell::GetInstance()->OnAppTerminating(); // Flush the message loop to finish pending release tasks. RunAllPendingInMessageLoop(); diff --git a/ash/wm/overlay_event_filter.cc b/ash/wm/overlay_event_filter.cc index 2e1c998..03c4947 100644 --- a/ash/wm/overlay_event_filter.cc +++ b/ash/wm/overlay_event_filter.cc @@ -63,16 +63,18 @@ void OverlayEventFilter::Activate(Delegate* delegate) { void OverlayEventFilter::Deactivate(Delegate* delegate) { if (delegate_ == delegate) - delegate_ = NULL; + delegate_ = nullptr; } void OverlayEventFilter::Cancel() { - if (delegate_) + if (delegate_) { delegate_->Cancel(); + delegate_ = nullptr; + } } bool OverlayEventFilter::IsActive() { - return delegate_ != NULL; + return delegate_ != nullptr; } } // namespace ash diff --git a/ash/wm/partial_screenshot_view_unittest.cc b/ash/wm/partial_screenshot_view_unittest.cc index 6a31968..7ad5205 100644 --- a/ash/wm/partial_screenshot_view_unittest.cc +++ b/ash/wm/partial_screenshot_view_unittest.cc @@ -117,6 +117,8 @@ TEST_F(PartialScreenshotViewTest, DontStartOverOverlay) { RunAllPendingInMessageLoop(); EXPECT_EQ(&delegate, overlay_filter->delegate_); EXPECT_TRUE(view_ == NULL); + + overlay_filter->Deactivate(&delegate); } } // namespace ash diff --git a/ash/wm/session_state_animator_impl.cc b/ash/wm/session_state_animator_impl.cc index e606953..babe3cc 100644 --- a/ash/wm/session_state_animator_impl.cc +++ b/ash/wm/session_state_animator_impl.cc @@ -505,14 +505,13 @@ void SessionStateAnimatorImpl::GetContainers(int container_mask, // in such way. aura::Window* non_lock_screen_containers = Shell::GetContainer( root_window, kShellWindowId_NonLockScreenContainersContainer); - aura::Window::Windows children = non_lock_screen_containers->children(); - - for (aura::Window::Windows::const_iterator it = children.begin(); - it != children.end(); ++it) { - aura::Window* window = *it; - if (window->id() == kShellWindowId_ShelfContainer) - continue; - containers->push_back(window); + // |non_lock_screen_containers| may already be removed in some tests. + if (non_lock_screen_containers) { + for (aura::Window* window : non_lock_screen_containers->children()) { + if (window->id() == kShellWindowId_ShelfContainer) + continue; + containers->push_back(window); + } } } if (container_mask & LOCK_SCREEN_BACKGROUND) { @@ -527,6 +526,11 @@ void SessionStateAnimatorImpl::GetContainers(int container_mask, containers->push_back(Shell::GetContainer( root_window, kShellWindowId_LockScreenRelatedContainersContainer)); } + + // Some of containers may be null in some tests. + containers->erase( + std::remove(containers->begin(), containers->end(), nullptr), + containers->end()); } void SessionStateAnimatorImpl::StartAnimation(int container_mask, diff --git a/ash/wm/window_manager_unittest.cc b/ash/wm/window_manager_unittest.cc index 6a51a0f..61aaaf2 100644 --- a/ash/wm/window_manager_unittest.cc +++ b/ash/wm/window_manager_unittest.cc @@ -832,6 +832,8 @@ TEST_F(WindowManagerTest, TestCursorClientObserver) { EXPECT_TRUE(observer_a.did_visibility_change()); EXPECT_FALSE(observer_b.did_visibility_change()); EXPECT_TRUE(observer_a.is_cursor_visible()); + + cursor_manager->RemoveObserver(&observer_a); } #endif // defined(OS_CHROMEOS) |