1 /*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include <gtest/gtest.h>
17
18 #include "app_state_observer.h"
19 #include "mmi_log.h"
20
21 #undef MMI_LOG_TAG
22 #define MMI_LOG_TAG "ApplicationStateObserverTest"
23 namespace OHOS {
24 namespace MMI {
25 namespace {
26 using namespace testing::ext;
27 } // namespace
28
29 class ApplicationStateObserverTest : public testing::Test {
30 public:
SetUpTestCase(void)31 static void SetUpTestCase(void) {}
TearDownTestCase(void)32 static void TearDownTestCase(void) {}
33
SetUp()34 void SetUp() {}
TearDown()35 void TearDown() {}
36 };
37
38 /**
39 * @tc.name: ApplicationStateObserverTest_ForegroundAppData_001
40 * @tc.desc: Verify the SetForegroundAppData and GetForegroundAppData functions
41 * @tc.type: FUNC
42 * @tc.require:
43 */
HWTEST_F(ApplicationStateObserverTest, ApplicationStateObserverTest_ForegroundAppData_001, TestSize.Level1)44 HWTEST_F(ApplicationStateObserverTest, ApplicationStateObserverTest_ForegroundAppData_001, TestSize.Level1)
45 {
46 CALL_DEBUG_ENTER;
47 std::vector<AppExecFwk::AppStateData> appDatas {};
48 APP_OBSERVER_MGR->SetForegroundAppData(appDatas);
49 auto result = APP_OBSERVER_MGR->GetForegroundAppData();
50 EXPECT_EQ(appDatas.size(), result.size());
51 }
52
53 /**
54 * @tc.name: ApplicationStateObserverTest_InitAppStateObserver_001
55 * @tc.desc: Verify the action of the InitAppStateObserver function when hasInit_ is true and false respectively
56 * @tc.type: FUNC
57 * @tc.require:
58 */
HWTEST_F(ApplicationStateObserverTest, ApplicationStateObserverTest_InitAppStateObserver_001, TestSize.Level1)59 HWTEST_F(ApplicationStateObserverTest, ApplicationStateObserverTest_InitAppStateObserver_001, TestSize.Level1)
60 {
61 CALL_DEBUG_ENTER;
62 APP_OBSERVER_MGR->hasInit_ = true;
63 ASSERT_NO_FATAL_FAILURE(APP_OBSERVER_MGR->InitAppStateObserver());
64 APP_OBSERVER_MGR->hasInit_ = false;
65 ASSERT_NO_FATAL_FAILURE(APP_OBSERVER_MGR->InitAppStateObserver());
66 }
67
68 /**
69 * @tc.name: ApplicationStateObserverTest_GetAppMgr_001
70 * @tc.desc: Verify the first and non-first entry into the GetAppMgr function
71 * @tc.type: FUNC
72 * @tc.require:
73 */
HWTEST_F(ApplicationStateObserverTest, ApplicationStateObserverTest_GetAppMgr_001, TestSize.Level1)74 HWTEST_F(ApplicationStateObserverTest, ApplicationStateObserverTest_GetAppMgr_001, TestSize.Level1)
75 {
76 CALL_DEBUG_ENTER;
77 ApplicationStateObserver obsever;
78 auto appManager = obsever.GetAppMgr();
79 EXPECT_NE(appManager, nullptr);
80 appManager = obsever.GetAppMgr();
81 EXPECT_NE(appManager, nullptr);
82 }
83
84 /**
85 * @tc.name: ApplicationStateObserverTest_GetForegroundApplicationInfo_001
86 * @tc.desc: Verify the results of obtaining foreground application information
87 * @tc.type: FUNC
88 * @tc.require:
89 */
HWTEST_F(ApplicationStateObserverTest, ApplicationStateObserverTest_GetForegroundApplicationInfo_001, TestSize.Level1)90 HWTEST_F(ApplicationStateObserverTest, ApplicationStateObserverTest_GetForegroundApplicationInfo_001, TestSize.Level1)
91 {
92 CALL_DEBUG_ENTER;
93 ApplicationStateObserver obsever;
94 std::vector<AppExecFwk::AppStateData> appDatas {};
95 int32_t ret = obsever.GetForegroundApplicationInfo(appDatas);
96 EXPECT_EQ(ret, RET_OK);
97 EXPECT_FALSE(appDatas.empty());
98 auto appManager = obsever.GetAppMgr();
99 EXPECT_NE(appManager, nullptr);
100 std::vector<AppExecFwk::AppStateData> appStateDatas {};
101 ret = obsever.GetForegroundApplicationInfo(appStateDatas);
102 EXPECT_EQ(ret, RET_OK);
103 }
104 } // namespace MMI
105 } // namespace OHOS