]> git.immae.eu Git - github/shaarli/Shaarli.git/blame_incremental - tests/feed/CachedPageTest.php
Merge pull request #1560 from ArthurHoaro/fix/redirect-wrong-path
[github/shaarli/Shaarli.git] / tests / feed / CachedPageTest.php
... / ...
CommitLineData
1<?php
2/**
3 * PageCache tests
4 */
5namespace Shaarli\Feed;
6
7/**
8 * Unitary tests for cached pages
9 */
10class CachedPageTest extends \PHPUnit\Framework\TestCase
11{
12 // test cache directory
13 protected static $testCacheDir = 'sandbox/pagecache';
14 protected static $url = 'http://shaar.li/feed/atom';
15 protected static $filename;
16
17 /**
18 * Create the cache directory if needed
19 */
20 public static function setUpBeforeClass()
21 {
22 if (!is_dir(self::$testCacheDir)) {
23 mkdir(self::$testCacheDir);
24 }
25 self::$filename = self::$testCacheDir . '/' . sha1(self::$url) . '.cache';
26 }
27
28 /**
29 * Reset the page cache
30 */
31 public function setUp()
32 {
33 if (file_exists(self::$filename)) {
34 unlink(self::$filename);
35 }
36 }
37
38 /**
39 * Create a new cached page
40 */
41 public function testConstruct()
42 {
43 new CachedPage(self::$testCacheDir, '', true);
44 new CachedPage(self::$testCacheDir, '', false);
45 new CachedPage(self::$testCacheDir, 'http://shaar.li/feed/rss', true);
46 new CachedPage(self::$testCacheDir, 'http://shaar.li/feed/atom', false);
47 $this->addToAssertionCount(1);
48 }
49
50 /**
51 * Cache a page's content
52 */
53 public function testCache()
54 {
55 $page = new CachedPage(self::$testCacheDir, self::$url, true);
56
57 $this->assertFileNotExists(self::$filename);
58 $page->cache('<p>Some content</p>');
59 $this->assertFileExists(self::$filename);
60 $this->assertEquals(
61 '<p>Some content</p>',
62 file_get_contents(self::$filename)
63 );
64 }
65
66 /**
67 * "Cache" a page's content - the page is not to be cached
68 */
69 public function testShouldNotCache()
70 {
71 $page = new CachedPage(self::$testCacheDir, self::$url, false);
72
73 $this->assertFileNotExists(self::$filename);
74 $page->cache('<p>Some content</p>');
75 $this->assertFileNotExists(self::$filename);
76 }
77
78 /**
79 * Return a page's cached content
80 */
81 public function testCachedVersion()
82 {
83 $page = new CachedPage(self::$testCacheDir, self::$url, true);
84
85 $this->assertFileNotExists(self::$filename);
86 $page->cache('<p>Some content</p>');
87 $this->assertFileExists(self::$filename);
88 $this->assertEquals(
89 '<p>Some content</p>',
90 $page->cachedVersion()
91 );
92 }
93
94 /**
95 * Return a page's cached content - the file does not exist
96 */
97 public function testCachedVersionNoFile()
98 {
99 $page = new CachedPage(self::$testCacheDir, self::$url, true);
100
101 $this->assertFileNotExists(self::$filename);
102 $this->assertEquals(
103 null,
104 $page->cachedVersion()
105 );
106 }
107
108 /**
109 * Return a page's cached content - the page is not to be cached
110 */
111 public function testNoCachedVersion()
112 {
113 $page = new CachedPage(self::$testCacheDir, self::$url, false);
114
115 $this->assertFileNotExists(self::$filename);
116 $this->assertEquals(
117 null,
118 $page->cachedVersion()
119 );
120 }
121}