- #!/usr/bin/env perl
-
- use strict;
- use warnings;
- use utf8;
- use open qw(:std :utf8);
-
- use lib 'lib';
-
- use Encode;
- use JSON;
- use Test::More tests => 19;
-
- # Does the module load?
-
- require_ok('App::WRT');
-
- chdir 'example/blog';
-
- # configuration
-
- ok(
- my $w = App::WRT::new_from_file('wrt.json'),
- "got WRT object."
- );
-
- # individual subroutine tests
-
- my $datestamp = $w->datestamp('2014/1/1/test_entry');
- like(
- $datestamp,
- qr{test_entry},
- 'datestamp for a fragment references that fragment'
- ) or diag($datestamp);
-
- # icon rendering
-
- my $with_icon = $w->display('icon_test');
-
- like(
- $with_icon,
- qr/img src/,
- 'icon_test has an image in it'
- ) or diag($with_icon);
-
- my $icon_textfile = $w->icon_markup('icon_test/textfile', 'alt');
- is(
- $icon_textfile,
- q{<img src="https://example.com/icon_test/textfile.icon.png"
- width="48" height="58"
- alt="alt" />},
- 'got expected icon for icon_test/textfile'
- ) or diag($icon_textfile);
-
- my $icon_dir = $w->icon_markup('icon_test/dir', 'alt');
- is(
- $icon_dir,
- q{<img src="https://example.com/icon_test/dir/index.icon.png"
- width="48" height="58"
- alt="alt" />},
- 'got expected icon for icon_test/dir'
- ) or diag($icon_dir);
-
- my $icon_subentry = $w->icon_markup('icon_test/dir/subentry', 'alt');
- is(
- $icon_subentry,
- q{<img src="https://example.com/icon_test/dir/subentry.icon.png"
- width="48" height="58"
- alt="alt" />},
- 'got expected icon for icon_test/dir/subentry'
- ) or diag($icon_subentry);
-
- # feed rendering
-
- my $with_stars = $w->display('2014/1/2');
-
- like(
- $with_stars,
- qr/✨/s,
- '2014/1/2 contains some stars which we also expect to show up in the feed'
- );
-
- my $feed = $w->feed_print_recent();
-
- like(
- $feed,
- qr/✨/s,
- 'feed contains some stars'
- ) or diag($feed);
-
- my $json_feed = $w->feed_print_json();
- my $JSON = JSON->new->utf8->pretty;
- my $feed_hashref = $JSON->decode(encode('UTF-8', $json_feed));
-
- ok(
- length $json_feed,
- 'got some sort of a JSON Feed'
- ) or diag($json_feed);
-
- ok(
- defined $feed_hashref->{title},
- 'got a JSON Feed with a title'
- ) or diag($feed_hashref);
-
- # not expanding entries with wrt-noexpand
-
- my $with_noexpand = $w->display('noexpand_test');
- # diag($with_noexpand);
- unlike(
- $with_noexpand,
- qr/SHOULD NOT DISPLAY/,
- 'noexpand_test does not contain text of sub-entry do_not_expand_me'
- ) or diag($with_noexpand);
-
- # displaying default entry when no entries are given
-
- my $with_no_entries = $w->display();
- like(
- $with_no_entries,
- qr{\Q<title>wrt::new</title>\E},
- 'display the default entry (new) when no entries are given'
- ) or diag($with_no_entries);
-
- # contents of year index files
-
- my $plaintext_year = $w->display('2012');
- like(
- $plaintext_year,
- qr/\QI'm a year which is just a flatfile.\E/,
- "2012 as plaintext year comes through."
- ) or diag($plaintext_year);
-
- my $plaintext_year_index = $w->display('2013');
- like(
- $plaintext_year_index,
- qr/\QI'm an index file for an entire year.\E/,
- "2013's plaintext year index comes through."
- ) or diag($plaintext_year_index);
-
- # titles
-
- my $title = $w->get_title('2014/1/2');
- is(
- $title,
- 'Thursday, January 2, 2014',
- 'got expected title for 2014/1/2'
- ) or diag($title);
-
- # next / prev page navigation
-
- my ($page_navigation) = $w->page_navigation('2014/1/2');
- like(
- $page_navigation,
- qr{2014/1/1},
- "got previous title in page navigation for 2014/1/2"
- ) or diag($page_navigation);
-
- $page_navigation = $w->page_navigation('2014/1/1');
- like(
- $page_navigation,
- qr{2014/1/2},
- "got next title in page navigation for 2014/1/2"
- ) or diag($page_navigation);
-
- my ($tag_list) = $w->entry_tag_list('tags_test');
- like(
- $tag_list,
- qr{<a href="https://example.com/animals/platypus">animals/platypus</a>},
- 'got link to an expected tag index for tags_test'
- );
|