Commit | Line | Data |
d25345fd |
1 | use warnings; |
2 | use strict; |
3 | use Test::More; |
4 | use App::SCS; |
5 | use IO::All; |
6 | |
7 | use File::Tempdir; |
8 | |
9 | my $tmpdir = File::Tempdir->new(); |
10 | my $dir = io($tmpdir->name); |
11 | |
12 | $dir->catdir('share/pages/cachetest')->mkpath; |
13 | $dir->catdir('share/templates')->mkpath; |
14 | |
15 | io('t/data/cachetest/share/pages/cachetest/1.html') > io($dir->catfile('share/pages/cachetest/1.html')); |
16 | io('t/data/cachetest/share/pages/cachetest.conf') > io($dir->catfile('share/pages/cachetest.conf')); |
17 | io('t/data/cachetest/share/templates/layout.html') > io($dir->catfile('share/templates/layout.html')); |
18 | io('t/data/cachetest/share/templates/alternate.html') > io($dir->catfile('share/templates/alternate.html')); |
19 | io('t/data/cachetest/share/templates/third.html') > io($dir->catfile('share/templates/third.html')); |
20 | |
21 | my $app = App::SCS->new( |
22 | root_dir => $dir |
23 | ); |
24 | |
25 | my $cachetest1 = $app->pages->get({ path => 'cachetest/1' }); |
26 | |
27 | ok($cachetest1, 'Got a page object'); |
28 | |
29 | is( |
30 | $cachetest1->html, |
31 | io->file('t/data/cachetest/share/pages/cachetest/1.html')->all, |
32 | "Correct file loaded" |
33 | ); |
34 | |
35 | like ($cachetest1->_html_zoom->to_html, |
36 | qr{<body>.*<h2>Heading 2</h2>.*</body>}s, |
37 | 'First layout used' |
38 | ); |
39 | |
40 | # We want to make sure our config is newer than the cached version |
41 | sleep 1; |
42 | |
43 | io('t/data/cachetest/share/pages/cachetest2.conf') > io($dir->catfile('share/pages/cachetest.conf')); |
44 | |
45 | $cachetest1 = $app->pages->get({ path => 'cachetest/1' }); |
46 | |
47 | like ($cachetest1->_html_zoom->to_html, |
48 | qr{<body>.*<h3>Heading 3</h3>.*</body>}s, |
49 | 'Changing the config invalidates cache, updates content' |
50 | ); |
51 | |
52 | done_testing; |