1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
// Copyright 2023 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/quick_insert/views/quick_insert_contents_view.h"
#include "ash/quick_insert/views/quick_insert_style.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/views/test/views_test_base.h"
#include "ui/views/widget/widget.h"
namespace ash {
namespace {
using ::testing::AllOf;
using ::testing::ElementsAre;
using ::testing::IsEmpty;
using ::testing::Pointee;
using ::testing::Property;
using QuickInsertContentsViewTest = views::ViewsTestBase;
TEST_F(QuickInsertContentsViewTest, DefaultHasNoChildren) {
std::unique_ptr<views::Widget> widget =
CreateTestWidget(views::Widget::InitParams::CLIENT_OWNS_WIDGET);
auto* view =
widget->SetContentsView(std::make_unique<QuickInsertContentsView>(
QuickInsertLayoutType::kMainResultsBelowSearchField));
EXPECT_THAT(view->page_container_for_testing()->children(), IsEmpty());
}
TEST_F(QuickInsertContentsViewTest, AddPageFirstChildIsVisible) {
std::unique_ptr<views::Widget> widget =
CreateTestWidget(views::Widget::InitParams::CLIENT_OWNS_WIDGET);
auto* view =
widget->SetContentsView(std::make_unique<QuickInsertContentsView>(
QuickInsertLayoutType::kMainResultsBelowSearchField));
auto* page1 = view->AddPage(std::make_unique<views::View>());
auto* page2 = view->AddPage(std::make_unique<views::View>());
EXPECT_THAT(
view->page_container_for_testing()->children(),
ElementsAre(
AllOf(page1, Pointee(Property(&views::View::GetVisible, true))),
AllOf(page2, Pointee(Property(&views::View::GetVisible, false)))));
}
TEST_F(QuickInsertContentsViewTest, SetActivePageChangesVisibility) {
std::unique_ptr<views::Widget> widget =
CreateTestWidget(views::Widget::InitParams::CLIENT_OWNS_WIDGET);
auto* view =
widget->SetContentsView(std::make_unique<QuickInsertContentsView>(
QuickInsertLayoutType::kMainResultsBelowSearchField));
auto* page1 = view->AddPage(std::make_unique<views::View>());
auto* page2 = view->AddPage(std::make_unique<views::View>());
view->SetActivePage(page1);
EXPECT_THAT(
view->page_container_for_testing()->children(),
ElementsAre(
AllOf(page1, Pointee(Property(&views::View::GetVisible, true))),
AllOf(page2, Pointee(Property(&views::View::GetVisible, false)))));
view->SetActivePage(page2);
EXPECT_THAT(
view->page_container_for_testing()->children(),
ElementsAre(
AllOf(page1, Pointee(Property(&views::View::GetVisible, false))),
AllOf(page2, Pointee(Property(&views::View::GetVisible, true)))));
}
} // namespace
} // namespace ash
|