summaryrefslogtreecommitdiffstats
path: root/test/t2600-rendercomment.t
diff options
context:
space:
mode:
authorFrédéric Mangano-Tarumi <fmang@mg0.fr>2020-02-23 19:53:13 +0100
committerLukas Fleischer <lfleischer@archlinux.org>2020-02-27 16:44:36 +0100
commite374a91febe53b72ff4cb73b153348f067374c68 (patch)
tree038973590aace5ba4f4899cc256d843ef2505867 /test/t2600-rendercomment.t
parent81d55e70ee0469018af86d203ceaf2fece691ea8 (diff)
downloadaur-e374a91febe53b72ff4cb73b153348f067374c68.tar.gz
aur-e374a91febe53b72ff4cb73b153348f067374c68.tar.xz
Change the extension of TAP test suites to .t
This is the common convention for TAP, and makes harnesses like prove automatically detect them. Plus, test suites don’t have to be shell scripts anymore. Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
Diffstat (limited to 'test/t2600-rendercomment.t')
-rwxr-xr-xtest/t2600-rendercomment.t160
1 files changed, 160 insertions, 0 deletions
diff --git a/test/t2600-rendercomment.t b/test/t2600-rendercomment.t
new file mode 100755
index 00000000..be408b80
--- /dev/null
+++ b/test/t2600-rendercomment.t
@@ -0,0 +1,160 @@
+#!/bin/sh
+
+test_description='rendercomment tests'
+
+. ./setup.sh
+
+test_expect_success 'Test comment rendering.' '
+ cat <<-EOD | sqlite3 aur.db &&
+ INSERT INTO PackageBases (ID, Name, PackagerUID, SubmittedTS, ModifiedTS, FlaggerComment) VALUES (1, "foobar", 1, 0, 0, "");
+ INSERT INTO PackageComments (ID, PackageBaseID, Comments, RenderedComment) VALUES (1, 1, "Hello world!
+ This is a comment.", "");
+ EOD
+ "$RENDERCOMMENT" 1 &&
+ cat <<-EOD >expected &&
+ <p>Hello world!
+ This is a comment.</p>
+ EOD
+ cat <<-EOD | sqlite3 aur.db >actual &&
+ SELECT RenderedComment FROM PackageComments WHERE ID = 1;
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test Markdown conversion.' '
+ cat <<-EOD | sqlite3 aur.db &&
+ INSERT INTO PackageComments (ID, PackageBaseID, Comments, RenderedComment) VALUES (2, 1, "*Hello* [world](https://www.archlinux.org/)!", "");
+ EOD
+ "$RENDERCOMMENT" 2 &&
+ cat <<-EOD >expected &&
+ <p><em>Hello</em> <a href="https://www.archlinux.org/">world</a>!</p>
+ EOD
+ cat <<-EOD | sqlite3 aur.db >actual &&
+ SELECT RenderedComment FROM PackageComments WHERE ID = 2;
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test HTML sanitizing.' '
+ cat <<-EOD | sqlite3 aur.db &&
+ INSERT INTO PackageComments (ID, PackageBaseID, Comments, RenderedComment) VALUES (3, 1, "<script>alert(""XSS!"");</script>", "");
+ EOD
+ "$RENDERCOMMENT" 3 &&
+ cat <<-EOD >expected &&
+ &lt;script&gt;alert("XSS!");&lt;/script&gt;
+ EOD
+ cat <<-EOD | sqlite3 aur.db >actual &&
+ SELECT RenderedComment FROM PackageComments WHERE ID = 3;
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test link conversion.' '
+ cat <<-EOD | sqlite3 aur.db &&
+ INSERT INTO PackageComments (ID, PackageBaseID, Comments, RenderedComment) VALUES (4, 1, "
+ Visit https://www.archlinux.org/#_test_.
+ Visit *https://www.archlinux.org/*.
+ Visit <https://www.archlinux.org/>.
+ Visit \`https://www.archlinux.org/\`.
+ Visit [Arch Linux](https://www.archlinux.org/).
+ Visit [Arch Linux][arch].
+ [arch]: https://www.archlinux.org/
+ ", "");
+ EOD
+ "$RENDERCOMMENT" 4 &&
+ cat <<-EOD >expected &&
+ <p>Visit <a href="https://www.archlinux.org/#_test_">https://www.archlinux.org/#_test_</a>.
+ Visit <em><a href="https://www.archlinux.org/">https://www.archlinux.org/</a></em>.
+ Visit <a href="https://www.archlinux.org/">https://www.archlinux.org/</a>.
+ Visit <code>https://www.archlinux.org/</code>.
+ Visit <a href="https://www.archlinux.org/">Arch Linux</a>.
+ Visit <a href="https://www.archlinux.org/">Arch Linux</a>.</p>
+ EOD
+ cat <<-EOD | sqlite3 aur.db >actual &&
+ SELECT RenderedComment FROM PackageComments WHERE ID = 4;
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test Git commit linkification.' '
+ local oid=`git -C aur.git rev-parse --verify HEAD`
+ cat <<-EOD | sqlite3 aur.db &&
+ INSERT INTO PackageComments (ID, PackageBaseID, Comments, RenderedComment) VALUES (5, 1, "
+ $oid
+ ${oid:0:7}
+ x.$oid.x
+ ${oid}x
+ 0123456789abcdef
+ \`$oid\`
+ http://example.com/$oid
+ ", "");
+ EOD
+ "$RENDERCOMMENT" 5 &&
+ cat <<-EOD >expected &&
+ <p><a href="https://aur.archlinux.org/cgit/aur.git/log/?h=foobar&amp;id=${oid:0:12}">${oid:0:12}</a>
+ <a href="https://aur.archlinux.org/cgit/aur.git/log/?h=foobar&amp;id=${oid:0:7}">${oid:0:7}</a>
+ x.<a href="https://aur.archlinux.org/cgit/aur.git/log/?h=foobar&amp;id=${oid:0:12}">${oid:0:12}</a>.x
+ ${oid}x
+ 0123456789abcdef
+ <code>$oid</code>
+ <a href="http://example.com/$oid">http://example.com/$oid</a></p>
+ EOD
+ cat <<-EOD | sqlite3 aur.db >actual &&
+ SELECT RenderedComment FROM PackageComments WHERE ID = 5;
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test Flyspray issue linkification.' '
+ sqlite3 aur.db <<-EOD &&
+ INSERT INTO PackageComments (ID, PackageBaseID, Comments, RenderedComment) VALUES (6, 1, "
+ FS#1234567.
+ *FS#1234*
+ FS#
+ XFS#1
+ \`FS#1234\`
+ https://archlinux.org/?test=FS#1234
+ ", "");
+ EOD
+ "$RENDERCOMMENT" 6 &&
+ cat <<-EOD >expected &&
+ <p><a href="https://bugs.archlinux.org/task/1234567">FS#1234567</a>.
+ <em><a href="https://bugs.archlinux.org/task/1234">FS#1234</a></em>
+ FS#
+ XFS#1
+ <code>FS#1234</code>
+ <a href="https://archlinux.org/?test=FS#1234">https://archlinux.org/?test=FS#1234</a></p>
+ EOD
+ sqlite3 aur.db <<-EOD >actual &&
+ SELECT RenderedComment FROM PackageComments WHERE ID = 6;
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test headings lowering.' '
+ sqlite3 aur.db <<-EOD &&
+ INSERT INTO PackageComments (ID, PackageBaseID, Comments, RenderedComment) VALUES (7, 1, "
+ # One
+ ## Two
+ ### Three
+ #### Four
+ ##### Five
+ ###### Six
+ ", "");
+ EOD
+ "$RENDERCOMMENT" 7 &&
+ cat <<-EOD >expected &&
+ <h5>One</h5>
+ <h6>Two</h6>
+ <h6>Three</h6>
+ <h6>Four</h6>
+ <h6>Five</h6>
+ <h6>Six</h6>
+ EOD
+ sqlite3 aur.db <<-EOD >actual &&
+ SELECT RenderedComment FROM PackageComments WHERE ID = 7;
+ EOD
+ test_cmp actual expected
+'
+
+test_done