1 /* 2 * Copyright (c) 2022-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 <dlfcn.h> 17 #include <gtest/gtest.h> 18 #include <mutex> 19 #include <unordered_map> 20 #define private public 21 #define protected public 22 #include "connect_server_manager.h" 23 #undef private 24 #undef protected 25 #include "hilog_tag_wrapper.h" 26 using namespace testing::ext; 27 using namespace testing; 28 using namespace OHOS::AbilityRuntime; 29 namespace OHOS { 30 namespace AAFwk { 31 namespace { 32 constexpr int32_t ONE = 1; 33 constexpr int32_t TWO = 2; 34 } 35 class ConnectServerManagerTest : public testing::Test { 36 public: SetUpTestCase(void)37 static void SetUpTestCase(void) {}; TearDownTestCase(void)38 static void TearDownTestCase(void) {}; SetUp()39 void SetUp() {}; TearDown()40 void TearDown() {}; 41 }; 42 43 /* 44 * @tc.number : ConnectServerManagerTest_0100 45 * @tc.name : ConnectServerManager 46 * @tc.desc : Test Function ConnectServerManager::Get and ConnectServerManager::~ConnectServerManager 47 */ 48 HWTEST_F(ConnectServerManagerTest, ConnectServerManagerTest_0100, TestSize.Level1) 49 { 50 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0100 is start"); 51 std::shared_ptr<ConnectServerManager> connectServerManager = std::make_shared<ConnectServerManager>(); 52 EXPECT_TRUE(connectServerManager != nullptr); 53 connectServerManager.reset(); 54 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0100 is end"); 55 } 56 57 /* 58 * @tc.number : ConnectServerManagerTest_0200 59 * @tc.name : ConnectServerManager 60 * @tc.desc : Test Function ConnectServerManager::StartConnectServer 61 */ 62 HWTEST_F(ConnectServerManagerTest, ConnectServerManagerTest_0200, TestSize.Level1) 63 { 64 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0200 is start"); 65 ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get(); 66 const std::string bundleName = "StartServer"; 67 uint32_t socketFd = 0; 68 connectServerManager.StartConnectServer(bundleName, socketFd, true); 69 EXPECT_TRUE(connectServerManager.bundleName_ == "StartServer"); 70 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0200 is end"); 71 } 72 73 /* 74 * @tc.number : ConnectServerManagerTest_0300 75 * @tc.name : ConnectServerManager 76 * @tc.desc : Test Function ConnectServerManager::StopConnectServer 77 */ 78 HWTEST_F(ConnectServerManagerTest, ConnectServerManagerTest_0300, TestSize.Level1) 79 { 80 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0300 is start"); 81 ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get(); 82 connectServerManager.StopConnectServer(); 83 EXPECT_FALSE(connectServerManager.handlerConnectServerSo_); 84 connectServerManager.handlerConnectServerSo_ = nullptr; 85 connectServerManager.StopConnectServer(); 86 EXPECT_FALSE(connectServerManager.handlerConnectServerSo_); 87 char data[] = "StopServer"; 88 char *dptr = data; 89 connectServerManager.handlerConnectServerSo_ = dptr; 90 connectServerManager.StopConnectServer(); 91 EXPECT_FALSE(connectServerManager.handlerConnectServerSo_); 92 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0300 is end"); 93 } 94 95 /* 96 * @tc.number : ConnectServerManagerTest_0400 97 * @tc.name : ConnectServerManager 98 * @tc.desc : Test Function ConnectServerManager::AddInstance 99 */ 100 HWTEST_F(ConnectServerManagerTest, ConnectServerManagerTest_0400, TestSize.Level1) 101 { 102 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0400 is start"); 103 ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get(); __anonb46d53d40202(int32_t val) 104 auto createTest = [] (int32_t val) {}; __anonb46d53d40302(bool flag) 105 auto setTest = [] (bool flag) {}; 106 connectServerManager.SetLayoutInspectorCallback(createTest, setTest); 107 const std::string instanceName = "test"; 108 connectServerManager.handlerConnectServerSo_ = nullptr; 109 EXPECT_FALSE(connectServerManager.AddInstance(gettid(), ONE, instanceName)); 110 char data[] = "WaitForConnection"; 111 char *dptr = data; 112 connectServerManager.handlerConnectServerSo_ = dptr; 113 EXPECT_FALSE(connectServerManager.AddInstance(gettid(), ONE, instanceName)); 114 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0400 is end"); 115 } 116 117 /* 118 * @tc.number : ConnectServerManagerTest_0500 119 * @tc.name : ConnectServerManager 120 * @tc.desc : Test Function ConnectServerManager::RemoveInstance 121 */ 122 HWTEST_F(ConnectServerManagerTest, ConnectServerManagerTest_0500, TestSize.Level1) 123 { 124 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0500 is start"); 125 ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get(); 126 connectServerManager.handlerConnectServerSo_ = nullptr; 127 EXPECT_FALSE(connectServerManager.handlerConnectServerSo_); 128 connectServerManager.RemoveInstance(ONE); 129 const std::string instanceName = "test"; 130 char data[] = "WaitForConnection"; 131 char *dptr = data; 132 connectServerManager.handlerConnectServerSo_ = dptr; 133 connectServerManager.instanceMap_.clear(); 134 auto res = connectServerManager.instanceMap_.try_emplace(ONE, instanceName, gettid()); 135 EXPECT_TRUE(res.second); 136 connectServerManager.RemoveInstance(ONE); 137 EXPECT_TRUE(connectServerManager.handlerConnectServerSo_); 138 connectServerManager.RemoveInstance(ONE); 139 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0500 is end"); 140 } 141 142 /* 143 * @tc.number : ConnectServerManagerTest_0600 144 * @tc.name : ConnectServerManager 145 * @tc.desc : Test Function ConnectServerManager::SendInspector 146 */ 147 HWTEST_F(ConnectServerManagerTest, ConnectServerManagerTest_0600, TestSize.Level1) 148 { 149 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0600 is start"); 150 ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get(); 151 const std::string jsonTreeStr = "jsonTreeStr"; 152 const std::string jsonSnapshotStr = "jsonSnapshotStr"; 153 connectServerManager.handlerConnectServerSo_ = nullptr; 154 EXPECT_FALSE(connectServerManager.handlerConnectServerSo_); 155 connectServerManager.SendInspector(jsonTreeStr, jsonSnapshotStr); 156 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0600 is end"); 157 } 158 159 /* 160 * @tc.number : ConnectServerManagerTest_0700 161 * @tc.name : ConnectServerManager 162 * @tc.desc : Test Function ConnectServerManager::AddInstance 163 */ 164 HWTEST_F(ConnectServerManagerTest, ConnectServerManagerTest_0700, TestSize.Level1) 165 { 166 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0700 is start"); 167 ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get(); __anonb46d53d40402(int32_t val) 168 auto createTest = [] (int32_t val) {}; __anonb46d53d40502(bool flag) 169 auto setTest = [] (bool flag) {}; 170 connectServerManager.SetLayoutInspectorCallback(createTest, setTest); 171 const std::string instanceName = "test02"; 172 connectServerManager.handlerConnectServerSo_ = nullptr; 173 const std::string bundleName = "StartServer"; 174 uint32_t socketFd = 0; 175 connectServerManager.StartConnectServer(bundleName, socketFd, true); 176 EXPECT_FALSE(connectServerManager.AddInstance(gettid(), TWO, instanceName)); 177 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0700 is end"); 178 } 179 180 /* 181 * @tc.number : ConnectServerManagerTest_0800 182 * @tc.name : ConnectServerManager 183 * @tc.desc : Test Function ConnectServerManager::RemoveInstance 184 */ 185 HWTEST_F(ConnectServerManagerTest, ConnectServerManagerTest_0800, TestSize.Level1) 186 { 187 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0800 is start"); 188 ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get(); 189 const std::string instanceName = "test02"; 190 connectServerManager.handlerConnectServerSo_ = nullptr; 191 const std::string bundleName = "StartServer"; 192 uint32_t socketFd = 0; 193 connectServerManager.StartConnectServer(bundleName, socketFd, true); 194 connectServerManager.RemoveInstance(TWO); 195 EXPECT_TRUE(connectServerManager.instanceMap_.find(TWO) == connectServerManager.instanceMap_.end()); 196 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0800 is end"); 197 } 198 199 /* 200 * @tc.number : ConnectServerManagerTest_0900 201 * @tc.name : ConnectServerManager 202 * @tc.desc : Test Function ConnectServerManager::SendInspector 203 */ 204 HWTEST_F(ConnectServerManagerTest, ConnectServerManagerTest_0900, TestSize.Level1) 205 { 206 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0900 is start"); 207 ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get(); 208 const std::string instanceName = "test02"; 209 connectServerManager.handlerConnectServerSo_ = nullptr; 210 const std::string bundleName = "StartServer"; 211 uint32_t socketFd = 0; 212 connectServerManager.StartConnectServer(bundleName, socketFd, true); 213 const std::string jsonTreeStr = "jsonTreeStr"; 214 const std::string jsonSnapshotStr = "jsonSnapshotStr"; 215 connectServerManager.SendInspector(jsonTreeStr, jsonSnapshotStr); 216 EXPECT_TRUE(connectServerManager.handlerConnectServerSo_ != nullptr); 217 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0900 is end"); 218 } 219 220 /* 221 * @tc.number : ConnectServerManagerTest_1000 222 * @tc.name : ConnectServerManager 223 * @tc.desc : Test Function ConnectServerManager::GetLayoutInspectorCallback 224 */ 225 HWTEST_F(ConnectServerManagerTest, ConnectServerManagerTest_1000, TestSize.Level1) 226 { 227 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_1000 is start"); 228 ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get(); 229 connectServerManager.SetLayoutInspectorCallback(nullptr, nullptr); 230 auto resulftSetTest = connectServerManager.GetLayoutInspectorCallback(); 231 EXPECT_TRUE(resulftSetTest == nullptr); 232 __anonb46d53d40602(int32_t val) 233 auto createTest = [] (int32_t val) {}; __anonb46d53d40702(bool flag) 234 auto setTest = [] (bool flag) {}; 235 connectServerManager.SetLayoutInspectorCallback(createTest, setTest); 236 resulftSetTest = connectServerManager.GetLayoutInspectorCallback(); 237 EXPECT_TRUE(resulftSetTest != nullptr); 238 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_1000 is end"); 239 } 240 241 /* 242 * @tc.number : ConnectServerManagerTest_1100 243 * @tc.name : ConnectServerManager 244 * @tc.desc : Test Function ConnectServerManager::SetRecordCallback 245 */ 246 HWTEST_F(ConnectServerManagerTest, ConnectServerManagerTest_1100, TestSize.Level1) 247 { 248 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_1100 is start"); 249 ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get(); __anonb46d53d40802() 250 auto startRecordFunc = []() {}; __anonb46d53d40902() 251 auto stopRecordFunc = []() {}; 252 bool result = connectServerManager.SetRecordCallback(startRecordFunc, stopRecordFunc); 253 EXPECT_TRUE(result); 254 TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_1100 is end"); 255 } 256 } // namespace AAFwk 257 } // namespace OHOS 258