• 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 <gtest/gtest.h>
17 
18 #include "iservice_registry.h"
19 #include "system_ability_definition.h"
20 
21 #include "conn_manager.h"
22 #include "net_manager_constants.h"
23 #include "netnative_log_wrapper.h"
24 #include "netsys_native_service_proxy.h"
25 #include "network_permission.h"
26 
27 namespace OHOS {
28 namespace NetsysNative {
29 using namespace testing::ext;
30 using namespace NetManagerStandard;
31 constexpr int32_t NETID = 101;
32 constexpr int32_t UID = 1000;
33 constexpr int32_t MTU = 1500;
34 constexpr int32_t WHICH = 14;
35 const std::string INTERFACENAME = "wlan0";
36 namespace {
ConnManagerGetProxy()37 sptr<NetsysNative::INetsysService> ConnManagerGetProxy()
38 {
39     auto samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
40     if (samgr == nullptr) {
41         return nullptr;
42     }
43 
44     auto remote = samgr->GetSystemAbility(COMM_NETSYS_NATIVE_SYS_ABILITY_ID);
45     if (remote == nullptr) {
46         return nullptr;
47     }
48 
49     auto proxy = iface_cast<NetsysNative::INetsysService>(remote);
50     if (proxy == nullptr) {
51         return nullptr;
52     }
53     return proxy;
54 }
55 } // namespace
56 class NetsysNativeServiceProxyTest : public testing::Test {
57 public:
58     static void SetUpTestCase();
59     static void TearDownTestCase();
60     void SetUp();
61     void TearDown();
62 };
63 
SetUpTestCase()64 void NetsysNativeServiceProxyTest::SetUpTestCase() {}
65 
TearDownTestCase()66 void NetsysNativeServiceProxyTest::TearDownTestCase() {}
67 
SetUp()68 void NetsysNativeServiceProxyTest::SetUp() {}
69 
TearDown()70 void NetsysNativeServiceProxyTest::TearDown() {}
71 
72 /**
73  * @tc.name: AddInterfaceToNetworkTest001
74  * @tc.desc: Test NetsysNativeServiceProxy AddInterfaceToNetwork.
75  * @tc.type: FUNC
76  */
77 HWTEST_F(NetsysNativeServiceProxyTest, AddInterfaceToNetworkTest001, TestSize.Level1)
78 {
79     OHOS::sptr<OHOS::NetsysNative::INetsysService> netsysNativeService = ConnManagerGetProxy();
80     ASSERT_NE(netsysNativeService, nullptr);
81     int32_t ret = netsysNativeService->NetworkCreatePhysical(NETID, nmd::NetworkPermission::PERMISSION_NONE);
82     EXPECT_EQ(ret, NetManagerStandard::NETMANAGER_SUCCESS);
83     ret = netsysNativeService->NetworkAddInterface(NETID, INTERFACENAME);
84     EXPECT_EQ(ret, NetManagerStandard::NETMANAGER_SUCCESS);
85     ret = netsysNativeService->AddInterfaceAddress(INTERFACENAME, "192.168.113.209", 24);
86     EXPECT_EQ(ret, NetManagerStandard::NETMANAGER_SUCCESS);
87 }
88 
89 /**
90  * @tc.name: AddRouteTest001
91  * @tc.desc: Test NetsysNativeServiceProxy AddRoute.
92  * @tc.type: FUNC
93  */
94 HWTEST_F(NetsysNativeServiceProxyTest, AddRouteTest001, TestSize.Level1)
95 {
96     OHOS::sptr<OHOS::NetsysNative::INetsysService> netsysNativeService = ConnManagerGetProxy();
97     ASSERT_NE(netsysNativeService, nullptr);
98     int32_t ret = netsysNativeService->NetworkAddRoute(NETID, INTERFACENAME, "0.0.0.0/0", "192.168.113.222");
99     EXPECT_LE(ret, 0);
100     ret = netsysNativeService->NetworkAddRoute(NETID, INTERFACENAME, "192.168.113.0/24", "0.0.0.0");
101     EXPECT_LE(ret, 0);
102 }
103 
104 /**
105  * @tc.name: SetDefaultNetworkTest001
106  * @tc.desc: Test NetsysNativeServiceProxy SetDefaultNetwork.
107  * @tc.type: FUNC
108  */
109 HWTEST_F(NetsysNativeServiceProxyTest, SetDefaultNetworkTest001, TestSize.Level1)
110 {
111     OHOS::sptr<OHOS::NetsysNative::INetsysService> netsysNativeService = ConnManagerGetProxy();
112     ASSERT_NE(netsysNativeService, nullptr);
113     int32_t ret = netsysNativeService->NetworkSetDefault(NETID);
114     EXPECT_EQ(ret, NetManagerStandard::NETMANAGER_SUCCESS);
115 }
116 
117 /**
118  * @tc.name: GetDefaultNetworkTest001
119  * @tc.desc: Test NetsysNativeServiceProxy GetDefaultNetwork.
120  * @tc.type: FUNC
121  */
122 HWTEST_F(NetsysNativeServiceProxyTest, GetDefaultNetworkTest001, TestSize.Level1)
123 {
124     OHOS::sptr<OHOS::NetsysNative::INetsysService> netsysNativeService = ConnManagerGetProxy();
125     ASSERT_NE(netsysNativeService, nullptr);
126     int32_t ret = netsysNativeService->NetworkGetDefault();
127     EXPECT_EQ(ret, NETID);
128 }
129 
130 /**
131  * @tc.name: RemoveInterfaceFromNetworkTest001
132  * @tc.desc: Test NetsysNativeServiceProxy RemoveInterfaceFromNetwork.
133  * @tc.type: FUNC
134  */
135 HWTEST_F(NetsysNativeServiceProxyTest, RemoveInterfaceFromNetworkTest001, TestSize.Level1)
136 {
137     OHOS::sptr<OHOS::NetsysNative::INetsysService> netsysNativeService = ConnManagerGetProxy();
138     ASSERT_NE(netsysNativeService, nullptr);
139     int32_t ret = netsysNativeService->DelInterfaceAddress(INTERFACENAME, "192.168.113.209", 24);
140     EXPECT_LE(ret, NetManagerStandard::NETMANAGER_SUCCESS);
141     ret = netsysNativeService->NetworkRemoveInterface(NETID, INTERFACENAME);
142     EXPECT_LE(ret, NetManagerStandard::NETMANAGER_SUCCESS);
143 }
144 
145 /**
146  * @tc.name: DestroyNetworkTest001
147  * @tc.desc: Test NetsysNativeServiceProxy DestroyNetwork.
148  * @tc.type: FUNC
149  */
150 HWTEST_F(NetsysNativeServiceProxyTest, DestroyNetworkTest001, TestSize.Level1)
151 {
152     OHOS::sptr<OHOS::NetsysNative::INetsysService> netsysNativeService = ConnManagerGetProxy();
153     ASSERT_NE(netsysNativeService, nullptr);
154     int32_t ret = netsysNativeService->NetworkDestroy(NETID);
155     EXPECT_LE(ret, NetManagerStandard::NETMANAGER_SUCCESS);
156 }
157 
158 HWTEST_F(NetsysNativeServiceProxyTest, NetworkAddRouteParcelTest001, TestSize.Level1)
159 {
160     OHOS::sptr<OHOS::NetsysNative::INetsysService> netsysNativeService = ConnManagerGetProxy();
161     ASSERT_NE(netsysNativeService, nullptr);
162     RouteInfoParcel routeInfo;
163     routeInfo.destination = "destination";
164     routeInfo.ifName = INTERFACENAME;
165     routeInfo.nextHop = "nextHop";
166     routeInfo.mtu = MTU;
167     int32_t ret = netsysNativeService->NetworkAddRouteParcel(NETID, routeInfo);
168     EXPECT_EQ(ret, -1);
169 }
170 
171 HWTEST_F(NetsysNativeServiceProxyTest, NetworkRemoveRouteParcelTest001, TestSize.Level1)
172 {
173     OHOS::sptr<OHOS::NetsysNative::INetsysService> netsysNativeService = ConnManagerGetProxy();
174     ASSERT_NE(netsysNativeService, nullptr);
175     RouteInfoParcel routeInfo;
176     routeInfo.destination = "";
177     routeInfo.ifName = INTERFACENAME;
178     routeInfo.nextHop = "";
179     routeInfo.mtu = MTU;
180     int32_t ret = netsysNativeService->NetworkRemoveRouteParcel(NETID, routeInfo);
181     EXPECT_EQ(ret, -1);
182 }
183 
184 HWTEST_F(NetsysNativeServiceProxyTest, NetworkClearDefaultTest001, TestSize.Level1)
185 {
186     OHOS::sptr<OHOS::NetsysNative::INetsysService> netsysNativeService = ConnManagerGetProxy();
187     ASSERT_NE(netsysNativeService, nullptr);
188     int32_t ret = netsysNativeService->NetworkClearDefault();
189     EXPECT_EQ(ret, NetManagerStandard::NETMANAGER_SUCCESS);
190 }
191 
192 HWTEST_F(NetsysNativeServiceProxyTest, GetSetProcSysNetTest001, TestSize.Level1)
193 {
194     OHOS::sptr<OHOS::NetsysNative::INetsysService> netsysNativeService = ConnManagerGetProxy();
195     ASSERT_NE(netsysNativeService, nullptr);
196     std::string parameter = "TestParameter";
197     std::string value = "Testvalue";
198     int32_t ret = netsysNativeService->SetProcSysNet(AF_INET, WHICH, INTERFACENAME, parameter, value);
199     ret = netsysNativeService->GetProcSysNet(AF_INET, WHICH, INTERFACENAME, parameter, value);
200     EXPECT_GE(ret, ERR_FLATTEN_OBJECT);
201 }
202 
203 HWTEST_F(NetsysNativeServiceProxyTest, GetProcSysNetTest001, TestSize.Level1)
204 {
205     OHOS::sptr<OHOS::NetsysNative::INetsysService> netsysNativeService = ConnManagerGetProxy();
206     ASSERT_NE(netsysNativeService, nullptr);
207     int32_t ret = netsysNativeService->SetInternetPermission(UID, true);
208     ret = netsysNativeService->NetworkCreateVirtual(NETID, true);
209     EXPECT_EQ(ret, NetManagerStandard::NETMANAGER_SUCCESS);
210 }
211 } // namespace NetsysNative
212 } // namespace OHOS
213