1 /*
2 * Copyright (c) 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 <cstring>
17 #include <gtest/gtest.h>
18 #include <surface.h>
19
20 #define private public
21 #include "nweb_adapter_helper.h"
22 #include "nweb_create_window.h"
23 #include "nweb_helper.h"
24 #undef private
25
26 #include "ohos_adapter_helper.h"
27 #include "window.h"
28
29 using namespace testing;
30 using namespace testing::ext;
31 using namespace OHOS;
32 using namespace OHOS::MMI;
33 using namespace OHOS::Rosen;
34 namespace OHOS::NWeb {
35 namespace {
36 const std::string MOCK_INSTALLATION_DIR = "/data/app/el1/bundle/public/com.ohos.nweb";
37 }
38 class OhosAdapterHelperTest : public testing::Test {
39 public:
40 static void SetUpTestCase(void);
41 static void TearDownTestCase(void);
42 void SetUp();
43 void TearDown();
44 };
45
SetUpTestCase(void)46 void OhosAdapterHelperTest::SetUpTestCase(void)
47 {}
48
TearDownTestCase(void)49 void OhosAdapterHelperTest::TearDownTestCase(void)
50 {}
51
SetUp(void)52 void OhosAdapterHelperTest::SetUp(void)
53 {}
54
TearDown(void)55 void OhosAdapterHelperTest::TearDown(void)
56 {}
57
58 /**
59 * @tc.name: OhosAdapterHelper_GetCookieManager_001.
60 * @tc.desc: Test the GetCookieManager.
61 * @tc.type: FUNC
62 * @tc.require:
63 */
64 HWTEST_F(OhosAdapterHelperTest, OhosAdapterHelper_GetCookieManager_001, TestSize.Level1)
65 {
66 int32_t nweb_id = 1;
67 NWebHelper &helper = NWebHelper::Instance();
68 helper.SetBundlePath(MOCK_INSTALLATION_DIR);
69 helper.Init(false);
70 auto cook = helper.GetCookieManager();
71 EXPECT_NE(cook, nullptr);
72 auto base = helper.GetDataBase();
73 EXPECT_NE(base, nullptr);
74 auto storage = helper.GetWebStorage();
75 EXPECT_NE(storage, nullptr);
76 auto nweb = helper.GetNWeb(nweb_id);
77 EXPECT_EQ(nweb.lock(), nullptr);
78 }
79
80 /**
81 * @tc.name: OhosAdapterHelper_GetInstance_002.
82 * @tc.desc: Test the GetInstance.
83 * @tc.type: FUNC
84 * @tc.require:
85 */
86 HWTEST_F(OhosAdapterHelperTest, OhosAdapterHelper_GetInstance_002, TestSize.Level1)
87 {
88 OhosAdapterHelper &helper = OhosAdapterHelper::GetInstance();
89 std::unique_ptr<AafwkAppMgrClientAdapter> client = helper.CreateAafwkAdapter();
90 EXPECT_NE(client, nullptr);
91 std::unique_ptr<PowerMgrClientAdapter> powerMgr = helper.CreatePowerMgrClientAdapter();
92 EXPECT_NE(powerMgr, nullptr);
93 std::unique_ptr<DisplayManagerAdapter> display = helper.CreateDisplayMgrAdapter();
94 EXPECT_NE(display, nullptr);
95 std::unique_ptr<BatteryMgrClientAdapter> battery = helper.CreateBatteryClientAdapter();
96 EXPECT_NE(battery, nullptr);
97 helper.GetOhosWebDataBaseAdapterInstance();
98 std::unique_ptr<NetConnectAdapter> connect = helper.CreateNetConnectAdapter();
99 EXPECT_NE(connect, nullptr);
100 helper.GetPasteBoard();
101 std::unique_ptr<AudioRendererAdapter> audioRender = helper.CreateAudioRendererAdapter();
102 EXPECT_NE(audioRender, nullptr);
103 helper.GetAudioSystemManager();
104 helper.GetWebPermissionDataBaseInstance();
105 std::unique_ptr<MMIAdapter> mmiAdapter = helper.CreateMMIAdapter();
106 EXPECT_NE(mmiAdapter, nullptr);
107 sptr<Surface> surface = nullptr;
108 NWebInitArgs initArgs;
109 uint32_t width = 1;
110 uint32_t height = 1;
111 auto nweb = NWebAdapterHelper::Instance().CreateNWeb(surface, initArgs, width, height);
112 EXPECT_EQ(nweb, nullptr);
113 }
114
115 /**
116 * @tc.name: OhosAdapterHelper_CreateNWeb_003.
117 * @tc.desc: Test the CreateNWeb.
118 * @tc.type: FUNC
119 * @tc.require:
120 */
121 HWTEST_F(OhosAdapterHelperTest, OhosAdapterHelper_CreateNWeb_003, TestSize.Level1)
122 {
123 sptr<OHOS::Rosen::Window> window = nullptr;
124 NWebAdapterHelper &helper = NWebAdapterHelper::Instance();
125 helper.CreateNWeb(window.GetRefPtr(), GetInitArgs());
126 }
127
128 /**
129 * @tc.name: OhosAdapterHelper_GetDataBase_004.
130 * @tc.desc: Test the GetDataBase.
131 * @tc.type: FUNC
132 * @tc.require:
133 */
134 HWTEST_F(OhosAdapterHelperTest, OhosAdapterHelper_GetDataBase_004, TestSize.Level1)
135 {
136 int32_t nweb_id = 1;
137 NWebHelper &helper = NWebHelper::Instance();
138 NWebCreateInfo create_info;
139 helper.LoadLib(true);
140 helper.libHandleWebEngine_ = nullptr;
141 helper.LoadLib(true);
142 helper.bundlePath_ = "";
143 helper.LoadLib(true);
144 helper.libHandleWebEngine_ = nullptr;
145 helper.LoadLib(true);
146 helper.LoadLib(true);
147 helper.libHandleWebEngine_ = nullptr;
148 auto webview = helper.CreateNWeb(create_info);
149 EXPECT_EQ(webview, nullptr);
150 auto cook = helper.GetCookieManager();
151 EXPECT_EQ(cook, nullptr);
152 auto base = helper.GetDataBase();
153 EXPECT_EQ(base, nullptr);
154 auto storage = helper.GetWebStorage();
155 EXPECT_EQ(storage, nullptr);
156 auto nweb = helper.GetNWeb(nweb_id);
157 EXPECT_EQ(nweb.lock(), nullptr);
158 helper.UnloadLib();
159 }
160 }
161