summaryrefslogtreecommitdiff
path: root/_test
diff options
context:
space:
mode:
authorGerrit Uitslag <klapinklapin@gmail.com>2013-11-20 13:21:44 +0100
committerGerrit Uitslag <klapinklapin@gmail.com>2013-11-20 13:21:44 +0100
commit55545bcc9b8532818cc1fc8b920deb07cc3f2c61 (patch)
tree4400b3420982ba7859442799e03b1e07da60fcab /_test
parent6556cf69fed60e750c3d32c106427cdfbbfdf384 (diff)
downloadrpg-55545bcc9b8532818cc1fc8b920deb07cc3f2c61.tar.gz
rpg-55545bcc9b8532818cc1fc8b920deb07cc3f2c61.tar.bz2
Add unit tests for getRelativerevision
Diffstat (limited to '_test')
-rw-r--r--_test/tests/inc/changelog_getrelativerevision.test.php273
1 files changed, 273 insertions, 0 deletions
diff --git a/_test/tests/inc/changelog_getrelativerevision.test.php b/_test/tests/inc/changelog_getrelativerevision.test.php
new file mode 100644
index 000000000..7cd081eab
--- /dev/null
+++ b/_test/tests/inc/changelog_getrelativerevision.test.php
@@ -0,0 +1,273 @@
+<?php
+
+/**
+ * Tests for requesting revisioninfo of a revision of a page with getRevisionInfo()
+ *
+ * This class uses the files:
+ * - data/pages/mailinglist.txt
+ * - data/meta/mailinglist.changes
+ */
+class changelog_getrelativerevision_test extends DokuWikiTest {
+
+ private $logline = "1362525899 127.0.0.1 E mailinglist pubcie [Data entry] \n";
+ private $pageid = 'mailinglist';
+
+ function setup() {
+ parent::setup();
+ global $cache_revinfo;
+ $cache =& $cache_revinfo;
+ if(isset($cache['nonexist'])) {
+ unset($cache['nonexist']);
+ }
+ if(isset($cache['mailinglist'])) {
+ unset($cache['mailinglist']);
+ }
+ }
+
+ /**
+ * no nonexist.changes meta file available
+ */
+ function test_changemetadatanotexists() {
+ $rev = 1362525899;
+ $dir = 1;
+ $id = 'nonexist';
+ $revsexpected = false;
+
+ $pagelog = new PageRevisionLog($id, $chunk_size = 8192);
+ $revs = $pagelog->getRelativeRevision($rev, $dir, $media = false);
+ $this->assertEquals($revsexpected, $revs);
+ }
+
+ /**
+ * no nonexist.changes meta file available
+ */
+ function test_nodirection() {
+ $rev = 1362525899;
+ $dir = 0;
+ $revsexpected = false;
+
+ $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
+ $revs = $pagelog->getRelativeRevision($rev, $dir, $media = false);
+ $this->assertEquals($revsexpected, $revs);
+ }
+
+ /**
+ * start at exact current revision of mailinglist page
+ *
+ */
+ function test_startatexactcurrentrev() {
+ $rev = 1374261194;
+ $dir = 1;
+ $revsexpected = false;
+
+// global $INFO;
+// $INFO = pageinfo();
+// var_dump($INFO);
+// var_dump($INFO['meta']);
+// var_dump($INFO['meta']['last_change']);
+// var_dump($INFO['meta']['last_change']['date']);
+
+ $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
+ $revs = $pagelog->getRelativeRevision($rev, $dir, $media = false);
+ $this->assertEquals($revsexpected, $revs);
+ }
+
+ /**
+ * request existing rev
+ */
+ function test_requestrev() {
+ $rev = 1362525359;
+ $dir = 1;
+ $revexpected = 1362525899;
+ $infoexpected = parseChangelogLine($this->logline);
+
+ $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
+ $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
+ $this->assertEquals($revexpected, $revfound);
+ //checked info returned from cache
+ $info = $pagelog->getRevisionInfo($revfound, $media = false);
+ $this->assertEquals($infoexpected, $info);
+ }
+
+ /**
+ * request existing rev with chucked reading
+ */
+ function test_requestnextrev_chuncked() {
+ $rev = 1362525899;
+ $dir = 1;
+ $revexpected = 1362525926;
+
+ $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512);
+ $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
+ $this->assertEquals($revexpected, $revfound);
+ }
+
+ /**
+ * request existing rev
+ */
+ function test_requestnextfifthrev() {
+ $rev = 1362525899;
+ $dir = 5;
+ $revexpected = 1362526767;
+
+ $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
+ $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
+ $this->assertEquals($revexpected, $revfound);
+ }
+
+ /**
+ * request existing rev with chucked reading
+ */
+ function test_requestnextfifthrev_chuncked() {
+ $rev = 1362525899;
+ $dir = 5;
+ $revexpected = 1362526767;
+
+ $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512);
+ $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
+ $this->assertEquals($revexpected, $revfound);
+ }
+
+ /**
+ * request existing rev
+ */
+ function test_requestprevrev() {
+ $rev = 1362525899;
+ $dir1 = -1;
+ $dir5 = -5;
+ $revexpected1 = 1362525359;
+ $revexpected5 = 1360110636;
+
+ $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
+ $revfound1 = $pagelog->getRelativeRevision($rev, $dir1, $media = false);
+ $this->assertEquals($revexpected1, $revfound1);
+
+ $revfound5 = $pagelog->getRelativeRevision($rev, $dir5, $media = false);
+ $this->assertEquals($revexpected5, $revfound5);
+ }
+
+ /**
+ * request existing rev with chucked reading
+ */
+ function test_requestprevrev_chuncked() {
+ $rev = 1362525899;
+ $dir1 = -1;
+ $dir5 = -5;
+ $revexpected1 = 1362525359;
+ $revexpected5 = 1360110636;
+
+ $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512);
+ $revfound1 = $pagelog->getRelativeRevision($rev, $dir1, $media = false);
+ $this->assertEquals($revexpected1, $revfound1);
+
+ $revfound5 = $pagelog->getRelativeRevision($rev, $dir5, $media = false);
+ $this->assertEquals($revexpected5, $revfound5);
+ }
+
+ /**
+ * request after recentest version in changelog
+ */
+ function test_requestrecentestlogline_next() {
+ $rev = 1374261194;
+ $dir = 1;
+ $revexpected = false;
+
+ $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
+ $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
+ $this->assertEquals($revexpected, $revfound);
+ }
+
+ /**
+ * request after recentest version in changelog, with chuncked reading
+ */
+ function test_requestrecentestlogline_next_chuncked() {
+ $rev = 1374261194;
+ $dir = 1;
+ $revexpected = false;
+
+ $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512);
+ $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
+ $this->assertEquals($revexpected, $revfound);
+ }
+
+
+ /**
+ * request before current version
+ */
+ function test_requestrecentestlogline_prev() {
+ $rev = 1374261194;
+ $dir = -1;
+ $revexpected = 1371579614;
+
+ $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
+ $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
+ $this->assertEquals($revexpected, $revfound);
+ }
+
+ /**
+ * request before current version, with chuncked reading
+ */
+ function test_requestrecentestlogline_prev_chuncked() {
+ $rev = 1374261194;
+ $dir = -1;
+ $revexpected = 1371579614;
+
+ $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512);
+ $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
+ $this->assertEquals($revexpected, $revfound);
+ }
+
+ /**
+ * Request negative revision
+ * looks in positive direction, so it catches the oldest revision
+ */
+ function test_negativerev_posdir() {
+ $rev = -10;
+ $dir = 1;
+ $revexpected = 1360110636;
+
+ $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
+ $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
+ $this->assertEquals($revexpected, $revfound);
+ }
+
+ /**
+ * Request negative revision
+ * looks in negative direction, but there is nothing
+ */
+ function test_negativerev_negdir() {
+ $rev = -10;
+ $dir = -1;
+ $revexpected = false;
+
+ $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
+ $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
+ $this->assertEquals($revexpected, $revfound);
+ }
+
+ /**
+ * Start at non existing revision somewhere between existing revisions
+ */
+ function test_startatnotexistingrev_next() {
+ $rev = 1362525890;
+ $dir = 1;
+ $revexpected = 1362525899;
+
+ $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
+ $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
+ $this->assertEquals($revexpected, $revfound);
+ }
+
+ /**
+ * Start at non existing revision somewhere between existing revisions
+ */
+ function test_startatnotexistingrev_prev() {
+ $rev = 1362525890;
+ $dir = -1;
+ $revexpected = 1362525359;
+
+ $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192);
+ $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false);
+ $this->assertEquals($revexpected, $revfound);
+ }
+} \ No newline at end of file