->size->isGreaterThan(0);
}
+ /**
+ * Test news caching
+ *
+ * @return void
+ */
+ public function testCacheNews()
+ {
+ $file = GALETTE_CACHE_DIR . md5('http://galette.eu/dc/index.php/feed/atom') . '.cache';
+
+ //ensure file does not exists
+ $this->boolean(file_exists($file))->isFalse;
+
+ //load news with caching
+ $news = new \Galette\IO\News('http://galette.eu/dc/index.php/feed/atom');
+
+ $posts = $news->getPosts();
+ $this->array($posts)
+ ->size->isGreaterThan(0);
+
+ //ensure file does exists
+ $this->boolean(file_exists($file))->isTrue;
+
+ $dformat = 'Y-m-d H:i:s';
+ $mdate = \DateTime::createFromFormat(
+ $dformat,
+ date(
+ $dformat,
+ filemtime($file)
+ )
+ );
+
+ $expired = $mdate->sub(
+ new \DateInterval('PT25H')
+ );
+ $touched = touch($file, $expired->getTimestamp());
+ $this->boolean($touched)->isTrue;
+
+ $news = new \Galette\IO\News('http://galette.eu/dc/index.php/feed/atom');
+ $mnewdate = \DateTime::createFromFormat(
+ $dformat,
+ date(
+ $dformat,
+ filemtime($file)
+ )
+ );
+ $isnewdate = $mnewdate > $mdate;
+ $this->boolean($isnewdate)->isTrue;
+
+ //drop file finally
+ unlink($file);
+ }
+
+
/**
* Test news loading with allow_url_fopen off
*
define('GALETTE_TPL_SUBDIR', 'templates/default/');
define('GALETTE_THEME', 'themes/default/');
define('GALETTE_TEMPIMAGES_PATH', __DIR__ . '/tests-data');
+define('GALETTE_CACHE_DIR', __DIR__ . '/tests-data/');
if (is_dir(GALETTE_TEMPIMAGES_PATH)) {
$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator(