From b0428aa9b02b058b72c40b6e8dc2298d55bf692f Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Thu, 23 Jan 2020 21:13:41 +0100 Subject: Migrate cache purge function to a proper class And update dependencies and tests. Note that SESSION['tags'] has been removed a log ago --- tests/bootstrap.php | 1 - tests/feed/CacheTest.php | 92 ----------------------------------- tests/legacy/LegacyLinkDBTest.php | 1 - tests/render/PageCacheManagerTest.php | 86 ++++++++++++++++++++++++++++++++ 4 files changed, 86 insertions(+), 94 deletions(-) delete mode 100644 tests/feed/CacheTest.php create mode 100644 tests/render/PageCacheManagerTest.php (limited to 'tests') diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 0afbcba6..c80bcb33 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -18,7 +18,6 @@ require_once 'application/bookmark/LinkUtils.php'; require_once 'application/Utils.php'; require_once 'application/http/UrlUtils.php'; require_once 'application/http/HttpUtils.php'; -require_once 'application/feed/Cache.php'; require_once 'tests/utils/ReferenceLinkDB.php'; require_once 'tests/utils/ReferenceHistory.php'; require_once 'tests/utils/FakeBookmarkService.php'; diff --git a/tests/feed/CacheTest.php b/tests/feed/CacheTest.php deleted file mode 100644 index c0a9f26f..00000000 --- a/tests/feed/CacheTest.php +++ /dev/null @@ -1,92 +0,0 @@ -assertFileNotExists(self::$testCacheDir . '/' . $page . '.cache'); - } - - $this->assertFileExists(self::$testCacheDir . '/intru.der'); - } - - /** - * Purge cached pages - missing directory - */ - public function testPurgeCachedPagesMissingDir() - { - $oldlog = ini_get('error_log'); - ini_set('error_log', '/dev/null'); - $this->assertEquals( - 'Cannot purge sandbox/dummycache_missing: no directory', - purgeCachedPages(self::$testCacheDir . '_missing') - ); - ini_set('error_log', $oldlog); - } - - /** - * Purge cached pages and session cache - */ - public function testInvalidateCaches() - { - $this->assertArrayNotHasKey('tags', $_SESSION); - $_SESSION['tags'] = array('goodbye', 'cruel', 'world'); - - invalidateCaches(self::$testCacheDir); - foreach (self::$pages as $page) { - $this->assertFileNotExists(self::$testCacheDir . '/' . $page . '.cache'); - } - - $this->assertArrayNotHasKey('tags', $_SESSION); - } -} diff --git a/tests/legacy/LegacyLinkDBTest.php b/tests/legacy/LegacyLinkDBTest.php index 17b2b0e6..0884ad03 100644 --- a/tests/legacy/LegacyLinkDBTest.php +++ b/tests/legacy/LegacyLinkDBTest.php @@ -11,7 +11,6 @@ use ReflectionClass; use Shaarli; use Shaarli\Bookmark\Bookmark; -require_once 'application/feed/Cache.php'; require_once 'application/Utils.php'; require_once 'tests/utils/ReferenceLinkDB.php'; diff --git a/tests/render/PageCacheManagerTest.php b/tests/render/PageCacheManagerTest.php new file mode 100644 index 00000000..991515d0 --- /dev/null +++ b/tests/render/PageCacheManagerTest.php @@ -0,0 +1,86 @@ +cacheManager = new PageCacheManager(static::$testCacheDir); + + if (!is_dir(self::$testCacheDir)) { + mkdir(self::$testCacheDir); + } else { + array_map('unlink', glob(self::$testCacheDir . '/*')); + } + + foreach (self::$pages as $page) { + file_put_contents(self::$testCacheDir . '/' . $page . '.cache', $page); + } + file_put_contents(self::$testCacheDir . '/intru.der', 'ShouldNotBeThere'); + } + + /** + * Remove dummycache folder after each tests. + */ + public function tearDown() + { + array_map('unlink', glob(self::$testCacheDir . '/*')); + rmdir(self::$testCacheDir); + } + + /** + * Purge cached pages + */ + public function testPurgeCachedPages() + { + $this->cacheManager->purgeCachedPages(); + foreach (self::$pages as $page) { + $this->assertFileNotExists(self::$testCacheDir . '/' . $page . '.cache'); + } + + $this->assertFileExists(self::$testCacheDir . '/intru.der'); + } + + /** + * Purge cached pages - missing directory + */ + public function testPurgeCachedPagesMissingDir() + { + $this->cacheManager = new PageCacheManager(self::$testCacheDir . '_missing'); + + $oldlog = ini_get('error_log'); + ini_set('error_log', '/dev/null'); + $this->assertEquals( + 'Cannot purge sandbox/dummycache_missing: no directory', + $this->cacheManager->purgeCachedPages() + ); + ini_set('error_log', $oldlog); + } +} -- cgit v1.2.3