aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael G. Martins <rafael@rafaelmartins.eng.br>2018-03-20 23:07:26 +0100
committerRafael G. Martins <rafael@rafaelmartins.eng.br>2018-03-20 23:07:26 +0100
commit954d0f9dc63ada44926972a40f2a190ab4561b98 (patch)
tree2a28be8556289d6934f9b4e0a29edad01de27cce
parent14b3aea798c0999f56a5555d90db3c332966d085 (diff)
downloadblogc-954d0f9dc63ada44926972a40f2a190ab4561b98.tar.gz
blogc-954d0f9dc63ada44926972a40f2a190ab4561b98.tar.bz2
blogc-954d0f9dc63ada44926972a40f2a190ab4561b98.zip
make: fixed pagination, added tests
-rw-r--r--src/blogc-make/rules.c4
-rwxr-xr-xtests/blogc-make/check_blogc_make.sh.in377
2 files changed, 379 insertions, 2 deletions
diff --git a/src/blogc-make/rules.c b/src/blogc-make/rules.c
index e22fbea..8464bd2 100644
--- a/src/blogc-make/rules.c
+++ b/src/blogc-make/rules.c
@@ -42,12 +42,12 @@ posts_pagination(bm_ctx_t *ctx, bc_trie_t *variables, const char *variable)
return; // something is wrong, let's not add any variable
long posts_per_page = strtol(
- bc_trie_lookup(ctx->settings->settings, "posts_per_page"),
+ bc_trie_lookup(ctx->settings->settings, variable),
NULL, 10); // FIXME: improve
if (posts_per_page >= 0) {
bc_trie_insert(variables, "FILTER_PAGE", bc_strdup("1"));
bc_trie_insert(variables, "FILTER_PER_PAGE",
- bc_strdup(bc_trie_lookup(ctx->settings->settings, "posts_per_page")));
+ bc_strdup(bc_trie_lookup(ctx->settings->settings, variable)));
}
}
diff --git a/tests/blogc-make/check_blogc_make.sh.in b/tests/blogc-make/check_blogc_make.sh.in
index d27c3c0..001241a 100755
--- a/tests/blogc-make/check_blogc_make.sh.in
+++ b/tests/blogc-make/check_blogc_make.sh.in
@@ -49,6 +49,15 @@ DATE: 2016-09-01
This is bar.
EOF
+for i in $(seq -f "%02g" 1 11); do
+ cat > "${TEMP}/proj/content/post/post${i}.txt" <<EOF
+TITLE: Post ${i}
+DATE: 2016-09-${i}
+----------------
+This is Post ${i}.
+EOF
+done
+
cat > "${TEMP}/proj/templates/main.tmpl" <<EOF
{% block listing %}
Listing: {% ifdef FILTER_TAG %}{{ FILTER_TAG }} - {% endif %}{{ TITLE }} - {{ DATE_FORMATTED }}
@@ -157,6 +166,374 @@ diff -uN "${TEMP}/proj/_build/post/bar/index.html" "${TEMP}/expected-post-bar.ht
rm -rf "${TEMP}/proj/_build"
+### default settings with some posts, posts per page -1
+
+cat > "${TEMP}/proj/blogcfile" <<EOF
+[global]
+AUTHOR_NAME = Lol
+AUTHOR_EMAIL = author@example.com
+SITE_TITLE = Lol's Website
+SITE_TAGLINE = WAT?!
+BASE_DOMAIN = http://example.org
+
+[settings]
+posts_per_page = -1
+
+[posts]
+post01
+post02
+post03
+post04
+post05
+post06
+post07
+post08
+post09
+post10
+post11
+EOF
+
+${TESTS_ENVIRONMENT} @abs_top_builddir@/blogc-make -f "${TEMP}/proj/blogcfile" 2>&1 | tee "${TEMP}/output.txt"
+grep "_build/index\\.html" "${TEMP}/output.txt"
+grep "_build/atom\\.xml" "${TEMP}/output.txt"
+grep "_build/post/post01/index\\.html" "${TEMP}/output.txt"
+grep "_build/post/post02/index\\.html" "${TEMP}/output.txt"
+grep "_build/post/post03/index\\.html" "${TEMP}/output.txt"
+grep "_build/post/post04/index\\.html" "${TEMP}/output.txt"
+grep "_build/post/post05/index\\.html" "${TEMP}/output.txt"
+grep "_build/post/post06/index\\.html" "${TEMP}/output.txt"
+grep "_build/post/post07/index\\.html" "${TEMP}/output.txt"
+grep "_build/post/post08/index\\.html" "${TEMP}/output.txt"
+grep "_build/post/post09/index\\.html" "${TEMP}/output.txt"
+grep "_build/post/post10/index\\.html" "${TEMP}/output.txt"
+grep "_build/post/post11/index\\.html" "${TEMP}/output.txt"
+
+rm "${TEMP}/output.txt"
+
+cat > "${TEMP}/expected-index.html" <<EOF
+
+Listing: Post 11 - Sep 11, 2016, 12:00 AM GMT
+
+Listing: Post 10 - Sep 10, 2016, 12:00 AM GMT
+
+Listing: Post 09 - Sep 09, 2016, 12:00 AM GMT
+
+Listing: Post 08 - Sep 08, 2016, 12:00 AM GMT
+
+Listing: Post 07 - Sep 07, 2016, 12:00 AM GMT
+
+Listing: Post 06 - Sep 06, 2016, 12:00 AM GMT
+
+Listing: Post 05 - Sep 05, 2016, 12:00 AM GMT
+
+Listing: Post 04 - Sep 04, 2016, 12:00 AM GMT
+
+Listing: Post 03 - Sep 03, 2016, 12:00 AM GMT
+
+Listing: Post 02 - Sep 02, 2016, 12:00 AM GMT
+
+Listing: Post 01 - Sep 01, 2016, 12:00 AM GMT
+
+
+EOF
+diff -uN "${TEMP}/proj/_build/index.html" "${TEMP}/expected-index.html"
+
+cat > "${TEMP}/expected-atom.xml" <<EOF
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+ <title type="text">Lol's Website</title>
+ <id>/atom.xml</id>
+ <updated>2016-09-11T00:00:00Z</updated>
+ <link href="http://example.org/" />
+ <link href="http://example.org/atom.xml" rel="self" />
+ <author>
+ <name>Lol</name>
+ <email>author@example.com</email>
+ </author>
+ <subtitle type="text">WAT?!</subtitle>
+
+ <entry>
+ <title type="text">Post 11</title>
+ <id>/post/post11/</id>
+ <updated>2016-09-11T00:00:00Z</updated>
+ <published>2016-09-11T00:00:00Z</published>
+ <link href="http://example.org/post/post11/" />
+ <author>
+ <name>Lol</name>
+ <email>author@example.com</email>
+ </author>
+ <content type="html"><![CDATA[<p>This is Post 11.</p>
+]]></content>
+ </entry>
+
+ <entry>
+ <title type="text">Post 10</title>
+ <id>/post/post10/</id>
+ <updated>2016-09-10T00:00:00Z</updated>
+ <published>2016-09-10T00:00:00Z</published>
+ <link href="http://example.org/post/post10/" />
+ <author>
+ <name>Lol</name>
+ <email>author@example.com</email>
+ </author>
+ <content type="html"><![CDATA[<p>This is Post 10.</p>
+]]></content>
+ </entry>
+
+ <entry>
+ <title type="text">Post 09</title>
+ <id>/post/post09/</id>
+ <updated>2016-09-09T00:00:00Z</updated>
+ <published>2016-09-09T00:00:00Z</published>
+ <link href="http://example.org/post/post09/" />
+ <author>
+ <name>Lol</name>
+ <email>author@example.com</email>
+ </author>
+ <content type="html"><![CDATA[<p>This is Post 09.</p>
+]]></content>
+ </entry>
+
+ <entry>
+ <title type="text">Post 08</title>
+ <id>/post/post08/</id>
+ <updated>2016-09-08T00:00:00Z</updated>
+ <published>2016-09-08T00:00:00Z</published>
+ <link href="http://example.org/post/post08/" />
+ <author>
+ <name>Lol</name>
+ <email>author@example.com</email>
+ </author>
+ <content type="html"><![CDATA[<p>This is Post 08.</p>
+]]></content>
+ </entry>
+
+ <entry>
+ <title type="text">Post 07</title>
+ <id>/post/post07/</id>
+ <updated>2016-09-07T00:00:00Z</updated>
+ <published>2016-09-07T00:00:00Z</published>
+ <link href="http://example.org/post/post07/" />
+ <author>
+ <name>Lol</name>
+ <email>author@example.com</email>
+ </author>
+ <content type="html"><![CDATA[<p>This is Post 07.</p>
+]]></content>
+ </entry>
+
+ <entry>
+ <title type="text">Post 06</title>
+ <id>/post/post06/</id>
+ <updated>2016-09-06T00:00:00Z</updated>
+ <published>2016-09-06T00:00:00Z</published>
+ <link href="http://example.org/post/post06/" />
+ <author>
+ <name>Lol</name>
+ <email>author@example.com</email>
+ </author>
+ <content type="html"><![CDATA[<p>This is Post 06.</p>
+]]></content>
+ </entry>
+
+ <entry>
+ <title type="text">Post 05</title>
+ <id>/post/post05/</id>
+ <updated>2016-09-05T00:00:00Z</updated>
+ <published>2016-09-05T00:00:00Z</published>
+ <link href="http://example.org/post/post05/" />
+ <author>
+ <name>Lol</name>
+ <email>author@example.com</email>
+ </author>
+ <content type="html"><![CDATA[<p>This is Post 05.</p>
+]]></content>
+ </entry>
+
+ <entry>
+ <title type="text">Post 04</title>
+ <id>/post/post04/</id>
+ <updated>2016-09-04T00:00:00Z</updated>
+ <published>2016-09-04T00:00:00Z</published>
+ <link href="http://example.org/post/post04/" />
+ <author>
+ <name>Lol</name>
+ <email>author@example.com</email>
+ </author>
+ <content type="html"><![CDATA[<p>This is Post 04.</p>
+]]></content>
+ </entry>
+
+ <entry>
+ <title type="text">Post 03</title>
+ <id>/post/post03/</id>
+ <updated>2016-09-03T00:00:00Z</updated>
+ <published>2016-09-03T00:00:00Z</published>
+ <link href="http://example.org/post/post03/" />
+ <author>
+ <name>Lol</name>
+ <email>author@example.com</email>
+ </author>
+ <content type="html"><![CDATA[<p>This is Post 03.</p>
+]]></content>
+ </entry>
+
+ <entry>
+ <title type="text">Post 02</title>
+ <id>/post/post02/</id>
+ <updated>2016-09-02T00:00:00Z</updated>
+ <published>2016-09-02T00:00:00Z</published>
+ <link href="http://example.org/post/post02/" />
+ <author>
+ <name>Lol</name>
+ <email>author@example.com</email>
+ </author>
+ <content type="html"><![CDATA[<p>This is Post 02.</p>
+]]></content>
+ </entry>
+
+</feed>
+EOF
+diff -uN "${TEMP}/proj/_build/atom.xml" "${TEMP}/expected-atom.xml"
+
+cat > "${TEMP}/expected-post-post01.html" <<EOF
+
+
+Post 01 - Sep 01, 2016, 12:00 AM GMT
+
+<p>This is Post 01.</p>
+
+
+EOF
+diff -uN "${TEMP}/proj/_build/post/post01/index.html" "${TEMP}/expected-post-post01.html"
+
+cat > "${TEMP}/expected-post-post11.html" <<EOF
+
+
+Post 11 - Sep 11, 2016, 12:00 AM GMT
+
+<p>This is Post 11.</p>
+
+
+EOF
+diff -uN "${TEMP}/proj/_build/post/post11/index.html" "${TEMP}/expected-post-post11.html"
+
+rm -rf "${TEMP}/proj/_build"
+
+
+### default settings with some posts, atom posts per page 0
+
+cat > "${TEMP}/proj/blogcfile" <<EOF
+[global]
+AUTHOR_NAME = Lol
+AUTHOR_EMAIL = author@example.com
+SITE_TITLE = Lol's Website
+SITE_TAGLINE = WAT?!
+BASE_DOMAIN = http://example.org
+
+[settings]
+atom_posts_per_page = 0
+
+[posts]
+post01
+post02
+post03
+post04
+post05
+post06
+post07
+post08
+post09
+post10
+post11
+EOF
+
+${TESTS_ENVIRONMENT} @abs_top_builddir@/blogc-make -f "${TEMP}/proj/blogcfile" 2>&1 | tee "${TEMP}/output.txt"
+grep "_build/index\\.html" "${TEMP}/output.txt"
+grep "_build/atom\\.xml" "${TEMP}/output.txt"
+grep "_build/post/post01/index\\.html" "${TEMP}/output.txt"
+grep "_build/post/post02/index\\.html" "${TEMP}/output.txt"
+grep "_build/post/post03/index\\.html" "${TEMP}/output.txt"
+grep "_build/post/post04/index\\.html" "${TEMP}/output.txt"
+grep "_build/post/post05/index\\.html" "${TEMP}/output.txt"
+grep "_build/post/post06/index\\.html" "${TEMP}/output.txt"
+grep "_build/post/post07/index\\.html" "${TEMP}/output.txt"
+grep "_build/post/post08/index\\.html" "${TEMP}/output.txt"
+grep "_build/post/post09/index\\.html" "${TEMP}/output.txt"
+grep "_build/post/post10/index\\.html" "${TEMP}/output.txt"
+grep "_build/post/post11/index\\.html" "${TEMP}/output.txt"
+
+rm "${TEMP}/output.txt"
+
+cat > "${TEMP}/expected-index.html" <<EOF
+
+Listing: Post 11 - Sep 11, 2016, 12:00 AM GMT
+
+Listing: Post 10 - Sep 10, 2016, 12:00 AM GMT
+
+Listing: Post 09 - Sep 09, 2016, 12:00 AM GMT
+
+Listing: Post 08 - Sep 08, 2016, 12:00 AM GMT
+
+Listing: Post 07 - Sep 07, 2016, 12:00 AM GMT
+
+Listing: Post 06 - Sep 06, 2016, 12:00 AM GMT
+
+Listing: Post 05 - Sep 05, 2016, 12:00 AM GMT
+
+Listing: Post 04 - Sep 04, 2016, 12:00 AM GMT
+
+Listing: Post 03 - Sep 03, 2016, 12:00 AM GMT
+
+Listing: Post 02 - Sep 02, 2016, 12:00 AM GMT
+
+
+EOF
+diff -uN "${TEMP}/proj/_build/index.html" "${TEMP}/expected-index.html"
+
+cat > "${TEMP}/expected-atom.xml" <<EOF
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+ <title type="text">Lol's Website</title>
+ <id>/atom.xml</id>
+ <updated></updated>
+ <link href="http://example.org/" />
+ <link href="http://example.org/atom.xml" rel="self" />
+ <author>
+ <name>Lol</name>
+ <email>author@example.com</email>
+ </author>
+ <subtitle type="text">WAT?!</subtitle>
+
+</feed>
+EOF
+diff -uN "${TEMP}/proj/_build/atom.xml" "${TEMP}/expected-atom.xml"
+
+cat > "${TEMP}/expected-post-post01.html" <<EOF
+
+
+Post 01 - Sep 01, 2016, 12:00 AM GMT
+
+<p>This is Post 01.</p>
+
+
+EOF
+diff -uN "${TEMP}/proj/_build/post/post01/index.html" "${TEMP}/expected-post-post01.html"
+
+cat > "${TEMP}/expected-post-post11.html" <<EOF
+
+
+Post 11 - Sep 11, 2016, 12:00 AM GMT
+
+<p>This is Post 11.</p>
+
+
+EOF
+diff -uN "${TEMP}/proj/_build/post/post11/index.html" "${TEMP}/expected-post-post11.html"
+
+rm -rf "${TEMP}/proj/_build"
+
+
### default settings with some posts, order asc
cat > "${TEMP}/proj/blogcfile" <<EOF