1 /*
2 * Copyright (c) 2023 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 "asset_remove_test.h"
17
18 #include <gtest/gtest.h>
19
20 #include "asset_api.h"
21 #include "asset_test_common.h"
22
23 using namespace testing::ext;
24 namespace UnitTest::AssetRemoveTest {
25 class AssetRemoveTest : public testing::Test {
26 public:
27 static void SetUpTestCase(void);
28
29 static void TearDownTestCase(void);
30
31 void SetUp(void);
32
33 void TearDown(void);
34 };
35
SetUpTestCase(void)36 void AssetRemoveTest::SetUpTestCase(void)
37 {
38 }
39
TearDownTestCase(void)40 void AssetRemoveTest::TearDownTestCase(void)
41 {
42 }
43
SetUp(void)44 void AssetRemoveTest::SetUp(void)
45 {
46 }
47
TearDown(void)48 void AssetRemoveTest::TearDown(void)
49 {
50 }
51
52 /**
53 * @tc.name: AssetRemoveTest.AssetRemoveTest001
54 * @tc.desc: Add alias and secret, then remove it, expect success
55 * @tc.type: FUNC
56 * @tc.result:0
57 */
58 HWTEST_F(AssetRemoveTest, AssetRemoveTest001, TestSize.Level0)
59 {
60 Asset_Blob funcName = { .size = strlen(__func__), .data = reinterpret_cast<uint8_t*>(const_cast<char*>(__func__)) };
61 Asset_Attr attr[] = {
62 { .tag = ASSET_TAG_ALIAS, .value.blob = funcName },
63 { .tag = ASSET_TAG_SECRET, .value.blob = funcName },
64 { .tag = ASSET_TAG_ACCESSIBILITY, .value.u32 = ASSET_ACCESSIBILITY_DEVICE_POWERED_ON },
65 { .tag = ASSET_TAG_REQUIRE_PASSWORD_SET, .value.boolean = false },
66 { .tag = ASSET_TAG_AUTH_TYPE, .value.u32 = ASSET_AUTH_TYPE_NONE },
67 { .tag = ASSET_TAG_SYNC_TYPE, .value.u32 = ASSET_SYNC_TYPE_NEVER },
68 { .tag = ASSET_TAG_DATA_LABEL_NORMAL_1, .value.blob = funcName },
69 { .tag = ASSET_TAG_DATA_LABEL_NORMAL_2, .value.blob = funcName },
70 { .tag = ASSET_TAG_DATA_LABEL_NORMAL_3, .value.blob = funcName },
71 { .tag = ASSET_TAG_DATA_LABEL_NORMAL_4, .value.blob = funcName },
72 { .tag = ASSET_TAG_DATA_LABEL_NORMAL_LOCAL_1, .value.blob = funcName },
73 { .tag = ASSET_TAG_DATA_LABEL_NORMAL_LOCAL_2, .value.blob = funcName },
74 { .tag = ASSET_TAG_DATA_LABEL_NORMAL_LOCAL_3, .value.blob = funcName },
75 { .tag = ASSET_TAG_DATA_LABEL_NORMAL_LOCAL_4, .value.blob = funcName },
76 { .tag = ASSET_TAG_DATA_LABEL_CRITICAL_1, .value.blob = funcName },
77 { .tag = ASSET_TAG_DATA_LABEL_CRITICAL_2, .value.blob = funcName },
78 { .tag = ASSET_TAG_DATA_LABEL_CRITICAL_3, .value.blob = funcName },
79 { .tag = ASSET_TAG_DATA_LABEL_CRITICAL_4, .value.blob = funcName }
80 };
81 ASSERT_EQ(ASSET_SUCCESS, OH_Asset_Add(attr, ARRAY_SIZE(attr)));
82 Asset_Attr attr2[] = {
83 { .tag = ASSET_TAG_ALIAS, .value.blob = funcName },
84 { .tag = ASSET_TAG_ACCESSIBILITY, .value.u32 = ASSET_ACCESSIBILITY_DEVICE_POWERED_ON },
85 { .tag = ASSET_TAG_REQUIRE_PASSWORD_SET, .value.boolean = false },
86 { .tag = ASSET_TAG_AUTH_TYPE, .value.u32 = ASSET_AUTH_TYPE_NONE },
87 { .tag = ASSET_TAG_SYNC_TYPE, .value.u32 = ASSET_SYNC_TYPE_NEVER },
88 { .tag = ASSET_TAG_IS_PERSISTENT, .value.boolean = false },
89 { .tag = ASSET_TAG_DATA_LABEL_NORMAL_1, .value.blob = funcName },
90 { .tag = ASSET_TAG_DATA_LABEL_NORMAL_2, .value.blob = funcName },
91 { .tag = ASSET_TAG_DATA_LABEL_NORMAL_3, .value.blob = funcName },
92 { .tag = ASSET_TAG_DATA_LABEL_NORMAL_4, .value.blob = funcName },
93 { .tag = ASSET_TAG_DATA_LABEL_NORMAL_LOCAL_1, .value.blob = funcName },
94 { .tag = ASSET_TAG_DATA_LABEL_NORMAL_LOCAL_2, .value.blob = funcName },
95 { .tag = ASSET_TAG_DATA_LABEL_NORMAL_LOCAL_3, .value.blob = funcName },
96 { .tag = ASSET_TAG_DATA_LABEL_NORMAL_LOCAL_4, .value.blob = funcName },
97 { .tag = ASSET_TAG_DATA_LABEL_CRITICAL_1, .value.blob = funcName },
98 { .tag = ASSET_TAG_DATA_LABEL_CRITICAL_2, .value.blob = funcName },
99 { .tag = ASSET_TAG_DATA_LABEL_CRITICAL_3, .value.blob = funcName },
100 { .tag = ASSET_TAG_DATA_LABEL_CRITICAL_4, .value.blob = funcName }
101 };
102 ASSERT_EQ(ASSET_SUCCESS, OH_Asset_Remove(attr2, ARRAY_SIZE(attr2)));
103 }
104
105 /**
106 * @tc.name: AssetRemoveTest.AssetRemoveTest002
107 * @tc.desc: remove wrong blob type, expect fail
108 * @tc.type: FUNC
109 * @tc.result:0
110 */
111 HWTEST_F(AssetRemoveTest, AssetRemoveTest002, TestSize.Level0)
112 {
113 int arr[] = {
114 ASSET_TAG_ALIAS,
115 ASSET_TAG_DATA_LABEL_NORMAL_1, ASSET_TAG_DATA_LABEL_NORMAL_2,
116 ASSET_TAG_DATA_LABEL_NORMAL_3, ASSET_TAG_DATA_LABEL_NORMAL_4,
117 ASSET_TAG_DATA_LABEL_NORMAL_LOCAL_1, ASSET_TAG_DATA_LABEL_NORMAL_LOCAL_2,
118 ASSET_TAG_DATA_LABEL_NORMAL_LOCAL_3, ASSET_TAG_DATA_LABEL_NORMAL_LOCAL_4,
119 ASSET_TAG_DATA_LABEL_CRITICAL_1, ASSET_TAG_DATA_LABEL_CRITICAL_2,
120 ASSET_TAG_DATA_LABEL_CRITICAL_3, ASSET_TAG_DATA_LABEL_CRITICAL_4
121 };
122 for (int i = 0; i < ARRAY_SIZE(arr); i++) {
123 Asset_Blob tmpBlob = { .size = strlen(__func__), .data = nullptr };
124 Asset_Attr attr[] = {
125 { .tag = arr[i], .value.blob = tmpBlob }
126 };
127 ASSERT_EQ(ASSET_INVALID_ARGUMENT, OH_Asset_Remove(attr, ARRAY_SIZE(attr)));
128
129 attr[0].value.u32 = 0;
130 ASSERT_EQ(ASSET_INVALID_ARGUMENT, OH_Asset_Remove(attr, ARRAY_SIZE(attr)));
131
132 attr[0].value.boolean = true;
133 ASSERT_EQ(ASSET_INVALID_ARGUMENT, OH_Asset_Remove(attr, ARRAY_SIZE(attr)));
134 }
135 }
136
137 /**
138 * @tc.name: AssetRemoveTest.AssetRemoveTest003
139 * @tc.desc: remove wrong u32 type, expect fail
140 * @tc.type: FUNC
141 * @tc.result:0
142 */
143 HWTEST_F(AssetRemoveTest, AssetRemoveTest003, TestSize.Level0)
144 {
145 int arr[] = { ASSET_TAG_ACCESSIBILITY, ASSET_TAG_AUTH_TYPE, ASSET_TAG_SYNC_TYPE };
146 for (int i = 0; i < ARRAY_SIZE(arr); i++) {
147 Asset_Blob tmpBlob = { .size = strlen(__func__), .data = nullptr };
148 Asset_Attr attr[] = {
149 { .tag = arr[i], .value.blob = tmpBlob }
150 };
151 ASSERT_EQ(ASSET_INVALID_ARGUMENT, OH_Asset_Remove(attr, ARRAY_SIZE(attr)));
152
153 tmpBlob = { .size = strlen(__func__), .data = reinterpret_cast<uint8_t*>(const_cast<char*>(__func__)) };
154 attr[0].value.blob = tmpBlob;
155 ASSERT_EQ(ASSET_INVALID_ARGUMENT, OH_Asset_Remove(attr, ARRAY_SIZE(attr)));
156 }
157 }
158 }