1 /*
2 * Copyright (c) 2021-2022 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 #define private public
19 #include "app_spawn_socket.h"
20 #undef private
21
22 using namespace testing;
23 using namespace testing::ext;
24 using namespace OHOS::AppSpawn;
25
26 namespace OHOS {
27 namespace AppExecFwk {
28 class AppSpawnSocketTest : public testing::Test {
29 public:
30 static void SetUpTestCase();
31 static void TearDownTestCase();
32 void SetUp();
33 void TearDown();
34 };
35
SetUpTestCase()36 void AppSpawnSocketTest::SetUpTestCase()
37 {}
38
TearDownTestCase()39 void AppSpawnSocketTest::TearDownTestCase()
40 {}
41
SetUp()42 void AppSpawnSocketTest::SetUp()
43 {}
44
TearDown()45 void AppSpawnSocketTest::TearDown()
46 {}
47
48 /*
49 * Feature: AppSpawnSocket
50 * Function: OpenAppSpawnConnection
51 * SubFunction: NA
52 * FunctionPoints: AppSpawnSocket OpenAppSpawnConnection
53 * EnvConditions: NA
54 * CaseDescription: Verify OpenAppSpawnConnection
55 */
56 HWTEST_F(AppSpawnSocketTest, OpenAppSpawnConnection_001, TestSize.Level0)
57 {
58 auto appSpawnSocket = std::make_shared<AppSpawnSocket>(true);
59 ErrCode res1 = appSpawnSocket->OpenAppSpawnConnection();
60 EXPECT_EQ(res1, ERR_OK);
61 appSpawnSocket->clientSocket_ = nullptr;
62 ErrCode res2 = appSpawnSocket->OpenAppSpawnConnection();
63 EXPECT_EQ(res2, ERR_APPEXECFWK_BAD_APPSPAWN_SOCKET);
64 }
65
66 /*
67 * Feature: AppSpawnSocket
68 * Function: CloseAppSpawnConnection
69 * SubFunction: NA
70 * FunctionPoints: AppSpawnSocket CloseAppSpawnConnection
71 * EnvConditions: NA
72 * CaseDescription: Verify CloseAppSpawnConnection
73 */
74 HWTEST_F(AppSpawnSocketTest, CloseAppSpawnConnection_001, TestSize.Level0)
75 {
76 auto appSpawnSocket = std::make_shared<AppSpawnSocket>(true);
77 appSpawnSocket->CloseAppSpawnConnection();
78 appSpawnSocket->clientSocket_ = nullptr;
79 appSpawnSocket->CloseAppSpawnConnection();
80 }
81
82 /*
83 * Feature: AppSpawnSocket
84 * Function: WriteMessage
85 * SubFunction: NA
86 * FunctionPoints: AppSpawnSocket WriteMessage
87 * EnvConditions: NA
88 * CaseDescription: Verify WriteMessage
89 */
90 HWTEST_F(AppSpawnSocketTest, WriteMessage_001, TestSize.Level0)
91 {
92 auto appSpawnSocket = std::make_shared<AppSpawnSocket>(true);
93 const void *buf = nullptr;
94 int32_t len = 0;
95 ErrCode res = appSpawnSocket->WriteMessage(buf, len);
96 EXPECT_EQ(res, ERR_INVALID_VALUE);
97 }
98
99 /*
100 * Feature: AppSpawnSocket
101 * Function: WriteMessage
102 * SubFunction: NA
103 * FunctionPoints: AppSpawnSocket WriteMessage
104 * EnvConditions: NA
105 * CaseDescription: Verify WriteMessage
106 */
107 HWTEST_F(AppSpawnSocketTest, WriteMessage_002, TestSize.Level0)
108 {
109 auto appSpawnSocket = std::make_shared<AppSpawnSocket>(true);
110 const void *buf = nullptr;
111 int32_t len = 1;
112 ErrCode res = appSpawnSocket->WriteMessage(buf, len);
113 EXPECT_EQ(res, ERR_INVALID_VALUE);
114 }
115
116 /*
117 * Feature: AppSpawnSocket
118 * Function: WriteMessage
119 * SubFunction: NA
120 * FunctionPoints: AppSpawnSocket WriteMessage
121 * EnvConditions: NA
122 * CaseDescription: Verify WriteMessage
123 */
124 HWTEST_F(AppSpawnSocketTest, WriteMessage_003, TestSize.Level0)
125 {
126 auto appSpawnSocket = std::make_shared<AppSpawnSocket>(true);
127 char data = 'a';
128 const void *buf = &data;
129 int32_t len = 1;
130 ErrCode res1 = appSpawnSocket->WriteMessage(buf, len);
131 EXPECT_EQ(res1, ERR_APPEXECFWK_SOCKET_WRITE_FAILED);
132 appSpawnSocket->clientSocket_ = nullptr;
133 ErrCode res2 = appSpawnSocket->WriteMessage(buf, len);
134 EXPECT_EQ(res2, ERR_APPEXECFWK_BAD_APPSPAWN_SOCKET);
135 }
136
137 /*
138 * Feature: AppSpawnSocket
139 * Function: ReadMessage
140 * SubFunction: NA
141 * FunctionPoints: AppSpawnSocket ReadMessage
142 * EnvConditions: NA
143 * CaseDescription: Verify ReadMessage
144 */
145 HWTEST_F(AppSpawnSocketTest, ReadMessage_001, TestSize.Level0)
146 {
147 auto appSpawnSocket = std::make_shared<AppSpawnSocket>(true);
148 void *buf = nullptr;
149 int32_t len = 0;
150 ErrCode res = appSpawnSocket->ReadMessage(buf, len);
151 EXPECT_EQ(res, ERR_INVALID_VALUE);
152 }
153
154 /*
155 * Feature: AppSpawnSocket
156 * Function: ReadMessage
157 * SubFunction: NA
158 * FunctionPoints: AppSpawnSocket ReadMessage
159 * EnvConditions: NA
160 * CaseDescription: Verify ReadMessage
161 */
162 HWTEST_F(AppSpawnSocketTest, ReadMessage_002, TestSize.Level0)
163 {
164 auto appSpawnSocket = std::make_shared<AppSpawnSocket>(true);
165 void *buf = nullptr;
166 int32_t len = 1;
167 ErrCode res = appSpawnSocket->ReadMessage(buf, len);
168 EXPECT_EQ(res, ERR_INVALID_VALUE);
169 }
170
171 /*
172 * Feature: AppSpawnSocket
173 * Function: ReadMessage
174 * SubFunction: NA
175 * FunctionPoints: AppSpawnSocket ReadMessage
176 * EnvConditions: NA
177 * CaseDescription: Verify ReadMessage
178 */
179 HWTEST_F(AppSpawnSocketTest, ReadMessage_003, TestSize.Level0)
180 {
181 auto appSpawnSocket = std::make_shared<AppSpawnSocket>(true);
182 char data = 'a';
183 void *buf = &data;
184 int32_t len = 1;
185 ErrCode res1 = appSpawnSocket->ReadMessage(buf, len);
186 EXPECT_EQ(res1, ERR_APPEXECFWK_SOCKET_READ_FAILED);
187 appSpawnSocket->clientSocket_ = nullptr;
188 ErrCode res2 = appSpawnSocket->ReadMessage(buf, len);
189 EXPECT_EQ(res2, ERR_APPEXECFWK_BAD_APPSPAWN_CLIENT);
190 }
191 } // namespace AppExecFwk
192 } // namespace OHOS
193