| // Copyright 2022 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "ash/drag_drop/tab_drag_drop_windows_hider.h" |
| |
| #include "ash/test/ash_test_base.h" |
| |
| namespace ash { |
| |
| class TabDragDropWindowsHiderTest : public AshTestBase { |
| public: |
| // AshTestBase: |
| void SetUp() override { |
| AshTestBase::SetUp(); |
| dummy_window_ = CreateToplevelTestWindow(); |
| } |
| |
| void TearDown() override { |
| dummy_window_.reset(); |
| AshTestBase::TearDown(); |
| } |
| |
| protected: |
| std::unique_ptr<aura::Window> dummy_window_; |
| }; |
| |
| // Test for crbug.com/1330038 . |
| TEST_F(TabDragDropWindowsHiderTest, WindowVisibilityChangedDuringDrag) { |
| std::unique_ptr<aura::Window> source_window = CreateToplevelTestWindow(); |
| |
| // Create a sub window and hide it. |
| std::unique_ptr<aura::Window> sub_window = CreateTestWindow(); |
| dummy_window_->AddChild(sub_window.get()); |
| sub_window->Hide(); |
| auto hider = std::make_unique<TabDragDropWindowsHider>(source_window.get()); |
| int size = hider->GetWindowVisibilityMapSizeForTesting(); |
| |
| // Show the sub window. Make sure the window observer list size remains the |
| // same. |
| sub_window->Show(); |
| EXPECT_EQ(size, hider->GetWindowVisibilityMapSizeForTesting()); |
| sub_window.reset(); |
| } |
| } // namespace ash |