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