summaryrefslogtreecommitdiff
path: root/tests2/test-np.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests2/test-np.c')
-rw-r--r--tests2/test-np.c110
1 files changed, 110 insertions, 0 deletions
diff --git a/tests2/test-np.c b/tests2/test-np.c
new file mode 100644
index 00000000..ac65270f
--- /dev/null
+++ b/tests2/test-np.c
@@ -0,0 +1,110 @@
+/*
+ * Copyright(c) 2014 Tim Ruehsen
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ *
+ * Testing Wget
+ *
+ * Changelog
+ * 02.07.2014 Tim Ruehsen created
+ *
+ */
+
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdlib.h> // exit()
+#include "libtest.h"
+
+int main(void)
+{
+ wget_test_url_t urls[]={
+ { .name = "/firstlevel/index.html",
+ .code = "200 Dontcare",
+ .body =
+ "<html><head><title>Main Page</title></head><body><p>A link to a" \
+ " <A hreF=\"http://localhost:{{port}}/firstlevel/secondpage.html\">second page</a>." \
+ " <a href=\"file://path/file_to_be_ignored.txt\">Unsupported file scheme</a>." \
+ "</p></body></html>",
+ .headers = {
+ "Content-Type: text/html",
+ }
+ },
+ { .name = "/firstlevel/secondpage.html",
+ .code = "200 Dontcare",
+ .body =
+ "<html><head><title>Second Page</title></head><body><p>A link to a" \
+ " <a hRef=\"http://localhost:{{port}}/firstlevel/lowerlevel/thirdpage.html\">third page</a>." \
+ "</p></body></html>",
+ .headers = {
+ "Content-Type: text/html",
+ }
+ },
+ { .name = "/firstlevel/lowerlevel/thirdpage.html",
+ .code = "200 Dontcare",
+ .body =
+ "<html><head><title>Third Page</title></head><body><p>A link to a" \
+ " <A href=\"http://localhost:{{port}}/higherlevelpage.html\">higher level page</a>." \
+ "</p></body></html>",
+ .headers = {
+ "Content-Type: text/html",
+ }
+ },
+ { .name = "/firstlevel/fourthpage.html",
+ .code = "200 Dontcare",
+ .body =
+ "<html><head><title>Fourth Page</title></head><body><p>" \
+ "This page is only linked by the higher level page. Therefore, it should not be downloaded." \
+ "</p></body></html>",
+ .headers = {
+ "Content-Type: text/html",
+ }
+ },
+ { .name = "/higherlevelpage.html",
+ .code = "200 Dontcare",
+ .body =
+ "<html><head><title>Higher Level Page</title></head><body><p>" \
+ "This page is on a higher level in the URL path hierarchy. Therefore, it" \
+ "should not be downloaded. Wget should not visit the following link to a" \
+ " <a Href=\"http://localhost:{{port}}/firstlevel/fourthpage.html\">fourth page</a>." \
+ "</p></body></html>",
+ .headers = {
+ "Content-Type: text/html",
+ }
+ },
+ };
+
+ // functions won't come back if an error occurs
+ wget_test_start_server(
+ WGET_TEST_RESPONSE_URLS, &urls, countof(urls),
+ 0);
+
+ // test-i
+ wget_test(
+ WGET_TEST_OPTIONS, "-np -nH -r",
+ WGET_TEST_REQUEST_URL, "firstlevel/",
+ 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 },
+ { urls[2].name + 1, urls[2].body },
+ { NULL } },
+ 0);
+
+ exit(0);
+}