• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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