• 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 #include <gtest/gtest.h>
16 #include <gmock/gmock.h>
17 #include <vector>
18 #include "wifi_p2p_msg.h"
19 
20 using ::testing::_;
21 using ::testing::AtLeast;
22 using ::testing::DoAll;
23 using ::testing::Eq;
24 using ::testing::Ref;
25 using ::testing::Return;
26 using ::testing::SetArgReferee;
27 using ::testing::StrEq;
28 using ::testing::TypedEq;
29 using ::testing::ext::TestSize;
30 
31 namespace OHOS {
32 namespace Wifi {
33 constexpr int TIMES = 253;
34 constexpr unsigned char DATA = 0x12;
35 class WifiP2PMsgTest : public testing::Test {
36 public:
SetUpTestCase()37     static void SetUpTestCase() {}
TearDownTestCase()38     static void TearDownTestCase() {}
SetUp()39     virtual void SetUp()
40     {
41         pWifiP2pWfdInfo = std::make_unique<WifiP2pWfdInfo>();
42         pWifiP2pGroupInfo = std::make_unique<WifiP2pGroupInfo>();
43         pWifiP2pServiceRequest = std::make_unique<WifiP2pServiceRequest>();
44         pWifiP2pServiceResponse = std::make_unique<WifiP2pServiceResponse>();
45     }
TearDown()46     virtual void TearDown()
47     {
48         pWifiP2pWfdInfo.reset();
49         pWifiP2pGroupInfo.reset();
50         pWifiP2pServiceRequest.reset();
51         pWifiP2pServiceResponse.reset();
52     }
53 
54 public:
55     std::unique_ptr<WifiP2pWfdInfo> pWifiP2pWfdInfo;
56     std::unique_ptr<WifiP2pGroupInfo> pWifiP2pGroupInfo;
57     std::unique_ptr<WifiP2pServiceRequest> pWifiP2pServiceRequest;
58     std::unique_ptr<WifiP2pServiceResponse> pWifiP2pServiceResponse;
59 };
60 
61 HWTEST_F(WifiP2PMsgTest, isSessionAvailableTest, TestSize.Level1)
62 {
63     bool enabled = true;
64     pWifiP2pWfdInfo->setSessionAvailable(enabled);
65     enabled = false;
66     pWifiP2pWfdInfo->setSessionAvailable(enabled);
67     EXPECT_FALSE(pWifiP2pWfdInfo->isSessionAvailable());
68 }
69 
70 HWTEST_F(WifiP2PMsgTest, AddClientDeviceTest, TestSize.Level1)
71 {
72     WifiP2pDevice clientDevice;
73     clientDevice.SetDeviceName("AddClientDeviceTest");
74     pWifiP2pGroupInfo->AddClientDevice(clientDevice);
75     pWifiP2pGroupInfo->AddClientDevice(clientDevice);
76 }
77 
78 HWTEST_F(WifiP2PMsgTest, RemoveClientDeviceTest, TestSize.Level1)
79 {
80     WifiP2pDevice clientDevice;
81     clientDevice.SetDeviceName("RemoveClientDevice");
82     pWifiP2pGroupInfo->AddClientDevice(clientDevice);
83     WifiP2pDevice clientDevice1;
84     clientDevice1.SetDeviceName("clientDevice1");
85     pWifiP2pGroupInfo->RemoveClientDevice(clientDevice1);
86 }
87 
88 HWTEST_F(WifiP2PMsgTest, IsContainsDeviceTest, TestSize.Level1)
89 {
90     WifiP2pDevice clientDevice;
91     clientDevice.SetDeviceAddress("00:11:22:33:44:55");
92     pWifiP2pGroupInfo->AddClientDevice(clientDevice);
93     WifiP2pDevice clientDevice2;
94     clientDevice2.SetDeviceAddress("aa:aa:aa:aa:aa:aa");
95     EXPECT_TRUE(pWifiP2pGroupInfo->IsContainsDevice(clientDevice2) == false);
96     EXPECT_TRUE(pWifiP2pGroupInfo->IsContainsDevice(clientDevice) == true);
97 }
98 
99 HWTEST_F(WifiP2PMsgTest, WifiP2pServiceRequestTest, TestSize.Level1)
100 {
101     std::vector<unsigned char> query;
102     std::vector<unsigned char> ret;
103     pWifiP2pServiceRequest->SetQuery(query);
104     ret = pWifiP2pServiceRequest->GetTlv();
105     EXPECT_TRUE(count(ret.begin(), ret.end(), 0x00) != 0);
106     query.push_back(0x00);
107     query.push_back(0x00);
108     pWifiP2pServiceRequest->SetQuery(query);
109     pWifiP2pServiceRequest->GetTlv();
110     for (int i = 0; i < TIMES; i++) {
111         query.push_back(DATA);
112     }
113     pWifiP2pServiceRequest->SetQuery(query);
114     pWifiP2pServiceRequest->GetTlv();
115 }
116 
117 HWTEST_F(WifiP2PMsgTest, WifiP2pServiceResponseTest, TestSize.Level1)
118 {
119     std::vector<unsigned char> data;
120     pWifiP2pServiceResponse->SetData(data);
121     pWifiP2pServiceResponse->GetTlv();
122     data.push_back(0x00);
123     data.push_back(0x00);
124     pWifiP2pServiceResponse->SetData(data);
125     pWifiP2pServiceResponse->GetTlv();
126     for (int i = 0; i < TIMES; i++) {
127         data.push_back(DATA);
128     }
129     pWifiP2pServiceResponse->SetData(data);
130     pWifiP2pServiceResponse->GetTlv();
131 }
132 } // namespace Wifi
133 } // namespace OHOS
134