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 #include "cj_environment.h"
18 #include "dynamic_loader.h"
19
20 #include <string>
21
22 #include "cj_invoker.h"
23 #ifdef __OHOS__
24 #include <dlfcn.h>
25 #endif
26 #include "dynamic_loader.h"
27 #ifdef WITH_EVENT_HANDLER
28 #include "event_handler.h"
29 #endif
30
31 using namespace OHOS;
32 using namespace testing;
33 using namespace testing::ext;
34
35
36 class CjEnvironmentTest : public testing::Test {
37 public:
CjEnvironmentTest()38 CjEnvironmentTest()
39 {}
~CjEnvironmentTest()40 ~CjEnvironmentTest()
41 {}
42 static void SetUpTestCase(void);
43 static void TearDownTestCase(void);
44 void SetUp() override;
45 void TearDown() override;
46 };
47
SetUpTestCase(void)48 void CjEnvironmentTest::SetUpTestCase(void)
49 {}
50
TearDownTestCase(void)51 void CjEnvironmentTest::TearDownTestCase(void)
52 {}
53
SetUp(void)54 void CjEnvironmentTest::SetUp(void)
55 {}
56
TearDown(void)57 void CjEnvironmentTest::TearDown(void)
58 {}
59
TestFunc()60 void TestFunc()
61 {}
62
63 /**
64 * @tc.name: CjEnvironmentTestPostTask_001
65 * @tc.desc: CjEnvironmentTest test for PostTask.
66 * @tc.type: FUNC
67 */
68 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestPostTask_001, TestSize.Level0)
69 {
70 CJEnvironment::GetInstance()->PostTask(nullptr);
71 void (*func)() = TestFunc;
72 auto ret = CJEnvironment::GetInstance()->PostTask(func);
73 EXPECT_EQ(ret, true);
74 }
75
76 /**
77 * @tc.name: CjEnvironmentTestHasHigherPriorityTask_001
78 * @tc.desc: CjEnvironmentTest test for HasHigherPriorityTask.
79 * @tc.type: FUNC
80 */
81 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestHasHigherPriorityTask_001, TestSize.Level0)
82 {
83 auto ret = CJEnvironment::GetInstance()->HasHigherPriorityTask();
84 EXPECT_EQ(ret, false);
85 }
86
87 /**
88 * @tc.name: CjEnvironmentTestInitCJChipSDKNS_001
89 * @tc.desc: CjEnvironmentTest test for InitCJChipSDKNS.
90 * @tc.type: FUNC
91 */
92 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestInitCJChipSDKNS_001, TestSize.Level0)
93 {
94 CJEnvironment::GetInstance()->InitCJChipSDKNS("path/to/hap");
95 EXPECT_NE(CJEnvironment::GetInstance()->cjAppNSName, nullptr);
96 }
97
98 /**
99 * @tc.name: CjEnvironmentTestInitCJAppNS_001
100 * @tc.desc: CjEnvironmentTest test for InitCJAppNS.
101 * @tc.type: FUNC
102 */
103 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestInitCJAppNS_001, TestSize.Level0)
104 {
105 CJEnvironment::GetInstance()->InitCJAppNS("path/to/hap");
106 EXPECT_NE(CJEnvironment::GetInstance()->cjAppNSName, nullptr);
107 }
108
109 /**
110 * @tc.name: CjEnvironmentTestInitCJSDKNS_001
111 * @tc.desc: CjEnvironmentTest test for InitCJSDKNS.
112 * @tc.type: FUNC
113 */
114 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestInitCJSDKNS_001, TestSize.Level0)
115 {
116 CJEnvironment::GetInstance()->InitCJSDKNS("path/to/hap");
117 EXPECT_NE(CJEnvironment::GetInstance()->cjAppNSName, nullptr);
118 }
119
120 /**
121 * @tc.name: CjEnvironmentTestInitCJSysNS_001
122 * @tc.desc: CjEnvironmentTest test for InitCJSysNS.
123 * @tc.type: FUNC
124 */
125 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestInitCJSysNS_001, TestSize.Level0)
126 {
127 CJEnvironment::GetInstance()->InitCJSysNS("path/to/hap");
128 EXPECT_NE(CJEnvironment::GetInstance()->cjAppNSName, nullptr);
129 }
130
131 /**
132 * @tc.name: CjEnvironmentTestStartRuntime_001
133 * @tc.desc: CjEnvironmentTest test for StartRuntime.
134 * @tc.type: FUNC
135 */
136 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestStartRuntime_001, TestSize.Level0)
137 {
138 auto ret = CJEnvironment::GetInstance()->StartRuntime();
139 EXPECT_EQ(ret, false);
140 }
141
142 /**
143 * @tc.name: CjEnvironmentTestStopRuntime_001
144 * @tc.desc: CjEnvironmentTest test for StopRuntime.
145 * @tc.type: FUNC
146 */
147 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestStopRuntime_001, TestSize.Level0)
148 {
149 CJEnvironment::GetInstance()->StopRuntime();
150 EXPECT_NE(CJEnvironment::GetInstance(), nullptr);
151 }
152
153 /**
154 * @tc.name: CjEnvironmentTestStopUIScheduler_001
155 * @tc.desc: CjEnvironmentTest test for StopUIScheduler.
156 * @tc.type: FUNC
157 */
158 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestStopUIScheduler_001, TestSize.Level0)
159 {
160 CJEnvironment::GetInstance()->StopUIScheduler();
161 EXPECT_NE(CJEnvironment::GetInstance(), nullptr);
162 }
163
164 /**
165 * @tc.name: CjEnvironmentTestLoadCJLibrary_001
166 * @tc.desc: CjEnvironmentTest test for LoadCJLibrary.
167 * @tc.type: FUNC
168 */
169 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestLoadCJLibrary_001, TestSize.Level0)
170 {
171 auto ret = CJEnvironment::GetInstance()->LoadCJLibrary("dlName");
172 EXPECT_EQ(ret, nullptr);
173 }
174
175 /**
176 * @tc.name: CjEnvironmentTestLoadCJLibrary_001
177 * @tc.desc: CjEnvironmentTest test for LoadCJLibrary.
178 * @tc.type: FUNC
179 */
180 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestLoadCJLibrary_002, TestSize.Level0)
181 {
182 CJEnvironment::GetInstance()->LoadCJLibrary(CJEnvironment::GetInstance()->LibraryKind::APP, "dlName");
183 CJEnvironment::GetInstance()->LoadCJLibrary(CJEnvironment::GetInstance()->LibraryKind::SYSTEM, "dlName");
184 CJEnvironment::GetInstance()->LoadCJLibrary(CJEnvironment::GetInstance()->LibraryKind::SDK, "dlName");
185 EXPECT_NE(CJEnvironment::GetInstance(), nullptr);
186 }
187
188 /**
189 * @tc.name: CjEnvironmentTestStartDebugger_001
190 * @tc.desc: CjEnvironmentTest test for StartDebugger.
191 * @tc.type: FUNC
192 */
193 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestStartDebugger_001, TestSize.Level0)
194 {
195 auto ret = CJEnvironment::GetInstance()->StartDebugger();
196 EXPECT_EQ(ret, false);
197 }
198
199 /**
200 * @tc.name: CjEnvironmentTestGetSymbol_001
201 * @tc.desc: CjEnvironmentTest test for GetSymbol.
202 * @tc.type: FUNC
203 */
204 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestGetSymbol_001, TestSize.Level0)
205 {
206 auto ret = CJEnvironment::GetInstance()->GetSymbol(nullptr, "dlName");
207 EXPECT_EQ(ret, nullptr);
208 }
209