diff options
| -rw-r--r-- | src/blogc-make/rules.c | 4 | ||||
| -rwxr-xr-x | tests/blogc-make/check_blogc_make.sh.in | 377 | 
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 | 
