Add to and improve upon the DIAL server unit tests.

This commit is contained in:
Wesley Miaw
2019-10-07 14:39:00 -07:00
parent 96786e4545
commit 45477e443e
13 changed files with 477 additions and 176 deletions

View File

@@ -26,25 +26,26 @@
#include "../dial_data.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <ctype.h>
#include "test.h"
void test_smartstrcat() {
void test_smartstrncpy() {
char* src1 = "Hello ";
char* src2 = "world!";
char* src3 = " Trunc ated";
char dest[128] = {0, };
char* p = (char *) dest;
p = smartstrcat(p, src1, 128);
p = smartstrncpy(p, src1, 128);
EXPECT_STREQ(dest, "Hello ");
p = smartstrcat(p, src2, dest + 128 - p);
p = smartstrncpy(p, src2, dest + 128 - p);
EXPECT_STREQ(dest, "Hello world!");
p = smartstrcat(p, src3, 6);
p = smartstrncpy(p, src3, 6);
EXPECT_STREQ(dest, "Hello world! Trunc");
DONE();
@@ -63,19 +64,24 @@ void test_parse_app_name() {
char *app_name;
EXPECT((app_name = parse_app_name(NULL)), "Failed to extract app_name");
EXPECT_STREQ(app_name, "unknown");
free(app_name);
EXPECT((app_name = parse_app_name("")), "Failed to extract app_name");
EXPECT_STREQ(app_name, "unknown");
free(app_name);
EXPECT((app_name = parse_app_name("/")), "Failed to extract app_name");
EXPECT_STREQ(app_name, "unknown");
free(app_name);
EXPECT((app_name = parse_app_name("/apps/YouTube/DialData")),
"Failed to extract app_name");
EXPECT_STREQ(app_name, "YouTube");
free(app_name);
EXPECT((app_name = parse_app_name("//")), "Failed to extract app_name");
EXPECT_STREQ(app_name, "");
free(app_name);
EXPECT((app_name = parse_app_name("/invalid")),
"Failed to extract app_name");
EXPECT_STREQ(app_name, "unknown");
free(app_name);
DONE();
}
@@ -86,28 +92,52 @@ void test_parse_params() {
DIALData *result = parse_params("a=b");
EXPECT_STREQ(result->key, "a");
EXPECT_STREQ(result->value, "b");
free_dial_data(&result);
result = parse_params("?a=b");
EXPECT_STREQ(result->key, "a");
EXPECT_STREQ(result->value, "b");
free_dial_data(&result);
result = parse_params("?a=b&c=d");
EXPECT_STREQ(result->key, "c");
EXPECT_STREQ(result->value, "d");
EXPECT_STREQ(result->next->key, "a");
EXPECT_STREQ(result->next->value, "b");
free_dial_data(&result);
result = parse_params("ሳ=€");
EXPECT_STREQ(result->key, "");
EXPECT_STREQ(result->value, "");
free_dial_data(&result);
char query_string[1024] = {0, };
char *current = query_string;
for (int i = 0; i < 25; ++i) {
current = smartstrcat(current, "a=b&", 256);
current = smartstrncpy(current, "a=b&", 256);
}
result = parse_params(query_string);
int length = 0;
for (; result != NULL; result = result->next) {
for (DIALData *current = result; current != NULL; current = current->next) {
length++;
}
EXPECT((length == 25), "25 params should have been parsed");
free_dial_data(&result);
DONE();
}
void test_parse_params_malformatted() {
EXPECT(NULL == parse_params("abcdefghijkl"), "no params expected");
EXPECT(NULL == parse_params("\u2639"), "no params expected");
DONE();
}
void test_url_lib_suite() {
START_SUITE();
test_smartstrncpy();
test_urldecode();
test_parse_app_name();
test_parse_params();
test_parse_params_malformatted();
}