@@ -180,6 +180,90 @@ TEST_CASE("WifiAccessPointEnable API", "[basic][rpc][client][remote]")
180180 REQUIRE (result.status ().code () == WifiAccessPointOperationStatusCode::WifiAccessPointOperationStatusCodeAccessPointInvalid);
181181 }
182182
183+ SECTION (" Fails with psk too short" )
184+ {
185+ const auto pskPassphraseTooShort = std::string (Ieee80211RsnaPskPassphraseLengthMinimum - 1 , ' a' );
186+
187+ Dot11AccessPointConfiguration apConfiguration{};
188+ *apConfiguration.mutable_authenticationdata ()->mutable_psk ()->mutable_psk ()->mutable_passphrase () = pskPassphraseTooShort;
189+
190+ WifiAccessPointEnableRequest request{};
191+ request.set_accesspointid (InterfaceName1);
192+ *request.mutable_configuration () = std::move (apConfiguration);
193+
194+ WifiAccessPointEnableResult result{};
195+ grpc::ClientContext clientContext{};
196+
197+ auto status = client->WifiAccessPointEnable (&clientContext, request, &result);
198+ REQUIRE (status.ok ());
199+ REQUIRE (result.accesspointid () == request.accesspointid ());
200+ REQUIRE (result.has_status ());
201+ REQUIRE (result.status ().code () == WifiAccessPointOperationStatusCode::WifiAccessPointOperationStatusCodeInvalidParameter);
202+ }
203+
204+ SECTION (" Fails with psk too long" )
205+ {
206+ const auto pskPassphraseTooShort = std::string (Ieee80211RsnaPskPassphraseLengthMaximum + 1 , ' a' );
207+
208+ Dot11AccessPointConfiguration apConfiguration{};
209+ *apConfiguration.mutable_authenticationdata ()->mutable_psk ()->mutable_psk ()->mutable_passphrase () = pskPassphraseTooShort;
210+
211+ WifiAccessPointEnableRequest request{};
212+ request.set_accesspointid (InterfaceName1);
213+ *request.mutable_configuration () = std::move (apConfiguration);
214+
215+ WifiAccessPointEnableResult result{};
216+ grpc::ClientContext clientContext{};
217+
218+ auto status = client->WifiAccessPointEnable (&clientContext, request, &result);
219+ REQUIRE (status.ok ());
220+ REQUIRE (result.accesspointid () == request.accesspointid ());
221+ REQUIRE (result.has_status ());
222+ REQUIRE (result.status ().code () == WifiAccessPointOperationStatusCode::WifiAccessPointOperationStatusCodeInvalidParameter);
223+ }
224+
225+ SECTION (" Succeeds with psk minimum length" )
226+ {
227+ const auto pskPassphraseMinimum = std::string (Ieee80211RsnaPskPassphraseLengthMinimum, ' a' );
228+
229+ Dot11AccessPointConfiguration apConfiguration{};
230+ *apConfiguration.mutable_authenticationdata ()->mutable_psk ()->mutable_psk ()->mutable_passphrase () = pskPassphraseMinimum;
231+
232+ WifiAccessPointEnableRequest request{};
233+ request.set_accesspointid (InterfaceName1);
234+ *request.mutable_configuration () = std::move (apConfiguration);
235+
236+ WifiAccessPointEnableResult result{};
237+ grpc::ClientContext clientContext{};
238+
239+ auto status = client->WifiAccessPointEnable (&clientContext, request, &result);
240+ REQUIRE (status.ok ());
241+ REQUIRE (result.accesspointid () == request.accesspointid ());
242+ REQUIRE (result.has_status ());
243+ REQUIRE (result.status ().code () == WifiAccessPointOperationStatusCode::WifiAccessPointOperationStatusCodeSucceeded);
244+ }
245+
246+ SECTION (" Succeeds with psk maximum length" )
247+ {
248+ const auto pskPassphraseMaximum = std::string (Ieee80211RsnaPskPassphraseLengthMaximum, ' a' );
249+
250+ Dot11AccessPointConfiguration apConfiguration{};
251+ *apConfiguration.mutable_authenticationdata ()->mutable_psk ()->mutable_psk ()->mutable_passphrase () = pskPassphraseMaximum;
252+
253+ WifiAccessPointEnableRequest request{};
254+ request.set_accesspointid (InterfaceName1);
255+ *request.mutable_configuration () = std::move (apConfiguration);
256+
257+ WifiAccessPointEnableResult result{};
258+ grpc::ClientContext clientContext{};
259+
260+ auto status = client->WifiAccessPointEnable (&clientContext, request, &result);
261+ REQUIRE (status.ok ());
262+ REQUIRE (result.accesspointid () == request.accesspointid ());
263+ REQUIRE (result.has_status ());
264+ REQUIRE (result.status ().code () == WifiAccessPointOperationStatusCode::WifiAccessPointOperationStatusCodeSucceeded);
265+ }
266+
183267 SECTION (" Succeeds without access point configuration if already configured" )
184268 {
185269 Dot11CipherSuiteConfiguration dot11CipherSuiteConfigurationWpa1{};
0 commit comments