diff --git a/src/httpserver/json_interface.c b/src/httpserver/json_interface.c index d1eb994d2..a36203c97 100644 --- a/src/httpserver/json_interface.c +++ b/src/httpserver/json_interface.c @@ -728,6 +728,32 @@ int JSON_ProcessCommandReply(const char *cmd, const char *arg, void *request, js printer(request, "\"led_basecolor_rgb\":\"%s\"",tmp); printer(request, "}"); } + else if (!wal_strnicmp(cmd, "MQTTClient", 8)) { + printer(request, "{"); + printer(request, "\"MQTTClient\":\"%s\"",CFG_GetMQTTClientId()); + printer(request, "}"); + } + else if (!wal_strnicmp(cmd, "MQTTHost", 8)) { + printer(request, "{"); + printer(request, "\"MQTTHost\":\"%s\"", CFG_GetMQTTHost()); + printer(request, "}"); + } + else if (!wal_strnicmp(cmd, "MQTTUser", 8)) { + printer(request, "{"); + printer(request, "\"MQTTUser\":\"%s\"", CFG_GetMQTTUserName()); + printer(request, "}"); + } + else if (!wal_strnicmp(cmd, "MqttPassword", 12)) { + printer(request, "{"); + printer(request, "\"MqttPassword\":\"%s\"", "****"); + printer(request, "}"); + } + else if (!wal_strnicmp(cmd, "SSID1", 5)) { + printer(request, "{"); + printer(request, "\"SSID1\":\"%s\"", CFG_GetWiFiSSID()); + printer(request, "}"); + } + return 0; } diff --git a/src/selftest/selftest_cfg_via_http.c b/src/selftest/selftest_cfg_via_http.c new file mode 100644 index 000000000..137f73862 --- /dev/null +++ b/src/selftest/selftest_cfg_via_http.c @@ -0,0 +1,52 @@ +#ifdef WINDOWS + +#include "selftest_local.h" +#include "../httpserver/new_http.h" + +void Test_CFG_Via_HTTP() { + const char *mqtt_userName = "MyMQTTUser"; + SIM_ClearOBK(); + PIN_SetPinRoleForPinIndex(9, IOR_Relay); + PIN_SetPinChannelForPinIndex(9, 1); + CFG_SetMQTTUserName(mqtt_userName); + CFG_SetMQTTHost("192.168.123.246"); + CFG_SetWiFiSSID("FakeNet3D"); + + Test_FakeHTTPClientPacket_JSON("cm?cmnd=POWER"); + SELFTEST_ASSERT_JSON_VALUE_STRING(0, "POWER", "OFF"); + + Test_FakeHTTPClientPacket_JSON("cm?cmnd=POWER"); + SELFTEST_ASSERT_JSON_VALUE_STRING(0, "POWER", "OFF"); + + CMD_ExecuteCommand("setChannel 1 1", 0); + + Test_FakeHTTPClientPacket_JSON("cm?cmnd=POWER"); + SELFTEST_ASSERT_JSON_VALUE_STRING(0, "POWER", "ON"); + + + Test_FakeHTTPClientPacket_JSON("cm?cmnd=MQTTUser"); + SELFTEST_ASSERT_JSON_VALUE_STRING(0, "MQTTUser", mqtt_userName); + CFG_SetMQTTUserName("UserName2"); + Test_FakeHTTPClientPacket_JSON("cm?cmnd=MQTTUser"); + SELFTEST_ASSERT_JSON_VALUE_STRING(0, "MQTTUser", "UserName2"); + Test_FakeHTTPClientPacket_JSON("cm?cmnd=MQTTUser"); + SELFTEST_ASSERT_JSON_VALUE_STRING(0, "MQTTUser", "UserName2"); + Test_FakeHTTPClientPacket_JSON("cm?cmnd=MQTTUser%20NewName"); + SELFTEST_ASSERT_JSON_VALUE_STRING(0, "MQTTUser", "NewName"); + Test_FakeHTTPClientPacket_JSON("cm?cmnd=MQTTUser%20another"); + SELFTEST_ASSERT_JSON_VALUE_STRING(0, "MQTTUser", "another"); + Test_FakeHTTPClientPacket_JSON("cm?cmnd=MQTTHost"); + SELFTEST_ASSERT_JSON_VALUE_STRING(0, "MQTTHost", "192.168.123.246"); + Test_FakeHTTPClientPacket_JSON("cm?cmnd=MQTTHost%208.8.8.8"); + SELFTEST_ASSERT_JSON_VALUE_STRING(0, "MQTTHost", "8.8.8.8"); + + Test_FakeHTTPClientPacket_JSON("cm?cmnd=SSID1"); + SELFTEST_ASSERT_JSON_VALUE_STRING(0, "SSID1", "FakeNet3D"); + + Test_FakeHTTPClientPacket_JSON("cm?cmnd=SSID1%20newApName"); + SELFTEST_ASSERT_JSON_VALUE_STRING(0, "SSID1", "newApName"); + // causes assert + //SELFTEST_ASSERT_JSON_VALUE_STRING(0, "SSID1", "newAcName"); +} + +#endif diff --git a/src/selftest/selftest_local.h b/src/selftest/selftest_local.h index b3ccf9334..ac0ee0c5d 100644 --- a/src/selftest/selftest_local.h +++ b/src/selftest/selftest_local.h @@ -90,6 +90,7 @@ void Test_Demo_SimpleShuttersScript(); void Test_Commands_Generic(); void Test_ChangeHandlers_MQTT(); void Test_Commands_Calendar(); +void Test_CFG_Via_HTTP(); void Test_GetJSONValue_Setup(const char *text); void Test_FakeHTTPClientPacket_GET(const char *tg); diff --git a/src/win_main.c b/src/win_main.c index 4340c5011..364fd5c60 100644 --- a/src/win_main.c +++ b/src/win_main.c @@ -124,6 +124,7 @@ void SIM_DoFreshOBKBoot() { Main_Init(); } void Win_DoUnitTests() { + Test_CFG_Via_HTTP(); Test_Commands_Calendar(); Test_Commands_Generic(); Test_Demo_SimpleShuttersScript(); @@ -294,7 +295,7 @@ int __cdecl main(int argc, char **argv) SIM_CreateWindow(argc, argv); -#if 0 +#if 1 CMD_ExecuteCommand("MQTTHost 192.168.0.113", 0); CMD_ExecuteCommand("MqttPassword ma1oovoo0pooTie7koa8Eiwae9vohth1vool8ekaej8Voohi7beif5uMuph9Diex", 0); CMD_ExecuteCommand("MqttClient WindowsOBK", 0);