Files
libprozilla/tests/ftpsearch_parse_test.c
T
2026-07-15 03:55:27 +02:00

41 lines
1.4 KiB
C

#include <assert.h>
#include <string.h>
#include "prozilla.h"
uerr_t parse_archie_json_mirror_list(ftps_request_t *request, char *data);
uerr_t parse_mamont_html_mirror_list(ftps_request_t *request, char *data);
static void init_request(ftps_request_t *request, urlinfo *requested_url)
{
memset(request, 0, sizeof(*request));
memset(requested_url, 0, sizeof(*requested_url));
requested_url->proto = URLHTTP;
request->requested_url = requested_url;
}
int main(void)
{
ftps_request_t request;
urlinfo requested_url;
char archie_json[] =
"{\"hits\":2,\"results\":["
"{\"URL\":\"ftp://ftp.example.org/pub/file.zip\"},"
"{\"URL\":\"ftps://secure.example.org/releases/file.zip\"}]}";
char mamont_html[] =
"<a href=\"ftp://mirror.example.net/dist/file.zip\">file.zip</a>";
init_request(&request, &requested_url);
assert(parse_archie_json_mirror_list(&request, archie_json) == MIRINFOK);
assert(request.num_mirrors == 2);
assert(strcmp(request.mirrors[0].server_name, "ftp.example.org") == 0);
assert(strcmp(request.mirrors[1].server_name, "secure.example.org") == 0);
init_request(&request, &requested_url);
assert(parse_mamont_html_mirror_list(&request, mamont_html) == MIRINFOK);
assert(request.num_mirrors == 1);
assert(strcmp(request.mirrors[0].server_name, "mirror.example.net") == 0);
assert(strcmp(request.mirrors[0].file_name, "file.zip") == 0);
return 0;
}