Explorar o código

Add unit test for new helper function (#856)

bel2125 %!s(int64=5) %!d(string=hai) anos
pai
achega
d26f9c0a7e
Modificáronse 2 ficheiros con 13 adicións e 4 borrados
  1. 4 4
      src/civetweb.c
  2. 9 0
      unittest/private.c

+ 4 - 4
src/civetweb.c

@@ -7205,7 +7205,7 @@ mg_url_decode(const char *src,
 
 
 /* form url decoding of an entire string */
-void
+static void
 url_decode_in_place(char *buf)
 {
 	size_t len = strlen(buf);
@@ -7318,7 +7318,7 @@ mg_split_form_encoded(char *data,
 			/* skip initial spaces */
 			data++;
 		}
-		if (*data = 0) {
+		if (*data == 0) {
 			/* end of string reached */
 			break;
 		}
@@ -7352,8 +7352,8 @@ mg_split_form_encoded(char *data,
 
 	/* Decode all values */
 	for (i = 0; i < num; i++) {
-		url_decode_in_place(form_fields[num].name);
-		url_decode_in_place(form_fields[num].value);
+		url_decode_in_place((char*)form_fields[num].name);
+		url_decode_in_place((char *)form_fields[num].value);
 	}
 
 	/* return number of fields found */

+ 9 - 0
unittest/private.c

@@ -804,6 +804,15 @@ START_TEST(test_encode_decode)
 	ck_assert_int_eq(ret, (int)strlen(nonalpha));
 	ck_assert_str_eq(buf, nonalpha);
 
+	/* Test url_decode_in_place */
+	strcpy(buf, "AbcDef");
+	url_decode_in_place(buf);
+	ck_assert_str_eq(buf, "AbcDef");
+
+	strcpy(buf, "A%20B+C");
+	url_decode_in_place(buf);
+	ck_assert_str_eq(buf, "A B C");
+
 	/* len could be unused, if base64_decode is not tested because USE_LUA is
 	 * not defined */
 	(void)len;