41 lines
1.4 KiB
C
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;
|
|
}
|