summaryrefslogtreecommitdiff
path: root/tests2/test-parse-rss.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests2/test-parse-rss.c')
-rw-r--r--tests2/test-parse-rss.c99
1 files changed, 99 insertions, 0 deletions
diff --git a/tests2/test-parse-rss.c b/tests2/test-parse-rss.c
new file mode 100644
index 00000000..0c0a7ef6
--- /dev/null
+++ b/tests2/test-parse-rss.c
@@ -0,0 +1,99 @@
+/*
+ * Copyright(c) 2013 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
+ * 25.12.2013 Tim Ruehsen created
+ *
+ */
+
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdlib.h> // exit()
+#include <string.h> // strlen()
+#include "libtest.h"
+
+int main(void)
+{
+ wget_test_url_t urls[]={
+ { .name = "/main.rss",
+ .body =
+"<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
+"<channel>"\
+"<title>Da title</title>"\
+"<link>http://localhost:{{port}}/page1.html</link>"\
+"<description>Nice article</description>"\
+"<item>"\
+"<title>Item title</title>"\
+"<link>http://localhost:{{port}}/page2.html</link>"\
+"<pubDate>Sun, 01 Sep 2013 18:41:05 -0700</pubDate>"\
+"<guid isPermaLink=\"true\">http://localhost:{{port}}/page3.html</guid>"\
+"<description>item description</description>"\
+"</item></channel></rss>",
+ },
+ { .name = "/page1.html",
+ .code = "200 Dontcare",
+ .body = "<html>hello1</html>",
+ .headers = {
+ "Content-Type: text/html",
+ }
+ },
+ { .name = "/page2.html",
+ .code = "200 Dontcare",
+ .body = "<html>hello2</html>",
+ .headers = {
+ "Content-Type: text/html",
+ }
+ },
+ { .name = "/page3.html",
+ .code = "200 Dontcare",
+ .body = "<html>hello3</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--parse-rss
+ wget_test(
+ // WGET_TEST_KEEP_TMPFILES, 1,
+ WGET_TEST_OPTIONS, "--force-rss -i main.rss",
+ WGET_TEST_REQUEST_URL, NULL,
+ WGET_TEST_EXPECTED_ERROR_CODE, 0,
+ WGET_TEST_EXISTING_FILES, &(wget_test_file_t []) {
+ { "main.rss", urls[0].body },
+ { NULL } },
+ 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 },
+ { urls[3].name + 1, urls[3].body },
+ { NULL } },
+ 0);
+
+ exit(0);
+}