1 /*
2  * Copyright (c) 2021 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 #include "ability_info.h"
18 #include "want.h"
19 #include "application_info.h"
20 #include "ability_record.h"
21 #include "dlp_state_item.h"
22 
23 using namespace testing::ext;
24 namespace OHOS {
25 namespace AAFwk {
26 
27 class DlpStateItemTest : public testing::Test {
28 public:
29     static void SetUpTestCase();
30     static void TearDownTestCase();
31     void SetUp();
32     void TearDown();
33 };
34 
SetUpTestCase()35 void DlpStateItemTest::SetUpTestCase()
36 {}
37 
TearDownTestCase()38 void DlpStateItemTest::TearDownTestCase()
39 {}
40 
SetUp()41 void DlpStateItemTest::SetUp()
42 {}
43 
TearDown()44 void DlpStateItemTest::TearDown()
45 {}
46 
47 /*
48  * Feature: DLP State Item
49  * Function: AddDlpConnectionState AddDlpConnectionState
50  * SubFunction: HandleDlpConnectionState
51  * FunctionPoints:DLP State Item HandleDlpConnectionState
52  * EnvConditions: NA
53  * CaseDescription: Verify andleDlpConnectionState
54  */
55 HWTEST_F(DlpStateItemTest, dlp_state_item_test_handle_001, TestSize.Level1)
56 {
57     auto item = std::make_shared<DlpStateItem>(1, 2);
58     AppExecFwk::AbilityInfo abilityInfo;
59     abilityInfo.launchMode = AppExecFwk::LaunchMode::STANDARD;
60     Want want;
61     AppExecFwk::ApplicationInfo applicationInfo;
62     std::shared_ptr<AbilityRecord> abilityRecord = std::make_shared<AbilityRecord>(want, abilityInfo, applicationInfo);
63     abilityRecord->Init();
64     int32_t dlpIndex = 1001;
65     abilityRecord->SetAppIndex(dlpIndex);
66     AbilityRuntime::DlpStateData data;
67     EXPECT_FALSE(item->RemoveDlpConnectionState(abilityRecord, data));
68     EXPECT_TRUE(item->AddDlpConnectionState(abilityRecord, data));
69     EXPECT_FALSE(item->AddDlpConnectionState(abilityRecord, data));
70     EXPECT_TRUE(item->RemoveDlpConnectionState(abilityRecord, data));
71     EXPECT_FALSE(item->RemoveDlpConnectionState(abilityRecord, data));
72 }
73 
74 /*
75  * Feature: DLP State Item
76  * Function: GetOpenedAbilitySize
77  * SubFunction: NA
78  * FunctionPoints:DLP State Item GetOpenedAbilitySize
79  * EnvConditions: NA
80  * CaseDescription: Verify GetOpenedAbilitySize
81  */
82 HWTEST_F(DlpStateItemTest, dlp_state_item_test_get_size_002, TestSize.Level1)
83 {
84     auto item = std::make_shared<DlpStateItem>(1, 2);
85     AppExecFwk::AbilityInfo abilityInfo;
86     abilityInfo.launchMode = AppExecFwk::LaunchMode::STANDARD;
87     Want want;
88     AppExecFwk::ApplicationInfo applicationInfo;
89     std::shared_ptr<AbilityRecord> abilityRecord = std::make_shared<AbilityRecord>(want, abilityInfo, applicationInfo);
90     abilityRecord->Init();
91     AbilityRuntime::DlpStateData data;
92     abilityRecord->SetAppIndex(0);
93     EXPECT_FALSE(item->AddDlpConnectionState(abilityRecord, data));
94     int32_t dlpIndex = 1001;
95     abilityRecord->SetAppIndex(dlpIndex);
96     EXPECT_TRUE(item->AddDlpConnectionState(abilityRecord, data));
97     auto item2 = std::make_shared<DlpStateItem>(0, 0);
98     EXPECT_FALSE(item2->AddDlpConnectionState(abilityRecord, data));
99 }
100 
101 /*
102  * Feature: DLP State Item
103  * Function: GetDlpUid
104  * SubFunction: H
105  * FunctionPoints:DLP State ItemGetDlpUid
106  * EnvConditions: NA
107  * CaseDescription: Verify GetDlpUid
108  */
109 HWTEST_F(DlpStateItemTest, dlp_state_item_test_get_uid_001, TestSize.Level1)
110 {
111     auto item = std::make_shared<DlpStateItem>(10, 2);
112     EXPECT_EQ(10, item->GetDlpUid());
113 }
114 
115 /*
116  * Feature: DLP State Item
117  * Function: GetOpenedAbilitySize
118  * SubFunction: GenerateDlpStateData
119  * FunctionPoints:DLP State Item GetOpenedAbilitySize
120  * EnvConditions: NA
121  * CaseDescription: Verify GetOpenedAbilitySize
122  */
123 HWTEST_F(DlpStateItemTest, dlp_state_item_test_get_size_001, TestSize.Level1)
124 {
125     auto item = std::make_shared<DlpStateItem>(1, 2);
126     AppExecFwk::AbilityInfo abilityInfo;
127     abilityInfo.launchMode = AppExecFwk::LaunchMode::STANDARD;
128     Want want;
129     AppExecFwk::ApplicationInfo applicationInfo;
130     std::shared_ptr<AbilityRecord> abilityRecord = std::make_shared<AbilityRecord>(want, abilityInfo, applicationInfo);
131     abilityRecord->Init();
132     int32_t dlpIndex = 1001;
133     abilityRecord->SetAppIndex(dlpIndex);
134     AbilityRuntime::DlpStateData data;
135     EXPECT_EQ(0, item->GetOpenedAbilitySize());
136     EXPECT_TRUE(item->AddDlpConnectionState(abilityRecord, data));
137     EXPECT_LT(0, item->GetOpenedAbilitySize());
138     EXPECT_TRUE(item->RemoveDlpConnectionState(abilityRecord, data));
139     EXPECT_EQ(0, item->GetOpenedAbilitySize());
140 }
141 }  // namespace AppExecFwk
142 }  // namespace OHOS
143