Ver Fonte

Add unit test for mg_get_response_code_text

bel há 9 anos atrás
pai
commit
46dd95298f
2 ficheiros alterados com 40 adições e 0 exclusões
  1. 6 0
      src/civetweb.c
  2. 34 0
      test/public_func.c

+ 6 - 0
src/civetweb.c

@@ -2431,6 +2431,12 @@ mg_get_response_code_text(int response_code, struct mg_connection *conn)
 		return "I am a teapot"; /* RFC2324 Section 2.3.2 */
 	case 419:
 		return "Authentication Timeout"; /* common use */
+	case 420:
+		return "Enhance Your Calm"; /* common use */
+	case 440:
+		return "Login Timeout"; /* common use */
+	case 509:
+		return "Bandwidth Limit Exceeded"; /* common use */
 
 	default:
 		/* This error code is unknown. This should not happen. */

+ 34 - 0
test/public_func.c

@@ -90,6 +90,7 @@ START_TEST(test_mg_version)
 }
 END_TEST
 
+
 START_TEST(test_mg_get_valid_options)
 {
 	int i;
@@ -107,6 +108,7 @@ START_TEST(test_mg_get_valid_options)
 }
 END_TEST
 
+
 START_TEST(test_mg_get_builtin_mime_type)
 {
 	ck_assert_str_eq(mg_get_builtin_mime_type("x.txt"), "text/plain");
@@ -119,6 +121,7 @@ START_TEST(test_mg_get_builtin_mime_type)
 }
 END_TEST
 
+
 START_TEST(test_mg_strncasecmp)
 {
 	ck_assert(mg_strncasecmp("abc", "abc", 3) == 0);
@@ -146,6 +149,7 @@ START_TEST(test_mg_strncasecmp)
 }
 END_TEST
 
+
 START_TEST(test_mg_get_cookie)
 {
 	char buf[32];
@@ -212,6 +216,7 @@ START_TEST(test_mg_get_cookie)
 }
 END_TEST
 
+
 START_TEST(test_mg_get_var)
 {
 	char buf[32];
@@ -320,6 +325,7 @@ START_TEST(test_mg_get_var)
 }
 END_TEST
 
+
 START_TEST(test_mg_md5)
 {
 	char buf[33];
@@ -374,6 +380,7 @@ START_TEST(test_mg_md5)
 }
 END_TEST
 
+
 START_TEST(test_mg_url_encode)
 {
 	char buf[20];
@@ -396,6 +403,7 @@ START_TEST(test_mg_url_encode)
 }
 END_TEST
 
+
 START_TEST(test_mg_url_decode)
 {
 	char buf[20];
@@ -423,6 +431,27 @@ START_TEST(test_mg_url_decode)
 }
 END_TEST
 
+
+START_TEST(test_mg_get_response_code_text)
+{
+	size_t i, j, len;
+	const char *resp;
+
+	for (i = 100; i < 600; i++) {
+		resp = mg_get_response_code_text(i, NULL);
+		ck_assert_ptr_ne(resp, NULL);
+		len = strlen(resp);
+		ck_assert_uint_gt(len, 1);
+		ck_assert_uint_lt(len, 32);
+		for (j = 0; j < len; j++) {
+			ck_assert(resp[j] == ' ' || (resp[j] >= 'A' && resp[j] <= 'Z')
+			          || (resp[j] >= 'a' && resp[j] <= 'z'));
+		}
+	}
+}
+END_TEST
+
+
 Suite *
 make_public_func_suite(void)
 {
@@ -436,6 +465,7 @@ make_public_func_suite(void)
 	    tcase_create("URL encoding decoding");
 	TCase *const tcase_cookies = tcase_create("Cookies and variables");
 	TCase *const tcase_md5 = tcase_create("MD5");
+    TCase *const tcase_aux = tcase_create("Aux functions");
 
 	tcase_add_test(tcase_version, test_mg_version);
 	tcase_set_timeout(tcase_version, civetweb_min_test_timeout);
@@ -467,5 +497,9 @@ make_public_func_suite(void)
 	tcase_set_timeout(tcase_md5, civetweb_min_test_timeout);
 	suite_add_tcase(suite, tcase_md5);
 
+	tcase_add_test(tcase_aux, test_mg_get_response_code_text);
+	tcase_set_timeout(tcase_aux, civetweb_min_test_timeout);
+	suite_add_tcase(suite, tcase_aux);
+
 	return suite;
 }