1e0dac50fSopenharmony_ci/* 2e0dac50fSopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3e0dac50fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4e0dac50fSopenharmony_ci * you may not use this file except in compliance with the License. 5e0dac50fSopenharmony_ci * You may obtain a copy of the License at 6e0dac50fSopenharmony_ci * 7e0dac50fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8e0dac50fSopenharmony_ci * 9e0dac50fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10e0dac50fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11e0dac50fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12e0dac50fSopenharmony_ci * See the License for the specific language governing permissions and 13e0dac50fSopenharmony_ci * limitations under the License. 14e0dac50fSopenharmony_ci */ 15e0dac50fSopenharmony_ci 16e0dac50fSopenharmony_ci#include <gtest/gtest.h> 17e0dac50fSopenharmony_ci#include "screen_group.h" 18e0dac50fSopenharmony_ci#include "screen_manager.h" 19e0dac50fSopenharmony_ci#include "screen_group_info.h" 20e0dac50fSopenharmony_ci#include "mock_display_manager_adapter.h" 21e0dac50fSopenharmony_ci#include "singleton_mocker.h" 22e0dac50fSopenharmony_ci 23e0dac50fSopenharmony_ciusing namespace testing; 24e0dac50fSopenharmony_ciusing namespace testing::ext; 25e0dac50fSopenharmony_ci 26e0dac50fSopenharmony_cinamespace OHOS { 27e0dac50fSopenharmony_cinamespace Rosen { 28e0dac50fSopenharmony_ciclass ScreenGroupTest : public testing::Test { 29e0dac50fSopenharmony_cipublic: 30e0dac50fSopenharmony_ci static void SetUpTestCase(); 31e0dac50fSopenharmony_ci static void TearDownTestCase(); 32e0dac50fSopenharmony_ci void SetUp() override; 33e0dac50fSopenharmony_ci void TearDown() override; 34e0dac50fSopenharmony_ci sptr<ScreenGroup> group_; 35e0dac50fSopenharmony_ci}; 36e0dac50fSopenharmony_ci 37e0dac50fSopenharmony_ci 38e0dac50fSopenharmony_civoid ScreenGroupTest::SetUpTestCase() 39e0dac50fSopenharmony_ci{ 40e0dac50fSopenharmony_ci} 41e0dac50fSopenharmony_ci 42e0dac50fSopenharmony_civoid ScreenGroupTest::TearDownTestCase() 43e0dac50fSopenharmony_ci{ 44e0dac50fSopenharmony_ci} 45e0dac50fSopenharmony_ci 46e0dac50fSopenharmony_civoid ScreenGroupTest::SetUp() 47e0dac50fSopenharmony_ci{ 48e0dac50fSopenharmony_ci group_ = ScreenManager::GetInstance().GetScreenGroup(0); 49e0dac50fSopenharmony_ci} 50e0dac50fSopenharmony_ci 51e0dac50fSopenharmony_civoid ScreenGroupTest::TearDown() 52e0dac50fSopenharmony_ci{ 53e0dac50fSopenharmony_ci} 54e0dac50fSopenharmony_ci 55e0dac50fSopenharmony_cinamespace { 56e0dac50fSopenharmony_ci/** 57e0dac50fSopenharmony_ci * @tc.name: UpdateScreenGroupInfo02 58e0dac50fSopenharmony_ci * @tc.desc: test InterfaceToken check failed 59e0dac50fSopenharmony_ci * @tc.type: FUNC 60e0dac50fSopenharmony_ci */ 61e0dac50fSopenharmony_ciHWTEST_F(ScreenGroupTest, UpdateScreenGroupInfo02, Function | SmallTest | Level2) 62e0dac50fSopenharmony_ci{ 63e0dac50fSopenharmony_ci sptr<ScreenGroupInfo> screenGroupInfo = new(std::nothrow) ScreenGroupInfo(); 64e0dac50fSopenharmony_ci sptr<ScreenGroup> screenGroup = new ScreenGroup(screenGroupInfo); 65e0dac50fSopenharmony_ci SingletonMocker<ScreenManagerAdapter, MockScreenManagerAdapter> m; 66e0dac50fSopenharmony_ci EXPECT_CALL(m.Mock(), GetScreenGroupInfoById(_)).Times(1).WillOnce(Return(nullptr)); 67e0dac50fSopenharmony_ci ScreenCombination comb = screenGroup->GetCombination(); 68e0dac50fSopenharmony_ci ASSERT_EQ(ScreenCombination::SCREEN_ALONE, comb); 69e0dac50fSopenharmony_ci} 70e0dac50fSopenharmony_ci 71e0dac50fSopenharmony_ci/** 72e0dac50fSopenharmony_ci * @tc.name: UpdateScreenGroupInfo01 73e0dac50fSopenharmony_ci * @tc.desc: test InterfaceToken check success 74e0dac50fSopenharmony_ci * @tc.type: FUNC 75e0dac50fSopenharmony_ci */ 76e0dac50fSopenharmony_ciHWTEST_F(ScreenGroupTest, UpdateScreenGroupInfo01, Function | SmallTest | Level2) 77e0dac50fSopenharmony_ci{ 78e0dac50fSopenharmony_ci sptr<ScreenGroupInfo> screenGroupInfo = new(std::nothrow) ScreenGroupInfo(); 79e0dac50fSopenharmony_ci sptr<ScreenGroup> screenGroup = new ScreenGroup(screenGroupInfo); 80e0dac50fSopenharmony_ci screenGroupInfo->combination_ = ScreenCombination::SCREEN_EXPAND; 81e0dac50fSopenharmony_ci SingletonMocker<ScreenManagerAdapter, MockScreenManagerAdapter> m; 82e0dac50fSopenharmony_ci EXPECT_CALL(m.Mock(), GetScreenGroupInfoById(_)).Times(1).WillOnce(Return(screenGroupInfo)); 83e0dac50fSopenharmony_ci ScreenCombination comb = screenGroup->GetCombination(); 84e0dac50fSopenharmony_ci ASSERT_EQ(ScreenCombination::SCREEN_EXPAND, comb); 85e0dac50fSopenharmony_ci} 86e0dac50fSopenharmony_ci 87e0dac50fSopenharmony_ci/** 88e0dac50fSopenharmony_ci * @tc.name: UpdateScreenGroupInfo03 89e0dac50fSopenharmony_ci * @tc.desc: test InterfaceToken check success 90e0dac50fSopenharmony_ci * @tc.type: FUNC 91e0dac50fSopenharmony_ci */ 92e0dac50fSopenharmony_ciHWTEST_F(ScreenGroupTest, UpdateScreenGroupInfo03, Function | SmallTest | Level2) 93e0dac50fSopenharmony_ci{ 94e0dac50fSopenharmony_ci sptr<ScreenGroupInfo> screenGroupInfo = new(std::nothrow) ScreenGroupInfo(); 95e0dac50fSopenharmony_ci sptr<ScreenGroup> screenGroup = new ScreenGroup(screenGroupInfo); 96e0dac50fSopenharmony_ci std::vector<Point> position; 97e0dac50fSopenharmony_ci position.emplace_back(0, 0); 98e0dac50fSopenharmony_ci screenGroupInfo->position_ = position; 99e0dac50fSopenharmony_ci SingletonMocker<ScreenManagerAdapter, MockScreenManagerAdapter> m; 100e0dac50fSopenharmony_ci EXPECT_CALL(m.Mock(), GetScreenGroupInfoById(_)).Times(1).WillOnce(Return(screenGroupInfo)); 101e0dac50fSopenharmony_ci std::vector<Point> pos = screenGroup->GetChildPositions(); 102e0dac50fSopenharmony_ci ASSERT_EQ(position.size(), pos.size()); 103e0dac50fSopenharmony_ci} 104e0dac50fSopenharmony_ci/** 105e0dac50fSopenharmony_ci * @tc.name: GetChildIds 106e0dac50fSopenharmony_ci * @tc.desc: for interface coverage & check GetChildIds 107e0dac50fSopenharmony_ci * @tc.type: FUNC 108e0dac50fSopenharmony_ci */ 109e0dac50fSopenharmony_ciHWTEST_F(ScreenGroupTest, GetChildIds, Function | SmallTest | Level2) 110e0dac50fSopenharmony_ci{ 111e0dac50fSopenharmony_ci sptr<ScreenGroupInfo> screenGroupInfo = new(std::nothrow) ScreenGroupInfo(); 112e0dac50fSopenharmony_ci sptr<ScreenGroup> screenGroup = new ScreenGroup(screenGroupInfo); 113e0dac50fSopenharmony_ci auto result = screenGroup->GetChildIds(); 114e0dac50fSopenharmony_ci ASSERT_TRUE(result.empty()); 115e0dac50fSopenharmony_ci 116e0dac50fSopenharmony_ci screenGroupInfo->children_.emplace_back(1); 117e0dac50fSopenharmony_ci result = screenGroup->GetChildIds(); 118e0dac50fSopenharmony_ci ASSERT_EQ(result.size(), 1); 119e0dac50fSopenharmony_ci} 120e0dac50fSopenharmony_ci} 121e0dac50fSopenharmony_ci} 122e0dac50fSopenharmony_ci}