Add modern FTP search providers for 1.2.4
This commit is contained in:
@@ -1,3 +1,7 @@
|
||||
add_executable(url_parse_test url_parse_test.c)
|
||||
target_link_libraries(url_parse_test PRIVATE prozilla)
|
||||
add_test(NAME url_parse COMMAND url_parse_test)
|
||||
|
||||
add_executable(ftpsearch_parse_test ftpsearch_parse_test.c)
|
||||
target_link_libraries(ftpsearch_parse_test PRIVATE prozilla)
|
||||
add_test(NAME ftpsearch_parse COMMAND ftpsearch_parse_test)
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
#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;
|
||||
}
|
||||
Reference in New Issue
Block a user