X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fnet%2Fhttp_test.c;h=f0dbbf49cdddd42c6a19dd9d0ab83e4c384ee512;hb=ee52abf7300bb120fa17966d581afe1938b2d0e8;hp=1636cf904d4d5ecdb3d5d84783d9874d9e7d44b3;hpb=04145828dccb10843ca8fdc3b9d1951933362c92;p=bertos.git diff --git a/bertos/net/http_test.c b/bertos/net/http_test.c index 1636cf90..f0dbbf49 100644 --- a/bertos/net/http_test.c +++ b/bertos/net/http_test.c @@ -33,6 +33,8 @@ * \brief HTTP Server test * * \author Daniele Basile + * + * notest: avr */ #include @@ -73,6 +75,40 @@ static const char uri_check[] = "test[]!@;'\"\\. "; static const char uri1[] = "!*'();:@&=%2B%24%2C/?#%5B%5D%3C%3E%7E.%22%7B%7D%7C%5C-%60_%5E%25"; static const char uri_check1[] = "!*'();:@&=+$,/?#[]<>~.\"{}|\\-`_^%"; +static const char uri2[] = "test+test1+test2"; +static const char uri_check2[] = "test test1 test2"; + +static char token_str[] = "var1=1&var2=2&var3=3&var4=4"; +static char token_str1[] = "var1=1&var2=2&=3&var4="; +static char token_str2[] = "var1=test+test&var2=2&var3=test%5B%5D!@;'%22%5C.%20&var4=4"; + +static struct {const char *content;} contents[] = +{ + {"one/two/three/test"}, + {"one/two/three.htm"}, + {"one/test.css"}, + {"one/two/test.js"}, + {"one/two/test.png"}, + {"one/two/test.ico"}, + {"one/two/test.jpg"}, + {"one/two/test.gif"}, +}; + + +static int contents_check_type[] = +{ + HTTP_CONTENT_JSON, + HTTP_CONTENT_HTML, + HTTP_CONTENT_CSS, + HTTP_CONTENT_JS, + HTTP_CONTENT_PNG, + HTTP_CONTENT_JPEG, + HTTP_CONTENT_JPEG, + HTTP_CONTENT_GIF, +}; + +#define CONTENT_TEST_CNT 8 + int http_testSetup(void) { @@ -120,7 +156,7 @@ int http_testRun(void) char decoded[sizeof(uri)]; - http_decodeUri(uri,sizeof(uri), decoded, sizeof(uri)); + http_decodeUrl(uri,sizeof(uri), decoded, sizeof(uri)); if (strcmp(decoded, uri_check)) { @@ -129,7 +165,7 @@ int http_testRun(void) } char decoded1[sizeof(uri1)]; - http_decodeUri(uri1,sizeof(uri1), decoded1, sizeof(uri1)); + http_decodeUrl(uri1,sizeof(uri1), decoded1, sizeof(uri1)); if (strcmp(decoded1, uri_check1)) { @@ -137,6 +173,116 @@ int http_testRun(void) goto error; } + char decoded2[sizeof(uri2)]; + http_decodeUrl(uri2,sizeof(uri2), decoded2, sizeof(uri2)); + + if (strcmp(decoded2, uri_check2)) + { + kprintf("error 5 %s\n", decoded2); + goto error; + } + + int len = http_tokenizeGetRequest(token_str, sizeof(token_str)); + if (len != 4) + { + kprintf("error 6 len %d expect %d\n", len, 4); + goto error; + } + + char value[80]; + http_getValue(token_str, sizeof(token_str), "var1", value, sizeof(value)); + if (strcmp(value, "1")) + { + kprintf("error 6 value %s expect %s\n", value, "1"); + goto error; + + } + + http_getValue(token_str, sizeof(token_str), "var4", value, sizeof(value)); + if (strcmp(value, "4")) + { + kprintf("error 6 value %s expect %s\n", value, "4"); + goto error; + + } + + + len = http_tokenizeGetRequest(token_str1, sizeof(token_str1)); + if (len != 4) + { + kprintf("error 7 len %d expect %d\n", len, 4); + goto error; + } + + if (http_getValue(token_str1, sizeof(token_str1), "var1", value, sizeof(value)) < 0) + { + kprintf("error 7 during get key %s\n", "var1"); + goto error; + } + if (strcmp(value, "1")) + { + kprintf("error 7 value %s expect %s\n", value, "1"); + goto error; + + } + + if (http_getValue(token_str1, sizeof(token_str1), "var4", value, sizeof(value)) < 0) + { + kprintf("error 7 during get key %s\n", "var4"); + goto error; + } + + if (strcmp(value, "")) + { + kprintf("error 7 value %s expect %s\n", value, ""); + goto error; + + } + + len = http_tokenizeGetRequest(token_str2, sizeof(token_str2)); + if (len != 4) + { + kprintf("error 8 len %d expect %d\n", len, 4); + goto error; + } + + if (http_getValue(token_str2, sizeof(token_str2), "var3", value, sizeof(value)) < 0) + { + kprintf("error 8 during get key %s\n", "var3"); + goto error; + } + + if (strcmp(value, "test[]!@;'\"\\. ")) + { + kprintf("error 8 value %s expect %s\n", value, "test[]!@;'\"\\. "); + goto error; + + } + + if (http_getValue(token_str2, sizeof(token_str2), "var1", value, sizeof(value)) < 0) + { + kprintf("error 7 during get key %s\n", "var1"); + goto error; + } + if (strcmp(value, "test test")) + { + kprintf("error 7 value %s expect %s\n", value, "test test"); + goto error; + + } + + + for (int i = 0; i < CONTENT_TEST_CNT; i++) + { + int type = http_searchContentType(contents[i].content); + if (type != contents_check_type[i]) + { + kprintf("error 8-%d return type %d expect %d\n", i, type, contents_check_type[i]); + kprintf("error 8-%d ext %s\n", i, contents[i].content); + goto error; + } + } + return 0; error: