Fix portal station hand-off ownership

This commit is contained in:
2026-09-08 22:26:19 +10:00
parent 5592fd12e1
commit 21607d41bd
5 changed files with 36 additions and 4 deletions
+1 -1
View File
@@ -14,6 +14,7 @@ TestCase tests[] = {
TEST_ENTRY(test_api_wifi_meta_password_field_type),
TEST_ENTRY(test_api_wifi_connect_status_success_redirect),
TEST_ENTRY(test_profile_portal_success_keeps_handoff_alive),
TEST_ENTRY(test_profile_portal_candidate_does_not_take_legacy_empty_ssid_path),
TEST_ENTRY(test_api_info_json_shape),
TEST_ENTRY(test_api_params_json_shape),
TEST_ENTRY(test_api_status_json_shape),
@@ -183,4 +184,3 @@ void loop() {
begun = false; // avoid repeating
}
}
+1 -1
View File
@@ -119,6 +119,7 @@ void test_api_wifi_meta_json_shape();
void test_api_wifi_meta_password_field_type();
void test_api_wifi_connect_status_success_redirect();
void test_profile_portal_success_keeps_handoff_alive();
void test_profile_portal_candidate_does_not_take_legacy_empty_ssid_path();
void test_api_info_json_shape();
void test_api_params_json_shape();
void test_api_status_json_shape();
@@ -146,4 +147,3 @@ void test_portal_resource_recovery();
void test_scan_result_storage_released_when_portal_closes();
#endif // TEST_MAIN_H
@@ -96,6 +96,29 @@ void test_profile_portal_success_keeps_handoff_alive() {
Serial.println("[TEST] Profile portal success hand-off delay test completed successfully");
}
void test_profile_portal_candidate_does_not_take_legacy_empty_ssid_path() {
Serial.println("[TEST] Testing profile portal candidate state ownership...");
WiFiManager wm;
#ifdef UNIT_TEST
WiFiManagerStationProfiles candidate;
candidate.slots[0].enabled = true;
snprintf(candidate.slots[0].ssid, sizeof(candidate.slots[0].ssid), "%s", "candidate-network");
wm.wmTestSetWebPortalActive(true);
TEST_ASSERT_TRUE(wm.startStationCandidate(candidate));
wm.process();
TEST_ASSERT_EQUAL_MESSAGE(
WiFiManager::WM_CP_CONNECT_WAITING,
wm.getConfigPortalConnectState(),
"A web-portal profile candidate must not be treated as the legacy empty-SSID save path"
);
#else
TEST_IGNORE_MESSAGE("UNIT_TEST helpers unavailable");
#endif
Serial.println("[TEST] Profile portal candidate state ownership test completed successfully");
}
void test_api_info_json_shape() {
Serial.println("[TEST] Testing /api/info JSON shape...");