/* * Copyright(c) 2013 Tim Ruehsen * Copyright(c) 2015-2016 Free Software Foundation, Inc. * * This file is part of libwget. * * Libwget is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Libwget is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with libwget. If not, see . * * * Testing Wget * * Changelog * 17.07.2013 Tim Ruehsen created * */ #include #include // exit() #include "libtest.h" #define ccedilla_l15 "\xE7" #define ccedilla_u8 "\xC3\xA7" #define eacute_l15 "\xE9" #define eacute_u8 "\xC3\xA9" #define eurosign_l15 "\xA4" #define eurosign_u8 "\xE2\x82\xAC" int main(void) { wget_test_url_t urls[]={ { .name = "/index.html", .code = "200 Dontcare", .body = "Link to page 1 La seule page en français." \ "Link to page 3 My tailor is rich.", .headers = { "Content-type: text/html; charset=ISO-8859-15", } }, { .name = "/robots.txt", .code = "200 Dontcare", .body = "", .headers = { "Content-type: text/plain", } }, { .name = "/p1_fran%E7ais.html", .code = "404 Not found", .body = "404

What ever

", .headers = { "Content-type: text/html; charset=UTF-8", } }, { .name = "/p1_fran%C3%A7ais.html", // UTF-8 encoded .code = "200 Dontcare", .body = "La seule page en fran" ccedilla_l15 "ais" \ "" \ "

Link to page 2 Die enkele nerderlangstalige pagina." \ "

", .headers = { "Content-type: text/html; charset=ISO-8859-15", // server response overrides META charset attribute } }, { .name = "/p2_%C3%A9%C3%A9n.html", // UTF-8 encoded .code = "200 Dontcare", .body = "Die enkele nederlandstalige pagina" \ "" \ "

Één is niet veel maar toch meer dan nul.
" \ "Nerdelands is een mooie taal... dit zin stuckje spreekt vanzelf, of niet :)
" \ "Méér" \ "

", .headers = { "Content-type: text/html; charset=UTF-8", // server response overrides META charset attribute }, }, { .name = "/p3_%E2%82%AC%E2%82%AC%E2%82%AC.html", // UTF-8 encoded .code = "200 Dontcare", .body = "Euro page" \ "" \ "

My tailor isn't rich anymore.

", .headers = { "Content-type: text/plain; charset=ISO-8859-15", }, }, { .name = "/p3_%A4%A4%A4.html", .code = "200 Dontcare", .body = "Euro page" \ "" \ "

My tailor isn't rich anymore.

", .headers = { "Content-type: text/plain; charset=ISO-8859-15", }, }, { .name = "/p4_m%C3%A9%C3%A9r.html", .code = "200 Dontcare", .body = "Bekende supermarkt" \ "

Ik ben toch niet gek !

", .headers = { "Content-type: text/plain; charset=UTF-8", }, }, }; char request_header[256]; // functions won't come back if an error occurs wget_test_start_server( WGET_TEST_RESPONSE_URLS, &urls, countof(urls), 0); // test-iri snprintf(request_header, sizeof(request_header), "Referer: http://localhost:%d/p2_%%C3%%A9%%C3%%A9n.html", wget_test_get_http_server_port()); urls[4].request_headers[0] = urls[7].request_headers[0] = request_header; wget_test( // WGET_TEST_KEEP_TMPFILES, 1, WGET_TEST_OPTIONS, "--iri -e robots=on --trust-server-names --local-encoding=utf-8 --restrict-file-names=nocontrol -nH -r", WGET_TEST_REQUEST_URL, "index.html", WGET_TEST_EXPECTED_ERROR_CODE, 0, WGET_TEST_EXPECTED_FILES, &(wget_test_file_t []) { { urls[0].name + 1, urls[0].body }, { urls[1].name + 1, urls[1].body }, { "p1_fran" ccedilla_u8 "ais.html", urls[3].body }, { "p2_" eacute_u8 eacute_u8 "n.html", urls[4].body }, { "p3_" eurosign_u8 eurosign_u8 eurosign_u8 ".html", urls[5].body }, { "p4_m" eacute_u8 eacute_u8 "r.html", urls[7].body }, { NULL } }, 0); exit(0); }