From 3fc4f82997eb93a407074db4473cade1a76b6971 Mon Sep 17 00:00:00 2001 From: Klap-in Date: Sat, 20 Jul 2013 01:28:07 +0200 Subject: Added tests for getRevisions and getRevisionInfo from page changelog --- _test/data/meta/mailinglist.changes | 24 +++ _test/data/pages/mailinglist.txt | 11 ++ .../tests/inc/changelog_getRevisionInfo.class.php | 120 +++++++++++++ _test/tests/inc/changelog_getRevisions.class.php | 200 +++++++++++++++++++++ 4 files changed, 355 insertions(+) create mode 100644 _test/data/meta/mailinglist.changes create mode 100644 _test/data/pages/mailinglist.txt create mode 100644 _test/tests/inc/changelog_getRevisionInfo.class.php create mode 100644 _test/tests/inc/changelog_getRevisions.class.php (limited to '_test') diff --git a/_test/data/meta/mailinglist.changes b/_test/data/meta/mailinglist.changes new file mode 100644 index 000000000..348f8258f --- /dev/null +++ b/_test/data/meta/mailinglist.changes @@ -0,0 +1,24 @@ +1360110636 127.0.0.1 C mailinglist pubcie aangemaakt +1361901536 127.0.0.1 E mailinglist pubcie +1362524799 127.0.0.1 E mailinglist pubcie +1362525145 127.0.0.1 E mailinglist pubcie +1362525359 127.0.0.1 E mailinglist pubcie [Data entry] +1362525899 127.0.0.1 E mailinglist pubcie [Data entry] +1362525926 127.0.0.1 E mailinglist pubcie +1362526039 127.0.0.1 E mailinglist pubcie [Data entry] +1362526119 127.0.0.1 E mailinglist pubcie +1362526167 127.0.0.1 E mailinglist pubcie [Data entry] +1362526767 127.0.0.1 E mailinglist pubcie [Data entry] +1362526861 127.0.0.1 E mailinglist pubcie [Data entry] +1362527046 127.0.0.1 E mailinglist pubcie [Data entry] +1362527164 127.0.0.1 E mailinglist pubcie [Data entry] +1363436892 127.0.0.1 E mailinglist pubcie +1368575634 127.0.0.1 E mailinglist pubcie +1368609772 127.0.0.1 E mailinglist pubcie +1368612506 127.0.0.1 E mailinglist pubcie [Data entry] +1368612599 127.0.0.1 E mailinglist pubcie [Data entry] +1368622152 127.0.0.1 E mailinglist pubcie [Data entry] +1368622195 127.0.0.1 E mailinglist pubcie +1368622240 127.0.0.1 E mailinglist pubcie [Data entry] +1371579614 127.0.0.1 E mailinglist pubcie +1374261194 127.0.0.1 E mailinglist pubcie diff --git a/_test/data/pages/mailinglist.txt b/_test/data/pages/mailinglist.txt new file mode 100644 index 000000000..3fbe91b67 --- /dev/null +++ b/_test/data/pages/mailinglist.txt @@ -0,0 +1,11 @@ +====== Mailing Lists ====== + +[[DokuWiki]]'s development is coordinated through multiple Mailinglists hosted by [[http://www.freelists.org|freelists.org]]. + +===== Using the lists ===== + +First you should subscribe to one or several of the mailing lists presented below. After subscribing you can send emails to the list(s) by using the mailing list address stated in its description. If you rather want to use the mailing list through a news group interface, please read the section [[#News group interface]]. + +If you are new to mailing lists in general, please read [[rfc>1855|RFC 1855 - Netiquette Guidelines]], especially the sections 3.1.1 and 3.1.2. Before you ask any questions you should also have a look at [[http://www.catb.org/~esr/faqs/smart-questions.html|How To Ask Questions The Smart Way]]. + +:!: Please note that these documents are linked here solely for the purpose of information. Their respective authors have nothing do to with [[DokuWiki]] and in **no case** should you send email to them, asking for help related to [[DokuWiki]]! diff --git a/_test/tests/inc/changelog_getRevisionInfo.class.php b/_test/tests/inc/changelog_getRevisionInfo.class.php new file mode 100644 index 000000000..9637d21c8 --- /dev/null +++ b/_test/tests/inc/changelog_getRevisionInfo.class.php @@ -0,0 +1,120 @@ +assertEquals($revsexpected, $revs); + } + + /** + * request existing rev + */ + function test_requestrev() { + $rev = 1362525899; + $infoexpected = parseChangelogLine($this->logline); + + $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); + $this->assertEquals($infoexpected, $info); + //returns cached value + $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); + $this->assertEquals($infoexpected, $info); + } + + /** + * request existing rev with chucked reading + */ + function test_requestrev_chuncked() { + $rev = 1362525899; + $infoexpected = parseChangelogLine($this->logline); + + $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 512, $media = false); + $this->assertEquals($infoexpected, $info); + } + + /** + * request current version + */ + function test_requestrecentestlogline() { + $rev = 1374261194; + $infoexpected = parseChangelogLine($this->firstlogline); + + $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); + $this->assertEquals($infoexpected, $info); + //returns cached value + $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); + $this->assertEquals($infoexpected, $info); + } + + /** + * request current version, with chuncked reading + */ + function test_requestrecentestlogline_chuncked() { + $rev = 1374261194; + $infoexpected = parseChangelogLine($this->firstlogline); + + $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 512, $media = false); + $this->assertEquals($infoexpected, $info); + } + + /** + * request negative revision + */ + function test_negativerev() { + $rev = -10; + + $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); + $this->assertEquals(false, $info); + } + + /** + * request non existing revision somewhere between existing revisions + */ + function test_notexistingrev() { + $rev = 1362525890; + + $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); + $this->assertEquals(false, $info); + } + + /** + * sometimes chuncksize is set to true + */ + function test_chuncksizetrue() { + $rev = 1362525899; + $infoexpected = parseChangelogLine($this->logline); + + $info = getRevisionInfo($this->pageid, $rev, true); + $this->assertEquals($infoexpected, $info); + } +} \ No newline at end of file diff --git a/_test/tests/inc/changelog_getRevisions.class.php b/_test/tests/inc/changelog_getRevisions.class.php new file mode 100644 index 000000000..a9be26dae --- /dev/null +++ b/_test/tests/inc/changelog_getRevisions.class.php @@ -0,0 +1,200 @@ +assertEquals($revsexpected, $revs); + } + + /** + * request first recentest revision + * (so skips first line which belongs to the current existing page) + */ + function test_requestlastrev() { + $first = 0; + $num = 1; + $revsexpected = array($this->revsexpected[1]); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $this->assertEquals($revsexpected, $revs); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); + $this->assertEquals($revsexpected, $revs); + } + + /** + * request first recentest revision + * (so skips first line which belongs to the current existing page) + */ + function test_requestonebutlastrev() { + $first = 1; + $num = 1; + $revsexpected = array($this->revsexpected[2]); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $this->assertEquals($revsexpected, $revs); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); + $this->assertEquals($revsexpected, $revs); + } + + /** + * request first recentest revision + * (so skips first line of current existing page) + */ + function test_requestrevswithoffset() { + $first = 10; + $num = 5; + $revsexpected = array_slice($this->revsexpected, $first + 1, $num); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $this->assertEquals($revsexpected, $revs); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); + $this->assertEquals($revsexpected, $revs); + } + + /** + * first = -1 requests recentest logline, without skipping + */ + function test_requestrecentestlogline() { + $first = -1; + $num = 1; + $revsexpected = array($this->revsexpected[0]); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $this->assertEquals($revsexpected, $revs); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); + $this->assertEquals($revsexpected, $revs); + } + + /** + * chunck size = 0 skips chuncked loading + */ + function test_wholefile() { + $first = 0; + $num = 1000; + $revsexpected = array_slice($this->revsexpected, 1); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 0, $media = false); + $this->assertEquals($revsexpected, $revs); + } + + /** + * Negative range returns no result + */ + function test_negativenum() { + $first = 0; + $num = -10; + $revsexpected = array(); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $this->assertEquals($revsexpected, $revs); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); + $this->assertEquals($revsexpected, $revs); + } + + /** + * Negative range returns no result + */ + function test_negativennumoffset() { + $first = 2; + $num = -10; + $revsexpected = array(); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $this->assertEquals($revsexpected, $revs); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); + $this->assertEquals($revsexpected, $revs); + } + + /** + * zero range returns no result + */ + function test_zeronum() { + $first = 5; + $num = 0; + $revsexpected = array(); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $this->assertEquals($revsexpected, $revs); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); + $this->assertEquals($revsexpected, $revs); + } + + /** + * get oldest revisions + */ + function test_requestlargeoffset() { + $first = 22; + $num = 50; + $revsexpected = array_slice($this->revsexpected, $first + 1); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $this->assertEquals($revsexpected, $revs); + } + + /** + * request with too large offset and range + */ + function test_requesttoolargenumberrevs() { + $first = 50; + $num = 50; + $revsexpected = array(); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $this->assertEquals($revsexpected, $revs); + } + +} \ No newline at end of file -- cgit v1.2.3 From 51bd6f039e782dca456022514893aa80bd7c52b9 Mon Sep 17 00:00:00 2001 From: Klap-in Date: Sat, 20 Jul 2013 02:31:50 +0200 Subject: Fixed file names of test classes --- .../tests/inc/changelog_getRevisionInfo.class.php | 120 ------------- _test/tests/inc/changelog_getRevisions.class.php | 200 --------------------- _test/tests/inc/changelog_getrevisioninfo.test.php | 120 +++++++++++++ _test/tests/inc/changelog_getrevisions.test.php | 200 +++++++++++++++++++++ 4 files changed, 320 insertions(+), 320 deletions(-) delete mode 100644 _test/tests/inc/changelog_getRevisionInfo.class.php delete mode 100644 _test/tests/inc/changelog_getRevisions.class.php create mode 100644 _test/tests/inc/changelog_getrevisioninfo.test.php create mode 100644 _test/tests/inc/changelog_getrevisions.test.php (limited to '_test') diff --git a/_test/tests/inc/changelog_getRevisionInfo.class.php b/_test/tests/inc/changelog_getRevisionInfo.class.php deleted file mode 100644 index 9637d21c8..000000000 --- a/_test/tests/inc/changelog_getRevisionInfo.class.php +++ /dev/null @@ -1,120 +0,0 @@ -assertEquals($revsexpected, $revs); - } - - /** - * request existing rev - */ - function test_requestrev() { - $rev = 1362525899; - $infoexpected = parseChangelogLine($this->logline); - - $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); - $this->assertEquals($infoexpected, $info); - //returns cached value - $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); - $this->assertEquals($infoexpected, $info); - } - - /** - * request existing rev with chucked reading - */ - function test_requestrev_chuncked() { - $rev = 1362525899; - $infoexpected = parseChangelogLine($this->logline); - - $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 512, $media = false); - $this->assertEquals($infoexpected, $info); - } - - /** - * request current version - */ - function test_requestrecentestlogline() { - $rev = 1374261194; - $infoexpected = parseChangelogLine($this->firstlogline); - - $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); - $this->assertEquals($infoexpected, $info); - //returns cached value - $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); - $this->assertEquals($infoexpected, $info); - } - - /** - * request current version, with chuncked reading - */ - function test_requestrecentestlogline_chuncked() { - $rev = 1374261194; - $infoexpected = parseChangelogLine($this->firstlogline); - - $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 512, $media = false); - $this->assertEquals($infoexpected, $info); - } - - /** - * request negative revision - */ - function test_negativerev() { - $rev = -10; - - $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); - $this->assertEquals(false, $info); - } - - /** - * request non existing revision somewhere between existing revisions - */ - function test_notexistingrev() { - $rev = 1362525890; - - $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); - $this->assertEquals(false, $info); - } - - /** - * sometimes chuncksize is set to true - */ - function test_chuncksizetrue() { - $rev = 1362525899; - $infoexpected = parseChangelogLine($this->logline); - - $info = getRevisionInfo($this->pageid, $rev, true); - $this->assertEquals($infoexpected, $info); - } -} \ No newline at end of file diff --git a/_test/tests/inc/changelog_getRevisions.class.php b/_test/tests/inc/changelog_getRevisions.class.php deleted file mode 100644 index a9be26dae..000000000 --- a/_test/tests/inc/changelog_getRevisions.class.php +++ /dev/null @@ -1,200 +0,0 @@ -assertEquals($revsexpected, $revs); - } - - /** - * request first recentest revision - * (so skips first line which belongs to the current existing page) - */ - function test_requestlastrev() { - $first = 0; - $num = 1; - $revsexpected = array($this->revsexpected[1]); - - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); - $this->assertEquals($revsexpected, $revs); - - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); - $this->assertEquals($revsexpected, $revs); - } - - /** - * request first recentest revision - * (so skips first line which belongs to the current existing page) - */ - function test_requestonebutlastrev() { - $first = 1; - $num = 1; - $revsexpected = array($this->revsexpected[2]); - - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); - $this->assertEquals($revsexpected, $revs); - - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); - $this->assertEquals($revsexpected, $revs); - } - - /** - * request first recentest revision - * (so skips first line of current existing page) - */ - function test_requestrevswithoffset() { - $first = 10; - $num = 5; - $revsexpected = array_slice($this->revsexpected, $first + 1, $num); - - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); - $this->assertEquals($revsexpected, $revs); - - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); - $this->assertEquals($revsexpected, $revs); - } - - /** - * first = -1 requests recentest logline, without skipping - */ - function test_requestrecentestlogline() { - $first = -1; - $num = 1; - $revsexpected = array($this->revsexpected[0]); - - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); - $this->assertEquals($revsexpected, $revs); - - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); - $this->assertEquals($revsexpected, $revs); - } - - /** - * chunck size = 0 skips chuncked loading - */ - function test_wholefile() { - $first = 0; - $num = 1000; - $revsexpected = array_slice($this->revsexpected, 1); - - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 0, $media = false); - $this->assertEquals($revsexpected, $revs); - } - - /** - * Negative range returns no result - */ - function test_negativenum() { - $first = 0; - $num = -10; - $revsexpected = array(); - - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); - $this->assertEquals($revsexpected, $revs); - - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); - $this->assertEquals($revsexpected, $revs); - } - - /** - * Negative range returns no result - */ - function test_negativennumoffset() { - $first = 2; - $num = -10; - $revsexpected = array(); - - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); - $this->assertEquals($revsexpected, $revs); - - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); - $this->assertEquals($revsexpected, $revs); - } - - /** - * zero range returns no result - */ - function test_zeronum() { - $first = 5; - $num = 0; - $revsexpected = array(); - - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); - $this->assertEquals($revsexpected, $revs); - - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); - $this->assertEquals($revsexpected, $revs); - } - - /** - * get oldest revisions - */ - function test_requestlargeoffset() { - $first = 22; - $num = 50; - $revsexpected = array_slice($this->revsexpected, $first + 1); - - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); - $this->assertEquals($revsexpected, $revs); - } - - /** - * request with too large offset and range - */ - function test_requesttoolargenumberrevs() { - $first = 50; - $num = 50; - $revsexpected = array(); - - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); - $this->assertEquals($revsexpected, $revs); - } - -} \ No newline at end of file diff --git a/_test/tests/inc/changelog_getrevisioninfo.test.php b/_test/tests/inc/changelog_getrevisioninfo.test.php new file mode 100644 index 000000000..9637d21c8 --- /dev/null +++ b/_test/tests/inc/changelog_getrevisioninfo.test.php @@ -0,0 +1,120 @@ +assertEquals($revsexpected, $revs); + } + + /** + * request existing rev + */ + function test_requestrev() { + $rev = 1362525899; + $infoexpected = parseChangelogLine($this->logline); + + $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); + $this->assertEquals($infoexpected, $info); + //returns cached value + $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); + $this->assertEquals($infoexpected, $info); + } + + /** + * request existing rev with chucked reading + */ + function test_requestrev_chuncked() { + $rev = 1362525899; + $infoexpected = parseChangelogLine($this->logline); + + $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 512, $media = false); + $this->assertEquals($infoexpected, $info); + } + + /** + * request current version + */ + function test_requestrecentestlogline() { + $rev = 1374261194; + $infoexpected = parseChangelogLine($this->firstlogline); + + $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); + $this->assertEquals($infoexpected, $info); + //returns cached value + $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); + $this->assertEquals($infoexpected, $info); + } + + /** + * request current version, with chuncked reading + */ + function test_requestrecentestlogline_chuncked() { + $rev = 1374261194; + $infoexpected = parseChangelogLine($this->firstlogline); + + $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 512, $media = false); + $this->assertEquals($infoexpected, $info); + } + + /** + * request negative revision + */ + function test_negativerev() { + $rev = -10; + + $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); + $this->assertEquals(false, $info); + } + + /** + * request non existing revision somewhere between existing revisions + */ + function test_notexistingrev() { + $rev = 1362525890; + + $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); + $this->assertEquals(false, $info); + } + + /** + * sometimes chuncksize is set to true + */ + function test_chuncksizetrue() { + $rev = 1362525899; + $infoexpected = parseChangelogLine($this->logline); + + $info = getRevisionInfo($this->pageid, $rev, true); + $this->assertEquals($infoexpected, $info); + } +} \ No newline at end of file diff --git a/_test/tests/inc/changelog_getrevisions.test.php b/_test/tests/inc/changelog_getrevisions.test.php new file mode 100644 index 000000000..a9be26dae --- /dev/null +++ b/_test/tests/inc/changelog_getrevisions.test.php @@ -0,0 +1,200 @@ +assertEquals($revsexpected, $revs); + } + + /** + * request first recentest revision + * (so skips first line which belongs to the current existing page) + */ + function test_requestlastrev() { + $first = 0; + $num = 1; + $revsexpected = array($this->revsexpected[1]); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $this->assertEquals($revsexpected, $revs); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); + $this->assertEquals($revsexpected, $revs); + } + + /** + * request first recentest revision + * (so skips first line which belongs to the current existing page) + */ + function test_requestonebutlastrev() { + $first = 1; + $num = 1; + $revsexpected = array($this->revsexpected[2]); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $this->assertEquals($revsexpected, $revs); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); + $this->assertEquals($revsexpected, $revs); + } + + /** + * request first recentest revision + * (so skips first line of current existing page) + */ + function test_requestrevswithoffset() { + $first = 10; + $num = 5; + $revsexpected = array_slice($this->revsexpected, $first + 1, $num); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $this->assertEquals($revsexpected, $revs); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); + $this->assertEquals($revsexpected, $revs); + } + + /** + * first = -1 requests recentest logline, without skipping + */ + function test_requestrecentestlogline() { + $first = -1; + $num = 1; + $revsexpected = array($this->revsexpected[0]); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $this->assertEquals($revsexpected, $revs); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); + $this->assertEquals($revsexpected, $revs); + } + + /** + * chunck size = 0 skips chuncked loading + */ + function test_wholefile() { + $first = 0; + $num = 1000; + $revsexpected = array_slice($this->revsexpected, 1); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 0, $media = false); + $this->assertEquals($revsexpected, $revs); + } + + /** + * Negative range returns no result + */ + function test_negativenum() { + $first = 0; + $num = -10; + $revsexpected = array(); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $this->assertEquals($revsexpected, $revs); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); + $this->assertEquals($revsexpected, $revs); + } + + /** + * Negative range returns no result + */ + function test_negativennumoffset() { + $first = 2; + $num = -10; + $revsexpected = array(); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $this->assertEquals($revsexpected, $revs); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); + $this->assertEquals($revsexpected, $revs); + } + + /** + * zero range returns no result + */ + function test_zeronum() { + $first = 5; + $num = 0; + $revsexpected = array(); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $this->assertEquals($revsexpected, $revs); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); + $this->assertEquals($revsexpected, $revs); + } + + /** + * get oldest revisions + */ + function test_requestlargeoffset() { + $first = 22; + $num = 50; + $revsexpected = array_slice($this->revsexpected, $first + 1); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $this->assertEquals($revsexpected, $revs); + } + + /** + * request with too large offset and range + */ + function test_requesttoolargenumberrevs() { + $first = 50; + $num = 50; + $revsexpected = array(); + + $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $this->assertEquals($revsexpected, $revs); + } + +} \ No newline at end of file -- cgit v1.2.3 From 66d935e75f9ebbb37332c14e0a9425170c7c9330 Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Sat, 17 Aug 2013 21:33:32 +0200 Subject: Fix backlinks for internal links with parameters This adds the parameter extraction code from the xhtml renderer to the metadata renderer in order to not to include the parameters in the id that is recorded as link target. A test case checks that the link is actually returned as backlink (fails without the fix). --- _test/tests/inc/fulltext_backlinks.test.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to '_test') diff --git a/_test/tests/inc/fulltext_backlinks.test.php b/_test/tests/inc/fulltext_backlinks.test.php index 058e13498..b20a16ee1 100644 --- a/_test/tests/inc/fulltext_backlinks.test.php +++ b/_test/tests/inc/fulltext_backlinks.test.php @@ -8,7 +8,7 @@ if (!defined('DOKU_INC')) die(); * * @author Michael Hamann */ -class fultext_backlinks_test extends DokuWikiTest { +class fulltext_backlinks_test extends DokuWikiTest { public function test_internallink() { saveWikiText('test:internallinks', '[[internälLink]] [[..:internal link]]', 'Test initialization'); @@ -74,4 +74,12 @@ class fultext_backlinks_test extends DokuWikiTest { $this->assertEquals(array(), ft_backlinks('test:internallink')); $this->assertEquals(array(), ft_backlinks('internal_link')); } + + function test_parameters() { + saveWikiText('test:links', '[[wiki:syntax?do=export_raw]] [[:web:scripts:add_vhost.sh?do=export_raw]]', 'Init tests'); + idx_addPage('test:links'); + + $this->assertEquals(array('test:links'), ft_backlinks('wiki:syntax')); + $this->assertEquals(array('test:links'), ft_backlinks('web:scripts:add_vhost.sh')); + } } -- cgit v1.2.3 From 8ef75711c492f1188d121995778e82cd5aa95e1b Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Thu, 19 Sep 2013 21:34:37 +0200 Subject: Extend pageutils_clean_id tests to show more behavior details --- _test/tests/inc/pageutils_clean_id.test.php | 3 +++ 1 file changed, 3 insertions(+) (limited to '_test') diff --git a/_test/tests/inc/pageutils_clean_id.test.php b/_test/tests/inc/pageutils_clean_id.test.php index 478fd2bc4..f67109ba3 100644 --- a/_test/tests/inc/pageutils_clean_id.test.php +++ b/_test/tests/inc/pageutils_clean_id.test.php @@ -43,6 +43,9 @@ class init_clean_id_test extends DokuWikiTest { $tests[] = array('ns._#!ns:page','false','ns._ns:page'); $tests[] = array('ns_:page',false,'ns:page'); $tests[] = array('page...page','false','page...page'); + $tests[] = array('page---page','false','page---page'); + $tests[] = array('page___page','false','page_page'); + $tests[] = array('page_-.page','false','page_-.page'); $tests[] = array(':page',false,'page'); $tests[] = array(':ns:page',false,'ns:page'); $tests[] = array('page:',false,'page'); -- cgit v1.2.3 From 0d9a72ff5d870d72772f5f6b4b83b8ee0b4a1f05 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Wed, 25 Sep 2013 18:16:00 +0200 Subject: added unittests for rowspans at first table row --- _test/tests/inc/parser/parser_table.test.php | 58 ++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) (limited to '_test') diff --git a/_test/tests/inc/parser/parser_table.test.php b/_test/tests/inc/parser/parser_table.test.php index 96789c38c..542a307b8 100644 --- a/_test/tests/inc/parser/parser_table.test.php +++ b/_test/tests/inc/parser/parser_table.test.php @@ -270,6 +270,64 @@ def'); ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } + + function testCellRowSpanFirstRow() { + $this->P->addMode('table',new Doku_Parser_Mode_Table()); + $this->P->parse(' +abc +|::: ^ d:::^:::| ::: | +| b ^ e | | ::: | +|c ^ ::: | |:::| +def'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n\nabc")), + array('p_close',array()), + array('table_open',array(4, 3, 6)), + array('tablerow_open',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array('')), + array('tablecell_close',array()), + array('tableheader_open',array(1,'right',1)), + array('cdata',array(' d:::')), + array('tableheader_close',array()), + array('tableheader_open',array(1,NULL,1)), + array('cdata',array('')), + array('tableheader_close',array()), + array('tablecell_open',array(1,NULL,3)), + array('cdata',array('')), + array('tablecell_close',array()), + array('tablerow_close',array()), + array('tablerow_open',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array(' b ')), + array('tablecell_close',array()), + array('tableheader_open',array(1,'left',2)), + array('cdata',array(' e ')), + array('tableheader_close',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array(' ')), + array('tablecell_close',array()), + array('tablerow_close',array()), + array('tablerow_open',array()), + array('tablecell_open',array(1,'left',1)), + array('cdata',array('c ')), + array('tablecell_close',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array(' ')), + array('tablecell_close',array()), + array('tablerow_close',array()), + + array('table_close',array(69)), + array('p_open',array()), + array('cdata',array('def')), + array('p_close',array()), + array('document_end',array()), + ); + $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + } function testCellAlignmentFormatting() { $this->P->addMode('table',new Doku_Parser_Mode_Table()); -- cgit v1.2.3 From 0ee5ed1e998c1e67c4a0b7687977c4e2e0f29494 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 12 Oct 2013 12:41:24 +0200 Subject: IETF's message lint service as a test for Mailer class --- _test/tests/inc/mailer.test.php | 56 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) (limited to '_test') diff --git a/_test/tests/inc/mailer.test.php b/_test/tests/inc/mailer.test.php index ef78692b3..fefb6f508 100644 --- a/_test/tests/inc/mailer.test.php +++ b/_test/tests/inc/mailer.test.php @@ -156,5 +156,61 @@ class mailer_test extends DokuWikiTest { $this->assertEquals(0, preg_match('/(^|\n)Bcc: (\n|$)/', $header), 'Bcc found in headers.'); $this->assertEquals(0, preg_match('/(^|\n)Cc: (\n|$)/', $header), 'Bcc found in headers.'); } + + /** + * @group internet + */ + function test_lint(){ + // prepare a simple multipart message + $mail = new TestMailer(); + $mail->to(array('Möp ',' foo ')); + $mail->subject('This is a töst'); + $mail->setBody('Hello Wörld, + + please don\'t burn, okay? + '); + $mail->attachContent('some test data', 'text/plain', 'text.txt'); + $msg = $mail->dump(); + $msglines = explode("\n", $msg); + + // ask message lint if it is okay + $html = new HTTPClient(); + $results = $html->post('http://tools.ietf.org/tools/msglint/msglint', array('msg'=>$msg)); + $this->assertTrue($results !== false); + + // parse the result lines + $lines = explode("\n", $results); + $rows = count($lines); + $i=0; + while(trim($lines[$i]) != '-----------' && $i<$rows) $i++; //skip preamble + for($i=$i+1; $i<$rows; $i++){ + $line = trim($lines[$i]); + if($line == '-----------') break; //skip appendix + + // get possible continuation of the line + while($lines[$i+1][0] == ' '){ + $line .= ' '.trim($lines[$i+1]); + $i++; + } + + // check the line for errors + if(substr($line,0,5) == 'ERROR'){ + // get the context in which the error occured + $errorin = ''; + if(preg_match('/line (\d+)$/', $line, $m)){ + $errorin .= "\n".$msglines[$m[1] - 1]; + } + if(preg_match('/lines (\d+)-(\d+)$/', $line, $m)){ + for($x=$m[1]-1; $x<$m[2]; $x++){ + $errorin .= "\n".$msglines[$x]; + } + } + + // raise the error + throw new Exception($line.$errorin); + } + } + + } } //Setup VIM: ex: et ts=4 : -- cgit v1.2.3 From d6e04b603a81d6c55c3bb71974689892762b6a01 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 12 Oct 2013 13:30:54 +0200 Subject: successfully validate Mailer mails with msglint --- _test/tests/inc/mailer.test.php | 7 +++++++ 1 file changed, 7 insertions(+) (limited to '_test') diff --git a/_test/tests/inc/mailer.test.php b/_test/tests/inc/mailer.test.php index fefb6f508..feb454fcf 100644 --- a/_test/tests/inc/mailer.test.php +++ b/_test/tests/inc/mailer.test.php @@ -164,6 +164,7 @@ class mailer_test extends DokuWikiTest { // prepare a simple multipart message $mail = new TestMailer(); $mail->to(array('Möp ',' foo ')); + $mail->from('Me '); $mail->subject('This is a töst'); $mail->setBody('Hello Wörld, @@ -173,6 +174,8 @@ class mailer_test extends DokuWikiTest { $msg = $mail->dump(); $msglines = explode("\n", $msg); + //echo $msg; + // ask message lint if it is okay $html = new HTTPClient(); $results = $html->post('http://tools.ietf.org/tools/msglint/msglint', array('msg'=>$msg)); @@ -195,6 +198,10 @@ class mailer_test extends DokuWikiTest { // check the line for errors if(substr($line,0,5) == 'ERROR'){ + // ignore some errors + if(strpos($line, "missing mandatory header 'return-path'")) continue; #set by MDA + if(strpos($line, "bare newline in text body decoded")) continue; #seems to be false positive + // get the context in which the error occured $errorin = ''; if(preg_match('/line (\d+)$/', $line, $m)){ -- cgit v1.2.3 From ec82d005b6a02f137645cd756cccfbab7025047a Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 12 Oct 2013 14:07:59 +0200 Subject: check msglint for warnings, too --- _test/tests/inc/mailer.test.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/mailer.test.php b/_test/tests/inc/mailer.test.php index feb454fcf..3a89413b4 100644 --- a/_test/tests/inc/mailer.test.php +++ b/_test/tests/inc/mailer.test.php @@ -170,7 +170,7 @@ class mailer_test extends DokuWikiTest { please don\'t burn, okay? '); - $mail->attachContent('some test data', 'text/plain', 'text.txt'); + $mail->attachContent('some test data', 'text/plain', 'a text.txt'); $msg = $mail->dump(); $msglines = explode("\n", $msg); @@ -197,7 +197,7 @@ class mailer_test extends DokuWikiTest { } // check the line for errors - if(substr($line,0,5) == 'ERROR'){ + if(substr($line,0,5) == 'ERROR' || substr($line,0,7) == 'WARNING'){ // ignore some errors if(strpos($line, "missing mandatory header 'return-path'")) continue; #set by MDA if(strpos($line, "bare newline in text body decoded")) continue; #seems to be false positive -- cgit v1.2.3 From a467e020fa551217347181ffd6915c7d29e6ff59 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Tue, 15 Oct 2013 11:35:26 +0200 Subject: Added unit tests for CSS shorthand compression FS#2509 --- _test/tests/lib/exe/css_css_compress.test.php | 40 +++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to '_test') diff --git a/_test/tests/lib/exe/css_css_compress.test.php b/_test/tests/lib/exe/css_css_compress.test.php index a7c87b6a7..a614ea2fd 100644 --- a/_test/tests/lib/exe/css_css_compress.test.php +++ b/_test/tests/lib/exe/css_css_compress.test.php @@ -62,6 +62,46 @@ class css_css_compress_test extends DokuWikiTest { $this->assertEquals(css_compress($text), 'a{left:20px;top:20px}'); } + function test_shortening() { + $input = array( + 'margin:0em 0em 0em 0em ul.test margin:0em :0em div#FFFFFF {', + 'margin: 1px 1px 1px 1px;', + 'padding: 1px 2px 1px 2px;', + 'margin: 1px 2px 3px 1px;', + 'padding: 1px 2px 3px 4px;', + 'margin: 00.00em 0em 01.00px 0em;', + 'padding: 0010em 0010.00em 00.00em 00.00100em;', + 'padding: 0010% 0010.00% 00.00% 00.00100xxx;', + 'padding: 0.0em .0em 0.em 00.00em;', + 'padding: 01.0em;', + 'color: #FFFFFF;', + 'color: #777777;', + 'color: #123456;', + 'border: 01.0em solid #ffffff;', + ); + + $expected = array( + 'margin:0em 0em 0em 0em ul.test margin:0em :0em div#FFFFFF{', + 'margin:1px;', + 'padding:1px 2px;', + 'margin:1px 2px 3px 1px;', + 'padding:1px 2px 3px 4px;', + 'margin:0 0 1px 0;', + 'padding:10em 10em 0 .001em;', + 'padding:10% 10% 0 00.00100xxx;', + 'padding:0;', + 'padding:1em;', + 'color:#FFF;', + 'color:#777;', + 'color:#123456;', + 'border:1em solid #fff;', + ); + + $input = array_map('css_compress', $input); + + $this->assertEquals($expected, $input); + } + } //Setup VIM: ex: et ts=4 : -- cgit v1.2.3 From 74ed54d4f9a7c9796916f33f649ef94619a31704 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Wed, 16 Oct 2013 11:29:27 +0200 Subject: fix signature mail unittest, and improve some signatures info plugin --- _test/tests/inc/subscription.test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '_test') diff --git a/_test/tests/inc/subscription.test.php b/_test/tests/inc/subscription.test.php index 333400576..34a7b9e4b 100644 --- a/_test/tests/inc/subscription.test.php +++ b/_test/tests/inc/subscription.test.php @@ -237,7 +237,7 @@ class MockupSubscription extends Subscription { return parent::buildregex($user, $style, $data); } - protected function send($subscriber_mail, $subject, $id, $template, $trep, $hrep = null) { + protected function send($subscriber_mail, $subject, $id, $template, $trep, $hrep = null, $headers = array()) { $this->mails[] = $subscriber_mail; return true; } -- cgit v1.2.3 From c8d2e830e238503225cac35736b815864d334b1d Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Wed, 16 Oct 2013 21:50:25 +0100 Subject: escape '$' in mailer test strings --- _test/tests/inc/mailer.test.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/mailer.test.php b/_test/tests/inc/mailer.test.php index 3a89413b4..dc234232f 100644 --- a/_test/tests/inc/mailer.test.php +++ b/_test/tests/inc/mailer.test.php @@ -50,8 +50,8 @@ class mailer_test extends DokuWikiTest { // set a bunch of test headers $mail->setHeader('test-header','bla'); $mail->setHeader('to','A valid ASCII name '); - $mail->setHeader('from',"Thös ne\needs\x00serious cleaning$§%."); - $mail->setHeader('bad',"Thös ne\needs\x00serious cleaning$§%.",false); + $mail->setHeader('from',"Thös ne\needs\x00serious cleaning\$§%."); + $mail->setHeader('bad',"Thös ne\needs\x00serious cleaning\$§%.",false); $mail->setHeader("weird\n*+\x00foo.-_@bar?",'now clean'); // are they set? -- cgit v1.2.3 From 4d8acaacee33f49d51c06f6dae1dbe245018a020 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Wed, 16 Oct 2013 21:52:02 +0100 Subject: remove '&' reference operator from metadata test, not required in php5 --- _test/tests/inc/parserutils_set_metadata_during_rendering.test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '_test') diff --git a/_test/tests/inc/parserutils_set_metadata_during_rendering.test.php b/_test/tests/inc/parserutils_set_metadata_during_rendering.test.php index f08785ca2..18660553d 100644 --- a/_test/tests/inc/parserutils_set_metadata_during_rendering.test.php +++ b/_test/tests/inc/parserutils_set_metadata_during_rendering.test.php @@ -80,7 +80,7 @@ class parserutils_set_metadata_during_rendering_test extends DokuWikiTest { } // wrapper function for the fake plugin controller, return $this for the fake syntax of this test - function &load($type,$name,$new=false,$disabled=false){ + function load($type,$name,$new=false,$disabled=false){ if ($name == 'parserutils_test') { return $this; } else { -- cgit v1.2.3 From 4e2ac2e47ffdfffadfa5674d55f6f96c5e1cae77 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Fri, 18 Oct 2013 12:05:50 +0100 Subject: add missing $_SERVER values for init.php when called from cli --- _test/bootstrap.php | 7 +++++++ 1 file changed, 7 insertions(+) (limited to '_test') diff --git a/_test/bootstrap.php b/_test/bootstrap.php index 732fef9ed..3f59db515 100644 --- a/_test/bootstrap.php +++ b/_test/bootstrap.php @@ -68,6 +68,13 @@ $default_server_vars = array( 'REQUEST_TIME' => time(), ); +// fixup for $_SERVER when run from CLI, +// some values should be mocked for use by inc/init.php which is called here +// [ $_SERVER is also mocked in TestRequest::execute() ] +if (php_sapi_name() == 'cli') { + $_SERVER = array_merge($default_server_vars, $_SERVER); +} + // create temp directories mkdir(TMP_DIR); -- cgit v1.2.3 From eb9dc16998a7eb887015ef72e4100eb20617e7b8 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Fri, 18 Oct 2013 12:27:17 +0100 Subject: set error level so it is propagated correctly to dokuwiki --- _test/bootstrap.php | 1 + 1 file changed, 1 insertion(+) (limited to '_test') diff --git a/_test/bootstrap.php b/_test/bootstrap.php index 732fef9ed..4cb6420bd 100644 --- a/_test/bootstrap.php +++ b/_test/bootstrap.php @@ -15,6 +15,7 @@ require_once DOKU_UNITTEST.'core/TestUtils.php'; define('SIMPLE_TEST', true); // basic behaviours +define('DOKU_E_LEVEL',E_ALL); error_reporting(E_ALL); set_time_limit(0); ini_set('memory_limit','2048M'); -- cgit v1.2.3 From 9aac3abfe47b9ff6977643d06caf0f9520cd55f1 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Fri, 18 Oct 2013 12:33:07 +0100 Subject: also use DOKU_E_LEVEL in bootstrap's call to error_reporting() --- _test/bootstrap.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '_test') diff --git a/_test/bootstrap.php b/_test/bootstrap.php index 4cb6420bd..c3eba048a 100644 --- a/_test/bootstrap.php +++ b/_test/bootstrap.php @@ -16,7 +16,7 @@ define('SIMPLE_TEST', true); // basic behaviours define('DOKU_E_LEVEL',E_ALL); -error_reporting(E_ALL); +error_reporting(DOKU_E_LEVEL); set_time_limit(0); ini_set('memory_limit','2048M'); -- cgit v1.2.3 From d301130ed39d5dad319c60cdb3879c6751611831 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Sat, 19 Oct 2013 14:35:22 +0100 Subject: additional auth_nameencode tests (apostrophe & backslash) --- _test/tests/inc/auth_nameencode.test.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to '_test') diff --git a/_test/tests/inc/auth_nameencode.test.php b/_test/tests/inc/auth_nameencode.test.php index da9f31f90..074155486 100644 --- a/_test/tests/inc/auth_nameencode.test.php +++ b/_test/tests/inc/auth_nameencode.test.php @@ -19,6 +19,18 @@ class auth_nameencode_test extends DokuWikiTest { $this->assertEquals(auth_nameencode($in),$out); } + function test_apostrophe(){ + $in = 'hey\'you'; + $out = 'hey%27you'; + $this->assertEquals(auth_nameencode($in),$out); + } + + function test_backslash(){ + $in = 'hey\\you'; + $out = 'hey%5cyou'; + $this->assertEquals(auth_nameencode($in),$out); + } + function test_complex(){ $in = 'hey $ you !$%! foo '; $out = 'hey%20%24%20you%20%21%24%25%21%20foo%20'; -- cgit v1.2.3 From a8dba4523d2ecd09dd69a68a36673eaf5c009c57 Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Sat, 19 Oct 2013 16:09:15 +0200 Subject: Fix FS#2854: Treat numerically different keys as different --- _test/tests/inc/indexer_indexing.test.php | 45 +++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 _test/tests/inc/indexer_indexing.test.php (limited to '_test') diff --git a/_test/tests/inc/indexer_indexing.test.php b/_test/tests/inc/indexer_indexing.test.php new file mode 100644 index 000000000..8600cf156 --- /dev/null +++ b/_test/tests/inc/indexer_indexing.test.php @@ -0,0 +1,45 @@ + + */ +class indexer_indexing_test extends DokuWikiTest { + public function setUp() { + parent::setUp(); + saveWikiText('testpage', 'Foo bar baz.', 'Test initialization'); + saveWikiText('notfound', 'Foon barn bazn.', 'Test initialization'); + idx_addPage('testpage'); + idx_addPage('notfound'); + } + + public function test_words() { + $indexer = idx_get_indexer(); + $query = array('baz', 'foo'); + $this->assertEquals(array('baz' => array('testpage' => 1), 'foo' => array('testpage' => 1)), $indexer->lookup($query)); + } + + public function test_numerically_identical_words() { + $indexer = idx_get_indexer(); + $indexer->addPageWords('testpage', '0x1 002'); + $indexer->addPageWords('notfound', '0x2'); + $query = array('001', '002'); + $this->assertEquals(array('001' => array('notfound' => 1), '002' => array('testpage' => 1)), $indexer->lookup($query)); + } + + public function test_meta() { + $indexer = idx_get_indexer(); + $indexer->addMetaKeys('testpage', 'testkey', 'testvalue'); + $indexer->addMetaKeys('notfound', 'testkey', 'notvalue'); + $query = 'testvalue'; + $this->assertEquals(array('testpage'), $indexer->lookupKey('testkey', $query)); + } + + public function test_numerically_identical_meta_values() { + $indexer = idx_get_indexer(); + $indexer->addMetaKeys('testpage', 'numkey', array('0001', '01')); + $indexer->addMetaKeys('notfound', 'numkey', array('00001', '000001')); + $query = array('001', '01'); + $this->assertEquals(array('001' => array(), '01' => array('testpage')), $indexer->lookupKey('numkey', $query)); + } +} \ No newline at end of file -- cgit v1.2.3 From 9f5b9cf15569babaa90f0d6f3dd58cefd5439bc5 Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Sat, 19 Oct 2013 17:10:43 +0200 Subject: Fix the indexer indexing test case (changed the data but not the result) --- _test/tests/inc/indexer_indexing.test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '_test') diff --git a/_test/tests/inc/indexer_indexing.test.php b/_test/tests/inc/indexer_indexing.test.php index 8600cf156..628e82e00 100644 --- a/_test/tests/inc/indexer_indexing.test.php +++ b/_test/tests/inc/indexer_indexing.test.php @@ -24,7 +24,7 @@ class indexer_indexing_test extends DokuWikiTest { $indexer->addPageWords('testpage', '0x1 002'); $indexer->addPageWords('notfound', '0x2'); $query = array('001', '002'); - $this->assertEquals(array('001' => array('notfound' => 1), '002' => array('testpage' => 1)), $indexer->lookup($query)); + $this->assertEquals(array('001' => array(), '002' => array('testpage' => 1)), $indexer->lookup($query)); } public function test_meta() { -- cgit v1.2.3 From 698e7df8c9d5c43a93ed6822efa537158682a700 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Sat, 19 Oct 2013 18:24:20 +0100 Subject: add tests for usernames with 2 & 3 byte utf8 characters --- _test/tests/inc/auth_nameencode.test.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to '_test') diff --git a/_test/tests/inc/auth_nameencode.test.php b/_test/tests/inc/auth_nameencode.test.php index da9f31f90..64e437004 100644 --- a/_test/tests/inc/auth_nameencode.test.php +++ b/_test/tests/inc/auth_nameencode.test.php @@ -42,6 +42,22 @@ class auth_nameencode_test extends DokuWikiTest { $out = '%40hey%24you'; $this->assertEquals(auth_nameencode($in),$out); } + + // include a two byte utf8 character which shouldn't be encoded + function test_hebrew(){ + $in = 'nun-נ8'; + $expect = 'nun%2dנ8'; + + $this->assertEquals($expect, auth_nameencode($in)); + } + + // include a three byte utf8 character which shouldn't be encoded + function test_devanagiri(){ + $in = 'ut-fठ8'; + $expect = 'ut%2dfठ8'; + + $this->assertEquals($expect, auth_nameencode($in)); + } } //Setup VIM: ex: et ts=4 : -- cgit v1.2.3 From d1612d99b95fed9b053ebdb5e4c12f30aeb69203 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 20 Oct 2013 21:05:09 +0200 Subject: escaped another $ in mailer test --- _test/tests/inc/mailer.test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '_test') diff --git a/_test/tests/inc/mailer.test.php b/_test/tests/inc/mailer.test.php index dc234232f..bac0c39ba 100644 --- a/_test/tests/inc/mailer.test.php +++ b/_test/tests/inc/mailer.test.php @@ -63,7 +63,7 @@ class mailer_test extends DokuWikiTest { $this->assertArrayHasKey('From',$headers); $this->assertEquals('Ths neeedsserious cleaning.',$headers['From']); $this->assertArrayHasKey('Bad',$headers); - $this->assertEquals("Thös ne\needs\x00serious cleaning$§%.",$headers['Bad']); + $this->assertEquals("Thös ne\needs\x00serious cleaning\$§%.",$headers['Bad']); $this->assertArrayHasKey('Weird+foo.-_@bar',$headers); // unset a header again -- cgit v1.2.3 From 03a4f627659f89d54c121b485ca89dfaa4a304c0 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Sun, 20 Oct 2013 19:36:56 +0100 Subject: change error level to ignore notices --- _test/bootstrap.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '_test') diff --git a/_test/bootstrap.php b/_test/bootstrap.php index c3eba048a..9f4bb5fbd 100644 --- a/_test/bootstrap.php +++ b/_test/bootstrap.php @@ -15,7 +15,7 @@ require_once DOKU_UNITTEST.'core/TestUtils.php'; define('SIMPLE_TEST', true); // basic behaviours -define('DOKU_E_LEVEL',E_ALL); +define('DOKU_E_LEVEL',E_ALL ^ E_NOTICE); error_reporting(DOKU_E_LEVEL); set_time_limit(0); ini_set('memory_limit','2048M'); -- cgit v1.2.3 From 712c66312b26ec08723b47583b7be846451ed712 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 20 Oct 2013 21:28:32 +0200 Subject: more verbosity in test case --- _test/tests/inc/httpclient_http_proxy.test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '_test') diff --git a/_test/tests/inc/httpclient_http_proxy.test.php b/_test/tests/inc/httpclient_http_proxy.test.php index faa7a4280..c53e3579c 100644 --- a/_test/tests/inc/httpclient_http_proxy.test.php +++ b/_test/tests/inc/httpclient_http_proxy.test.php @@ -13,7 +13,7 @@ class httpclient_http_proxy_test extends DokuWikiTest { $http->proxy_port = 8080; $data = $http->get($this->url); - $this->assertFalse($data === false, 'HTTP response'); + $this->assertFalse($data === false, 'HTTP response '.$http->error); $this->assertTrue(strpos($data,'DokuWiki') !== false, 'response content'); } -- cgit v1.2.3 From b7cfeab63d3666a24fad96ae42669a2f55e9da03 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 20 Oct 2013 21:37:54 +0200 Subject: make sure HTTP test uses HTTP only and doesn't get redirected --- _test/tests/inc/httpclient_http_proxy.test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '_test') diff --git a/_test/tests/inc/httpclient_http_proxy.test.php b/_test/tests/inc/httpclient_http_proxy.test.php index c53e3579c..4aa039fcc 100644 --- a/_test/tests/inc/httpclient_http_proxy.test.php +++ b/_test/tests/inc/httpclient_http_proxy.test.php @@ -1,7 +1,7 @@ Date: Fri, 25 Oct 2013 13:30:27 +0100 Subject: unittests for auth_loadACL --- _test/tests/inc/auth_loadacl.test.php | 121 ++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 _test/tests/inc/auth_loadacl.test.php (limited to '_test') diff --git a/_test/tests/inc/auth_loadacl.test.php b/_test/tests/inc/auth_loadacl.test.php new file mode 100644 index 000000000..5e7ac3acf --- /dev/null +++ b/_test/tests/inc/auth_loadacl.test.php @@ -0,0 +1,121 @@ +assertEquals($expect, $this->auth_loadACL_testwrapper($acls)); + } + + function test_user_substitution() { + $acls = <<assertEquals($expect, $this->auth_loadACL_testwrapper($acls)); + } + + function test_group_substitution() { + $acls = <<assertEquals($expect, $this->auth_loadACL_testwrapper($acls)); + } + + function test_both_substitution() { + $acls = <<assertEquals($expect, $this->auth_loadACL_testwrapper($acls)); + } + + // put it all together - read the standard acl provided with the test suite + function test_standardtestacls(){ + $expect = array( + "*\t@ALL 8", + "private:*\t@ALL 0", + "users:*\t@ALL 1", + "users:testuser:*\ttestuser 16", + "groups:*\t@ALL 1", + "groups:foo:*\t@foo 16", + "groups:bar:*\t@bar 16", + ); + $this->assertEquals($expect, auth_loadACL()); + } + + // FS#2867, '\s' in php regular expressions may match non-space characters utf8 strings + // this is due to locale setting on the server, which may match bytes '\xA0' and '\x85' + // these two bytes are present in valid multi-byte UTF-8 characters. + // this test will use one, 'ठ' (DEVANAGARI LETTER TTHA, e0 a4 a0). There are many others. + function test_FS2867() { + global $USERINFO; + + setlocale(LC_ALL, "English_United States.1252"); // should only succeed on windows systems + setlocale(LC_ALL, "en_US.UTF-8"); // should succeed on other systems + + $_SERVER['REMOTE_USER'] = 'utfठ8'; + $USERINFO['grps'] = array('utfठ16','utfठa'); + + $acls = <<assertEquals($expect, $this->auth_loadACL_testwrapper($acls)); + } +} + +//Setup VIM: ex: et ts=4 : -- cgit v1.2.3 From 0113757259202e06f0316ef4be0f938b134e6e9c Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Fri, 25 Oct 2013 14:42:48 +0100 Subject: skip FS#2867 test if \s doesn't match \xA0 after attempting to change the locale --- _test/tests/inc/auth_loadacl.test.php | 6 ++++++ 1 file changed, 6 insertions(+) (limited to '_test') diff --git a/_test/tests/inc/auth_loadacl.test.php b/_test/tests/inc/auth_loadacl.test.php index 5e7ac3acf..64ab1b9cf 100644 --- a/_test/tests/inc/auth_loadacl.test.php +++ b/_test/tests/inc/auth_loadacl.test.php @@ -2,6 +2,7 @@ /** * auth_loadACL carries out the user & group substitutions * + * @author Chris Smith */ class auth_loadacl_test extends DokuWikiTest { @@ -99,6 +100,11 @@ ACL; setlocale(LC_ALL, "English_United States.1252"); // should only succeed on windows systems setlocale(LC_ALL, "en_US.UTF-8"); // should succeed on other systems + // no point continuing with this test if \s doesn't match A0 + if (!preg_match('/\s/',"\xa0")) { + $this->markTestSkipped('Unable to change locale.'); + } + $_SERVER['REMOTE_USER'] = 'utfठ8'; $USERINFO['grps'] = array('utfठ16','utfठa'); -- cgit v1.2.3 From 30eae85545994c10dcacb2d7becceaf569c99f65 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Fri, 25 Oct 2013 15:15:58 +0100 Subject: ensure locale is set back to the original value --- _test/tests/inc/auth_loadacl.test.php | 3 +++ 1 file changed, 3 insertions(+) (limited to '_test') diff --git a/_test/tests/inc/auth_loadacl.test.php b/_test/tests/inc/auth_loadacl.test.php index 64ab1b9cf..e8d9f6696 100644 --- a/_test/tests/inc/auth_loadacl.test.php +++ b/_test/tests/inc/auth_loadacl.test.php @@ -97,11 +97,13 @@ ACL; function test_FS2867() { global $USERINFO; + $old_locale = setlocale(LC_ALL, '0'); setlocale(LC_ALL, "English_United States.1252"); // should only succeed on windows systems setlocale(LC_ALL, "en_US.UTF-8"); // should succeed on other systems // no point continuing with this test if \s doesn't match A0 if (!preg_match('/\s/',"\xa0")) { + setlocale(LC_ALL, $old_locale); $this->markTestSkipped('Unable to change locale.'); } @@ -121,6 +123,7 @@ ACL; "devangariठttha\t@ALL 2", ); $this->assertEquals($expect, $this->auth_loadACL_testwrapper($acls)); + setlocale(LC_ALL, $old_locale); } } -- cgit v1.2.3 From 9269d0b1fb78c217069efd497734c183df9937be Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Tue, 29 Oct 2013 20:52:27 +0100 Subject: Fix the media usage index to include local links --- _test/tests/inc/fulltext_mediause.test.php | 7 +++++++ 1 file changed, 7 insertions(+) (limited to '_test') diff --git a/_test/tests/inc/fulltext_mediause.test.php b/_test/tests/inc/fulltext_mediause.test.php index 9d5b2dc84..503b8bc84 100644 --- a/_test/tests/inc/fulltext_mediause.test.php +++ b/_test/tests/inc/fulltext_mediause.test.php @@ -26,6 +26,13 @@ class fultext_mediause_test extends DokuWikiTest { $this->assertEquals(array('test:medialinks'), ft_mediause('test:example.png')); } + public function test_media_in_local_links() { + saveWikiText('test:locallinks', '[[#test|{{wiki:logolocal.png}}]]', 'Test init'); + idx_addPage('test:locallinks'); + + $this->assertEquals(array('test:locallinks'), ft_mediause('wiki:logolocal.png')); + } + public function test_media_in_footnotes() { saveWikiText('test:media_footnotes', '(({{footnote.png?20x50}} [[foonote|{{:footlink.png}}]]))', 'Test initialization'); idx_addPage('test:media_footnotes'); -- cgit v1.2.3