Files
maze32/test/host/test_provisioning_protocol.c

41 lines
1.3 KiB
C

#include <assert.h>
#include <stdio.h>
#include <string.h>
#include "maze32_provisioning_protocol.h"
static void accept(const char *json, const char *ssid, const char *password)
{
maze32_wifi_credentials_t credentials;
assert(maze32_provisioning_parse_credentials(json, strlen(json), &credentials));
assert(strcmp(credentials.ssid, ssid) == 0);
assert(strcmp(credentials.password, password) == 0);
}
static void reject(const char *json)
{
maze32_wifi_credentials_t credentials;
assert(!maze32_provisioning_parse_credentials(json, strlen(json), &credentials));
}
int main(void)
{
accept("{\"ssid\":\"Maze WiFi\",\"password\":\"password8\"}",
"Maze WiFi", "password8");
accept(" { \"password\" : \"quote\\\"pass\" , \"ssid\" : \"Maze\" } ",
"Maze", "quote\"pass");
accept("{\"ssid\":\"Open\",\"password\":\"\"}", "Open", "");
reject("{}");
reject("{\"ssid\":\"Maze\"}");
reject("{\"ssid\":\"Maze\",\"password\":\"short\"}");
reject("{\"ssid\":\"Maze\",\"password\":\"password8\",\"extra\":1}");
reject("{\"ssid\":12,\"password\":\"password8\"}");
reject("{\"ssid\":\"Maze\\nBad\",\"password\":\"password8\"}");
reject("{\"ssid\":\"Maze\",\"ssid\":\"Again\"}");
reject("not-json");
puts("provisioning protocol tests: PASS");
return 0;
}