123b3eb3cSopenharmony_ci/*
223b3eb3cSopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd.
323b3eb3cSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
423b3eb3cSopenharmony_ci * you may not use this file except in compliance with the License.
523b3eb3cSopenharmony_ci * You may obtain a copy of the License at
623b3eb3cSopenharmony_ci *
723b3eb3cSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
823b3eb3cSopenharmony_ci *
923b3eb3cSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1023b3eb3cSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1123b3eb3cSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1223b3eb3cSopenharmony_ci * See the License for the specific language governing permissions and
1323b3eb3cSopenharmony_ci * limitations under the License.
1423b3eb3cSopenharmony_ci */
1523b3eb3cSopenharmony_ci
1623b3eb3cSopenharmony_ci#include "gtest/gtest.h"
1723b3eb3cSopenharmony_ci
1823b3eb3cSopenharmony_ci#include "interfaces/inner_api/ace/navigation_controller.h"
1923b3eb3cSopenharmony_ci
2023b3eb3cSopenharmony_ciusing namespace testing;
2123b3eb3cSopenharmony_ciusing namespace testing::ext;
2223b3eb3cSopenharmony_ci
2323b3eb3cSopenharmony_cinamespace OHOS::Ace {
2423b3eb3cSopenharmony_cinamespace {
2523b3eb3cSopenharmony_ciconstexpr int32_t VALUE = 0;
2623b3eb3cSopenharmony_ci} // namespace
2723b3eb3cSopenharmony_ci
2823b3eb3cSopenharmony_ciclass NavigationControllerTest : public testing::Test {
2923b3eb3cSopenharmony_cipublic:
3023b3eb3cSopenharmony_ci    static void SetUpTestCase() {}
3123b3eb3cSopenharmony_ci    static void TearDownTestCase() {}
3223b3eb3cSopenharmony_ci    void SetUp() {}
3323b3eb3cSopenharmony_ci    void TearDown() {}
3423b3eb3cSopenharmony_ci};
3523b3eb3cSopenharmony_ci
3623b3eb3cSopenharmony_ci/**
3723b3eb3cSopenharmony_ci * @tc.name: NavigationController001
3823b3eb3cSopenharmony_ci * @tc.desc: Test IsNavDestinationInTopStack function.
3923b3eb3cSopenharmony_ci * @tc.type: FUNC
4023b3eb3cSopenharmony_ci */
4123b3eb3cSopenharmony_ciHWTEST_F(NavigationControllerTest, NavigationController001, TestSize.Level1)
4223b3eb3cSopenharmony_ci{
4323b3eb3cSopenharmony_ci    std::shared_ptr<NavigationController> navigationController = std::make_shared<NavigationController>();
4423b3eb3cSopenharmony_ci    ASSERT_NE(navigationController, nullptr);
4523b3eb3cSopenharmony_ci    EXPECT_EQ(navigationController->IsNavDestinationInTopStack(), false);
4623b3eb3cSopenharmony_ci}
4723b3eb3cSopenharmony_ci
4823b3eb3cSopenharmony_ci/**
4923b3eb3cSopenharmony_ci * @tc.name: NavigationController002
5023b3eb3cSopenharmony_ci * @tc.desc: Test GetTopHandle function.
5123b3eb3cSopenharmony_ci * @tc.type: FUNC
5223b3eb3cSopenharmony_ci */
5323b3eb3cSopenharmony_ciHWTEST_F(NavigationControllerTest, NavigationController002, TestSize.Level1)
5423b3eb3cSopenharmony_ci{
5523b3eb3cSopenharmony_ci    std::shared_ptr<NavigationController> navigationController = std::make_shared<NavigationController>();
5623b3eb3cSopenharmony_ci    ASSERT_NE(navigationController, nullptr);
5723b3eb3cSopenharmony_ci    EXPECT_EQ(navigationController->GetTopHandle(), VALUE);
5823b3eb3cSopenharmony_ci}
5923b3eb3cSopenharmony_ci
6023b3eb3cSopenharmony_ci/**
6123b3eb3cSopenharmony_ci * @tc.name: NavigationController003
6223b3eb3cSopenharmony_ci * @tc.desc: Test SetInPIPMode function.
6323b3eb3cSopenharmony_ci * @tc.type: FUNC
6423b3eb3cSopenharmony_ci */
6523b3eb3cSopenharmony_ciHWTEST_F(NavigationControllerTest, NavigationController003, TestSize.Level1)
6623b3eb3cSopenharmony_ci{
6723b3eb3cSopenharmony_ci    std::shared_ptr<NavigationController> navigationController = std::make_shared<NavigationController>();
6823b3eb3cSopenharmony_ci    ASSERT_NE(navigationController, nullptr);
6923b3eb3cSopenharmony_ci    int32_t handle = 1;
7023b3eb3cSopenharmony_ci    navigationController->SetInPIPMode(handle);
7123b3eb3cSopenharmony_ci}
7223b3eb3cSopenharmony_ci
7323b3eb3cSopenharmony_ci/**
7423b3eb3cSopenharmony_ci * @tc.name: NavigationController004
7523b3eb3cSopenharmony_ci * @tc.desc: Test PopInPIP function.
7623b3eb3cSopenharmony_ci * @tc.type: FUNC
7723b3eb3cSopenharmony_ci */
7823b3eb3cSopenharmony_ciHWTEST_F(NavigationControllerTest, NavigationController004, TestSize.Level1)
7923b3eb3cSopenharmony_ci{
8023b3eb3cSopenharmony_ci    std::shared_ptr<NavigationController> navigationController = std::make_shared<NavigationController>();
8123b3eb3cSopenharmony_ci    ASSERT_NE(navigationController, nullptr);
8223b3eb3cSopenharmony_ci    bool destroy = true;
8323b3eb3cSopenharmony_ci    navigationController->PopInPIP(destroy);
8423b3eb3cSopenharmony_ci}
8523b3eb3cSopenharmony_ci
8623b3eb3cSopenharmony_ci/**
8723b3eb3cSopenharmony_ci * @tc.name: NavigationController005
8823b3eb3cSopenharmony_ci * @tc.desc: Test PushInPIP function.
8923b3eb3cSopenharmony_ci * @tc.type: FUNC
9023b3eb3cSopenharmony_ci */
9123b3eb3cSopenharmony_ciHWTEST_F(NavigationControllerTest, NavigationController005, TestSize.Level1)
9223b3eb3cSopenharmony_ci{
9323b3eb3cSopenharmony_ci    std::shared_ptr<NavigationController> navigationController = std::make_shared<NavigationController>();
9423b3eb3cSopenharmony_ci    ASSERT_NE(navigationController, nullptr);
9523b3eb3cSopenharmony_ci    int32_t handle = 1;
9623b3eb3cSopenharmony_ci    navigationController->PushInPIP(handle);
9723b3eb3cSopenharmony_ci}
9823b3eb3cSopenharmony_ci
9923b3eb3cSopenharmony_ci/**
10023b3eb3cSopenharmony_ci * @tc.name: NavigationController006
10123b3eb3cSopenharmony_ci * @tc.desc: Test DeletePIPMode function.
10223b3eb3cSopenharmony_ci * @tc.type: FUNC
10323b3eb3cSopenharmony_ci */
10423b3eb3cSopenharmony_ciHWTEST_F(NavigationControllerTest, NavigationController006, TestSize.Level1)
10523b3eb3cSopenharmony_ci{
10623b3eb3cSopenharmony_ci    std::shared_ptr<NavigationController> navigationController = std::make_shared<NavigationController>();
10723b3eb3cSopenharmony_ci    ASSERT_NE(navigationController, nullptr);
10823b3eb3cSopenharmony_ci    int32_t handle = 1;
10923b3eb3cSopenharmony_ci    navigationController->DeletePIPMode(handle);
11023b3eb3cSopenharmony_ci}
11123b3eb3cSopenharmony_ci} // namespace OHOS::Ace