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