sfeed_update: add some tests, needs cleaning up - sfeed_tests - sfeed tests and RSS and Atom files
(HTM) git clone git://git.codemadness.org/sfeed_tests
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 5ea2db480c389f7db699fb4354f7679c8849a9eb
(DIR) parent d8e5c3bd772a5480dff77936b2642e496e741e38
(HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Thu, 14 Dec 2023 23:29:26 +0100
sfeed_update: add some tests, needs cleaning up
Diffstat:
A input/sfeed_update/decoding/invali… | 28 ++++++++++++++++++++++++++++
A input/sfeed_update/merge/1.xml | 15 +++++++++++++++
A input/sfeed_update/merge/2.xml | 15 +++++++++++++++
A input/sfeed_update/merge/README | 4 ++++
A input/sfeed_update/merge/empty.xml | 5 +++++
A input/sfeed_update/merge/run.sh | 4 ++++
A input/sfeed_update/merge/sfeedrc.1 | 7 +++++++
A input/sfeed_update/merge/sfeedrc.2 | 14 ++++++++++++++
A input/sfeed_update/merge/sfeedrc.e… | 9 +++++++++
9 files changed, 101 insertions(+), 0 deletions(-)
---
(DIR) diff --git a/input/sfeed_update/decoding/invalid_decode.sh b/input/sfeed_update/decoding/invalid_decode.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+# test decoding a feed.
+# test invalid characters, invalid text-encoding names, etc.
+
+tmppath=$(mktemp -d)
+tmpfeed="/tmp/testfeed.$$"
+tmprc="/tmp/sfeedrc.$$"
+
+printf '\x80' > "${tmpfeed}"
+printf 'abc' > "${tmpfeed}2"
+printf 'abc' > "${tmpfeed}3" # OK
+printf '%s\n' '<?xml version="1.0" encoding="UTF-8"?>' > "${tmpfeed}4" # OK
+printf '%s\n' '<?xml version="1.0" encoding="UTF-69"?>' > "${tmpfeed}5"
+
+cat > "$tmprc" <<!__EOF__
+sfeedpath="$tmppath"
+
+feeds() {
+ # feed <name> <url> [baseurl] [encoding]
+ feed "testfeed" "file://$tmpfeed" "" "utf-16"
+ feed "testfeed2" "file://${tmpfeed}2" "" "invalid-name"
+ feed "testfeed3" "file://${tmpfeed}3"
+ feed "testfeed4" "file://${tmpfeed}4"
+ feed "testfeed5" "file://${tmpfeed}5" "" "utf-69" # override encoding, invalid name so should fail.
+}
+!__EOF__
+
+sfeed_update "$tmprc"
(DIR) diff --git a/input/sfeed_update/merge/1.xml b/input/sfeed_update/merge/1.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<rss version="2.0">
+ <channel>
+ <item>
+ <title>item 1</title>
+ <link>https://a/</link>
+ <description>abc</description>
+ </item>
+ <item>
+ <title>item 2</title>
+ <link>https://a/</link>
+ <description>abc</description>
+ </item>
+ </channel>
+</rss>
(DIR) diff --git a/input/sfeed_update/merge/2.xml b/input/sfeed_update/merge/2.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<rss version="2.0">
+ <channel>
+ <item>
+ <title>item 1</title>
+ <link>https://a/</link>
+ <description>abc 2</description>
+ </item>
+ <item>
+ <title>item 2</title>
+ <link>https://a/</link>
+ <description>abc 2</description>
+ </item>
+ </channel>
+</rss>
(DIR) diff --git a/input/sfeed_update/merge/README b/input/sfeed_update/merge/README
@@ -0,0 +1,4 @@
+Test for overriden the merge logic.
+
+This test makes sure on each content update a new item is made (-k4,4r).
+It is not the default.
(DIR) diff --git a/input/sfeed_update/merge/empty.xml b/input/sfeed_update/merge/empty.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<rss version="2.0">
+ <channel>
+ </channel>
+</rss>
(DIR) diff --git a/input/sfeed_update/merge/run.sh b/input/sfeed_update/merge/run.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+sfeed_update sfeedrc.1
+sfeed_update sfeedrc.2
+sfeed_update sfeedrc.empty
(DIR) diff --git a/input/sfeed_update/merge/sfeedrc.1 b/input/sfeed_update/merge/sfeedrc.1
@@ -0,0 +1,7 @@
+sfeedpath="`pwd`/output"
+
+# list of feeds to fetch:
+feeds() {
+ # feed <name> <feedurl> [basesiteurl] [encoding]
+ feed "test" "file:///`pwd`/1.xml"
+}
(DIR) diff --git a/input/sfeed_update/merge/sfeedrc.2 b/input/sfeed_update/merge/sfeedrc.2
@@ -0,0 +1,14 @@
+sfeedpath="`pwd`/output"
+
+# merge raw files: unique sort by id, title, link.
+# merge(name, oldfile, newfile)
+merge() {
+ # NOTE: added -k4,4r
+ sort -t ' ' -u -k6,6 -k2,2 -k3,3 -k4,4r "$2" "$3" 2>/dev/null
+}
+
+# list of feeds to fetch:
+feeds() {
+ # feed <name> <feedurl> [basesiteurl] [encoding]
+ feed "test" "file:///`pwd`/2.xml"
+}
(DIR) diff --git a/input/sfeed_update/merge/sfeedrc.empty b/input/sfeed_update/merge/sfeedrc.empty
@@ -0,0 +1,9 @@
+sfeedpath="`pwd`/output"
+
+rm -f "$sfeedpath/empty"
+
+# list of feeds to fetch:
+feeds() {
+ # feed <name> <feedurl> [basesiteurl] [encoding]
+ feed "test_empty" "file:///`pwd`/empty.xml"
+}