mirror of
https://github.com/Netflix/dial-reference.git
synced 2026-06-09 19:29:59 +00:00
Add to and improve upon the DIAL server unit tests.
This commit is contained in:
@@ -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();
|
||||
}
|
||||
Reference in New Issue
Block a user