#include #include #include #include "test_main.h" // Test case array TestCase tests[] = { // Basic tests TEST_ENTRY(test_basic_wifimanager_instantiation), TEST_ENTRY(test_reset_settings), TEST_ENTRY(test_disconnect), // Configuration tests TEST_ENTRY(test_configuration_setters), TEST_ENTRY(test_set_and_get_hostname), TEST_ENTRY(test_wifi_ap_configuration_setters), TEST_ENTRY(test_get_default_ap_name), TEST_ENTRY(test_get_wifi_status_string), TEST_ENTRY(test_get_mode_string), TEST_ENTRY(test_get_rssi_as_quality), // Portal lifecycle tests TEST_ENTRY(test_start_config_portal), TEST_ENTRY(test_start_config_portal_with_password), TEST_ENTRY(test_start_config_portal_auto_name), TEST_ENTRY(test_stop_config_portal), TEST_ENTRY(test_config_portal_infrastructure), TEST_ENTRY(test_start_web_portal), TEST_ENTRY(test_stop_web_portal), TEST_ENTRY(test_config_portal_multiple_start_stop), TEST_ENTRY(test_config_portal_already_active), TEST_ENTRY(test_get_config_portal_ssid), // Non-blocking tests TEST_ENTRY(test_nonblocking_process), TEST_ENTRY(test_client_check_setters), TEST_ENTRY(test_nonblocking_timeout_behavior), // Callback tests TEST_ENTRY(test_ap_callback), TEST_ENTRY(test_web_server_callback), TEST_ENTRY(test_callback_registration), TEST_ENTRY(test_multiple_callbacks), // Parameter tests TEST_ENTRY(test_create_parameter), TEST_ENTRY(test_add_parameter), TEST_ENTRY(test_get_parameters), TEST_ENTRY(test_parameter_with_custom_html), TEST_ENTRY(test_parameter_value_length), TEST_ENTRY(test_parameter_label_placement), TEST_ENTRY(test_multiple_parameters), TEST_ENTRY(test_parameter_placeholder), // Static IP tests TEST_ENTRY(test_set_ap_static_ip_config), TEST_ENTRY(test_sta_static_ip_configuration), TEST_ENTRY(test_ap_static_ip_application), // Advanced options tests TEST_ENTRY(test_connection_behavior_options), TEST_ENTRY(test_ui_display_options), TEST_ENTRY(test_ui_customization), TEST_ENTRY(test_debug_soft_ap_config), TEST_ENTRY(test_debug_platform_info), }; const size_t TEST_COUNT = sizeof(tests) / sizeof(TestCase); // Test state variables size_t next_index = 0; bool begun = false; // Test setup and teardown void setUp(void) { // No per-test setup needed } void tearDown(void) { // No per-test teardown needed } // Arduino setup and loop functions (required by framework) void setup() { Serial.begin(115200); delay(2000); // Give time for serial to initialize Serial.println("\n[TEST] ============================================="); Serial.println("[TEST] === WiFiManager Test Setup ==="); Serial.println("[TEST] Starting WiFiManager tests..."); Serial.println("[TEST] ============================================="); UNITY_BEGIN(); // Start Unity test framework begun = true; // Start tests immediately } void loop() { // Run one test and return immediately if (begun && next_index < TEST_COUNT) { TestCase& t = tests[next_index]; Serial.print("\n[TEST] ==== Running test: "); Serial.print(t.name); Serial.println(" ===="); UnityDefaultTestRun(t.fn, t.name, t.line); next_index++; return; // yield quickly } // All tests completed if (begun && next_index >= TEST_COUNT) { Serial.println("\n[TEST] ============================================="); Serial.println("[TEST] === All tests completed ==="); Serial.println("[TEST] ============================================="); UNITY_END(); // prints Unity summary begun = false; // avoid repeating } }