summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerrit Uitslag <klapinklapin@gmail.com>2013-11-21 18:02:12 +0100
committerGerrit Uitslag <klapinklapin@gmail.com>2013-11-21 18:02:12 +0100
commit0f13c836f0ee71a3188a775b9ea64025e10d38f5 (patch)
tree3da2a0fc5519a6921a805b97c4b3ee30ed5c0908
parentee33e0c5628d9cab52676a5aa2f55356c563c209 (diff)
downloadrpg-0f13c836f0ee71a3188a775b9ea64025e10d38f5.tar.gz
rpg-0f13c836f0ee71a3188a775b9ea64025e10d38f5.tar.bz2
Improved isCurrentRevision(), tests included
-rw-r--r--_test/tests/inc/changelog_getrelativerevision.test.php35
-rw-r--r--inc/changelog.php7
2 files changed, 39 insertions, 3 deletions
diff --git a/_test/tests/inc/changelog_getrelativerevision.test.php b/_test/tests/inc/changelog_getrelativerevision.test.php
index 7cd081eab..588c424b1 100644
--- a/_test/tests/inc/changelog_getrelativerevision.test.php
+++ b/_test/tests/inc/changelog_getrelativerevision.test.php
@@ -270,4 +270,39 @@ class changelog_getrelativerevision_test extends DokuWikiTest {
$revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
$this->assertEquals($revexpected, $revfound);
}
+
+ function test_iscurrentpagerevision() {
+ $rev = 1385051947;
+ $currentexpected = true;
+
+ //set a known timestamp
+ touch(wikiFN($this->pageid), $rev);
+
+ $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
+
+ $current = $pagelog->isCurrentRevision($rev, $media = false);
+ $this->assertEquals($currentexpected, $current);
+ }
+
+ function test_isnotcurrentpagerevision() {
+ $rev = 1385051947;
+ $not_current_rev = $rev - 1;
+ $currentexpected = false;
+
+ //set a known timestamp
+ touch(wikiFN($this->pageid), $rev);
+
+ $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
+ $current = $pagelog->isCurrentRevision($not_current_rev, $media = false);
+ $this->assertEquals($currentexpected, $current);
+ }
+
+ function test_notexistingcurrentpage() {
+ $rev = 1385051947;
+ $currentexpected = false;
+
+ $pagelog = new PageRevisionLog('nonexistingpage', $chunk_size = 8192);
+ $current = $pagelog->isCurrentRevision($rev, $media = false);
+ $this->assertEquals($currentexpected, $current);
+ }
} \ No newline at end of file
diff --git a/inc/changelog.php b/inc/changelog.php
index de26fdf6a..722365853 100644
--- a/inc/changelog.php
+++ b/inc/changelog.php
@@ -760,11 +760,12 @@ class PageRevisionLog {
/**
* Check whether given revision is the current page
*
- * @param int $rev timestamp of current page
+ * @param int $rev timestamp of current page
+ * @param bool $media look for media?
* @return bool true if $rev is current revision, otherwise false
*/
- public function isCurrentRevision($rev){
- return isset($INFO['meta']['last_change']) && $rev == $INFO['meta']['last_change']['date'];
+ public function isCurrentRevision($rev, $media = false) {
+ return $rev == @filemtime($media ? mediaFN($this->id) : wikiFN($this->id));
}
}