From f05a1cc5fcdb4c2b6ee3cbf499f980f800dbd105 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Thu, 17 Oct 2013 23:11:33 +0200 Subject: Wrap thead around 1st row, when 1st cell at 1st row is tableheader. Implements FS#1764 --- _test/tests/inc/parser/parser_table.test.php | 51 ++++++++++++++++++++++++++++ 1 file changed, 51 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 542a307b8..5258afe3d 100644 --- a/_test/tests/inc/parser/parser_table.test.php +++ b/_test/tests/inc/parser/parser_table.test.php @@ -125,6 +125,7 @@ def'); array('cdata',array("\n\nabc")), array('p_close',array()), array('table_open',array(3, 1, 6)), + array('tablethead_open',array()), array('tablerow_open',array()), array('tableheader_open',array(1,NULL,1)), array('cdata',array(' X ')), @@ -136,6 +137,7 @@ def'); array('cdata',array(' Z ')), array('tableheader_close',array()), array('tablerow_close',array()), + array('tablethead_close',array()), array('table_close',array(19)), array('p_open',array()), array('cdata',array('def')), @@ -146,6 +148,55 @@ def'); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } + + function testTableHeadersMultilines() { + $this->P->addMode('table',new Doku_Parser_Mode_Table()); + $this->P->parse(' +abc +^ X | Y ^ Z | +| A | B | 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(3, 2, 6)), + array('tablethead_open',array()), + array('tablerow_open',array()), + array('tableheader_open',array(1,NULL,1)), + array('cdata',array(' X ')), + array('tableheader_close',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array(' Y ')), + array('tablecell_close',array()), + array('tableheader_open',array(1,NULL,1)), + array('cdata',array(' Z ')), + array('tableheader_close',array()), + array('tablerow_close',array()), + array('tablethead_close',array()), + array('tablerow_open',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array(' A ')), + array('tablecell_close',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array(' B ')), + array('tablecell_close',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array(' C ')), + array('tablecell_close',array()), + array('tablerow_close',array()), + array('table_close',array(33)), + 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 testCellAlignment() { $this->P->addMode('table',new Doku_Parser_Mode_Table()); -- cgit v1.2.3 From 688ce8d8ab7995792e25b09b8481dc04c8363aab Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Fri, 18 Oct 2013 14:38:10 +0100 Subject: update tests for use with changes --- _test/tests/inc/parser/parser_table.test.php | 195 +++++++++++++++++++++++++-- 1 file changed, 183 insertions(+), 12 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/parser/parser_table.test.php b/_test/tests/inc/parser/parser_table.test.php index 5258afe3d..6961d568c 100644 --- a/_test/tests/inc/parser/parser_table.test.php +++ b/_test/tests/inc/parser/parser_table.test.php @@ -125,7 +125,6 @@ def'); array('cdata',array("\n\nabc")), array('p_close',array()), array('table_open',array(3, 1, 6)), - array('tablethead_open',array()), array('tablerow_open',array()), array('tableheader_open',array(1,NULL,1)), array('cdata',array(' X ')), @@ -137,7 +136,6 @@ def'); array('cdata',array(' Z ')), array('tableheader_close',array()), array('tablerow_close',array()), - array('tablethead_close',array()), array('table_close',array(19)), array('p_open',array()), array('cdata',array('def')), @@ -145,16 +143,15 @@ def'); array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); } - function testTableHeadersMultilines() { + function testTableHead() { $this->P->addMode('table',new Doku_Parser_Mode_Table()); $this->P->parse(' abc -^ X | Y ^ Z | -| A | B | C | +^ X ^ Y ^ Z ^ def'); $calls = array ( @@ -162,20 +159,70 @@ def'); array('p_open',array()), array('cdata',array("\n\nabc")), array('p_close',array()), - array('table_open',array(3, 2, 6)), + array('table_open',array(3, 1, 6)), array('tablethead_open',array()), array('tablerow_open',array()), array('tableheader_open',array(1,NULL,1)), array('cdata',array(' X ')), array('tableheader_close',array()), - array('tablecell_open',array(1,NULL,1)), + array('tableheader_open',array(1,NULL,1)), array('cdata',array(' Y ')), - array('tablecell_close',array()), + array('tableheader_close',array()), array('tableheader_open',array(1,NULL,1)), array('cdata',array(' Z ')), array('tableheader_close',array()), array('tablerow_close',array()), array('tablethead_close',array()), + array('table_close',array(19)), + array('p_open',array()), + array('cdata',array('def')), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); + + } + + function testTableHeadMultiline() { + $this->P->addMode('table',new Doku_Parser_Mode_Table()); + $this->P->parse(' +abc +^ X1 ^ Y1 ^ Z1 ^ +^ X2 ^ Y2 ^ Z2 ^ +| A | B | 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(3, 3, 6)), + array('tablethead_open',array()), + array('tablerow_open',array()), + array('tableheader_open',array(1,NULL,1)), + array('cdata',array(' X1 ')), + array('tableheader_close',array()), + array('tableheader_open',array(1,NULL,1)), + array('cdata',array(' Y1 ')), + array('tableheader_close',array()), + array('tableheader_open',array(1,NULL,1)), + array('cdata',array(' Z1 ')), + array('tableheader_close',array()), + array('tablerow_close',array()), + array('tablerow_open',array()), + array('tableheader_open',array(1,NULL,1)), + array('cdata',array(' X2 ')), + array('tableheader_close',array()), + array('tableheader_open',array(1,NULL,1)), + array('cdata',array(' Y2 ')), + array('tableheader_close',array()), + array('tableheader_open',array(1,NULL,1)), + array('cdata',array(' Z2 ')), + array('tableheader_close',array()), + array('tablerow_close',array()), + array('tablethead_close',array()), array('tablerow_open',array()), array('tablecell_open',array(1,NULL,1)), array('cdata',array(' A ')), @@ -187,14 +234,14 @@ def'); array('cdata',array(' C ')), array('tablecell_close',array()), array('tablerow_close',array()), - array('table_close',array(33)), + array('table_close',array(53)), 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); + $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); } @@ -380,6 +427,131 @@ def'); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } + function testRowSpanTableHead() { + $this->P->addMode('table',new Doku_Parser_Mode_Table()); + $this->P->parse(' +abc +^ X1 ^ Y1 ^ Z1 ^ +^ X2 ^ ::: ^ Z2 ^ +| A3 | B3 | C3 | +def'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n\nabc")), + array('p_close',array()), + array('table_open',array(3, 3, 6)), + array('tablethead_open',array()), + array('tablerow_open',array()), + array('tableheader_open',array(1,NULL,1)), + array('cdata',array(' X1 ')), + array('tableheader_close',array()), + array('tableheader_open',array(1,NULL,2)), + array('cdata',array(' Y1 ')), + array('tableheader_close',array()), + array('tableheader_open',array(1,NULL,1)), + array('cdata',array(' Z1 ')), + array('tableheader_close',array()), + array('tablerow_close',array()), + array('tablerow_open',array()), + array('tableheader_open',array(1,NULL,1)), + array('cdata',array(' X2 ')), + array('tableheader_close',array()), + array('tableheader_open',array(1,NULL,1)), + array('cdata',array(' Z2 ')), + array('tableheader_close',array()), + array('tablerow_close',array()), + array('tablethead_close',array()), + array('tablerow_open',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array(' A3 ')), + array('tablecell_close',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array(' B3 ')), + array('tablecell_close',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array(' C3 ')), + array('tablecell_close',array()), + array('tablerow_close',array()), + array('table_close',array(57)), + array('p_open',array()), + array('cdata',array('def')), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); + + } + + function testRowSpanAcrossTableHeadBoundary() { + $this->P->addMode('table',new Doku_Parser_Mode_Table()); + $this->P->parse(' +abc +^ X1 ^ Y1 ^ Z1 ^ +^ X2 ^ ::: ^ Z2 ^ +| A3 | ::: | C3 | +| A4 | ::: | C4 | +def'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n\nabc")), + array('p_close',array()), + array('table_open',array(3, 4, 6)), + array('tablethead_open',array()), + array('tablerow_open',array()), + array('tableheader_open',array(1,NULL,1)), + array('cdata',array(' X1 ')), + array('tableheader_close',array()), + array('tableheader_open',array(1,NULL,2)), + array('cdata',array(' Y1 ')), + array('tableheader_close',array()), + array('tableheader_open',array(1,NULL,1)), + array('cdata',array(' Z1 ')), + array('tableheader_close',array()), + array('tablerow_close',array()), + array('tablerow_open',array()), + array('tableheader_open',array(1,NULL,1)), + array('cdata',array(' X2 ')), + array('tableheader_close',array()), + array('tableheader_open',array(1,NULL,1)), + array('cdata',array(' Z2 ')), + array('tableheader_close',array()), + array('tablerow_close',array()), + array('tablethead_close',array()), + array('tablerow_open',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array(' A3 ')), + array('tablecell_close',array()), + array('tablecell_open',array(1,NULL,2)), + array('cdata',array('')), + array('tablecell_close',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array(' C3 ')), + array('tablecell_close',array()), + array('tablerow_close',array()), + array('tablerow_open',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array(' A4 ')), + array('tablecell_close',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array(' C4 ')), + array('tablecell_close',array()), + array('tablerow_close',array()), + array('table_close',array(76)), + array('p_open',array()), + array('cdata',array('def')), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); + + } + function testCellAlignmentFormatting() { $this->P->addMode('table',new Doku_Parser_Mode_Table()); $this->P->addMode('strong',new Doku_Parser_Mode_Formatting('strong')); @@ -678,4 +850,3 @@ def'); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } } - -- cgit v1.2.3 From e0328e30d24321e319e2733192bf829b9000c5eb Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Fri, 18 Oct 2013 14:42:46 +0100 Subject: swap order ot test parameters to match expected,actual as per documentation & test output --- _test/tests/inc/parser/parser_table.test.php | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/parser/parser_table.test.php b/_test/tests/inc/parser/parser_table.test.php index 6961d568c..d4596bc8a 100644 --- a/_test/tests/inc/parser/parser_table.test.php +++ b/_test/tests/inc/parser/parser_table.test.php @@ -44,7 +44,7 @@ def'); array('p_close',array()), array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); } function testTableWinEOL() { @@ -84,7 +84,7 @@ def'); array('p_close',array()), array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); } function testEmptyTable() { @@ -109,7 +109,7 @@ def'); array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); } function testTableHeaders() { @@ -276,7 +276,7 @@ def'); array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); } function testCellSpan() { @@ -318,7 +318,7 @@ def'); array('p_close',array()), array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); } function testCellRowSpan() { @@ -366,7 +366,7 @@ def'); array('p_close',array()), array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); } function testCellRowSpanFirstRow() { @@ -424,7 +424,7 @@ def'); array('p_close',array()), array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); } function testRowSpanTableHead() { @@ -588,7 +588,7 @@ def'); array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); } @@ -634,7 +634,7 @@ def'); array('p_close',array()), array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); } // This is really a failing test - formatting able to spread across cols @@ -689,7 +689,7 @@ def'); array('p_close',array()), array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); } // This is really a failing test - unformatted able to spread across cols @@ -740,7 +740,7 @@ def'); array('p_close',array()), array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); } function testTableLinebreak() { @@ -788,7 +788,7 @@ def'); array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); } // This is really a failing test - footnote able to spread across cols @@ -847,6 +847,6 @@ def'); array('p_close',array()), array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); } } -- cgit v1.2.3 From 6556cf69fed60e750c3d32c106427cdfbbfdf384 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Wed, 20 Nov 2013 13:20:54 +0100 Subject: Update changelog unit tests --- _test/tests/inc/changelog_getrevisioninfo.test.php | 30 +++++++----- _test/tests/inc/changelog_getrevisions.test.php | 56 ++++++++++++++-------- 2 files changed, 56 insertions(+), 30 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/changelog_getrevisioninfo.test.php b/_test/tests/inc/changelog_getrevisioninfo.test.php index 9637d21c8..a2f0d808f 100644 --- a/_test/tests/inc/changelog_getrevisioninfo.test.php +++ b/_test/tests/inc/changelog_getrevisioninfo.test.php @@ -21,7 +21,7 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { unset($cache['nonexist']); } if(isset($cache['mailinglist'])) { - unset($cache['nonexist']); + unset($cache['mailinglist']); } } @@ -33,7 +33,8 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { $id = 'nonexist'; $revsexpected = false; - $revs = getRevisionInfo($id, $rev, $chunk_size = 8192, $media = false); + $pagelog = new PageRevisionLog($id, $chunk_size = 8192); + $revs = $pagelog->getRevisionInfo($rev, $media = false); $this->assertEquals($revsexpected, $revs); } @@ -44,10 +45,11 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { $rev = 1362525899; $infoexpected = parseChangelogLine($this->logline); - $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); + $info = $pagelog->getRevisionInfo($rev, $media = false); $this->assertEquals($infoexpected, $info); //returns cached value - $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); + $info = $pagelog->getRevisionInfo($rev, $media = false); $this->assertEquals($infoexpected, $info); } @@ -58,7 +60,8 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { $rev = 1362525899; $infoexpected = parseChangelogLine($this->logline); - $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 512, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); + $info = $pagelog->getRevisionInfo($rev, $media = false); $this->assertEquals($infoexpected, $info); } @@ -69,10 +72,11 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { $rev = 1374261194; $infoexpected = parseChangelogLine($this->firstlogline); - $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); + $info = $pagelog->getRevisionInfo($rev, $media = false); $this->assertEquals($infoexpected, $info); //returns cached value - $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); + $info = $pagelog->getRevisionInfo($rev, $media = false); $this->assertEquals($infoexpected, $info); } @@ -83,7 +87,8 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { $rev = 1374261194; $infoexpected = parseChangelogLine($this->firstlogline); - $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 512, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); + $info = $pagelog->getRevisionInfo($rev, $media = false); $this->assertEquals($infoexpected, $info); } @@ -93,7 +98,8 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { function test_negativerev() { $rev = -10; - $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); + $info = $pagelog->getRevisionInfo($rev, $media = false); $this->assertEquals(false, $info); } @@ -103,7 +109,8 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { function test_notexistingrev() { $rev = 1362525890; - $info = getRevisionInfo($this->pageid, $rev, $chunk_size = 8192, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); + $info = $pagelog->getRevisionInfo($rev, $media = false); $this->assertEquals(false, $info); } @@ -114,7 +121,8 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { $rev = 1362525899; $infoexpected = parseChangelogLine($this->logline); - $info = getRevisionInfo($this->pageid, $rev, true); + $pagelog = new PageRevisionLog($this->pageid, true); + $info = $pagelog->getRevisionInfo($rev); $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 index a9be26dae..e2b9d115e 100644 --- a/_test/tests/inc/changelog_getrevisions.test.php +++ b/_test/tests/inc/changelog_getrevisions.test.php @@ -36,7 +36,7 @@ class changelog_getrevisions_test extends DokuWikiTest { unset($cache['nonexist']); } if(isset($cache['mailinglist'])) { - unset($cache['nonexist']); + unset($cache['mailinglist']); } } @@ -48,7 +48,8 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = 1; $id = 'nonexist'; - $revs = getRevisions($id, $first, $num, $chunk_size = 8192, $media = false); + $pagelog = new PageRevisionLog($id, $chunk_size = 8192); + $revs = $pagelog->getRevisions($first, $num, $media = false); $revsexpected = array(); $this->assertEquals($revsexpected, $revs); } @@ -62,10 +63,12 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = 1; $revsexpected = array($this->revsexpected[1]); - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisions($first, $num, $media = false); $this->assertEquals($revsexpected, $revs); - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisions($first, $num, $media = false); $this->assertEquals($revsexpected, $revs); } @@ -78,10 +81,12 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = 1; $revsexpected = array($this->revsexpected[2]); - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisions($first, $num, $media = false); $this->assertEquals($revsexpected, $revs); - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisions($first, $num, $media = false); $this->assertEquals($revsexpected, $revs); } @@ -94,10 +99,12 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = 5; $revsexpected = array_slice($this->revsexpected, $first + 1, $num); - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisions($first, $num, $media = false); $this->assertEquals($revsexpected, $revs); - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisions($first, $num, $media = false); $this->assertEquals($revsexpected, $revs); } @@ -109,10 +116,12 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = 1; $revsexpected = array($this->revsexpected[0]); - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisions($first, $num, $media = false); $this->assertEquals($revsexpected, $revs); - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisions($first, $num, $media = false); $this->assertEquals($revsexpected, $revs); } @@ -124,7 +133,8 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = 1000; $revsexpected = array_slice($this->revsexpected, 1); - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 0, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 0); + $revs = $pagelog->getRevisions($first, $num, $media = false); $this->assertEquals($revsexpected, $revs); } @@ -136,10 +146,12 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = -10; $revsexpected = array(); - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisions($first, $num, $media = false); $this->assertEquals($revsexpected, $revs); - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisions($first, $num, $media = false); $this->assertEquals($revsexpected, $revs); } @@ -151,10 +163,12 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = -10; $revsexpected = array(); - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->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); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisions($first, $num, $media = false); $this->assertEquals($revsexpected, $revs); } @@ -166,10 +180,12 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = 0; $revsexpected = array(); - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisions($first, $num, $media = false); $this->assertEquals($revsexpected, $revs); - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 512, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisions($first, $num, $media = false); $this->assertEquals($revsexpected, $revs); } @@ -181,7 +197,8 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = 50; $revsexpected = array_slice($this->revsexpected, $first + 1); - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisions($first, $num, $media = false); $this->assertEquals($revsexpected, $revs); } @@ -193,7 +210,8 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = 50; $revsexpected = array(); - $revs = getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisions($first, $num, $media = false); $this->assertEquals($revsexpected, $revs); } -- cgit v1.2.3 From 55545bcc9b8532818cc1fc8b920deb07cc3f2c61 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Wed, 20 Nov 2013 13:21:44 +0100 Subject: Add unit tests for getRelativerevision --- .../inc/changelog_getrelativerevision.test.php | 273 +++++++++++++++++++++ 1 file changed, 273 insertions(+) create mode 100644 _test/tests/inc/changelog_getrelativerevision.test.php (limited to '_test') 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 @@ +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 -- cgit v1.2.3 From 0f13c836f0ee71a3188a775b9ea64025e10d38f5 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Thu, 21 Nov 2013 18:02:12 +0100 Subject: Improved isCurrentRevision(), tests included --- .../inc/changelog_getrelativerevision.test.php | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to '_test') 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 -- cgit v1.2.3 From 047bad06fab8157452aa0dd04379a7c507b1f39f Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Thu, 21 Nov 2013 21:07:08 +0100 Subject: refactor PageRevisionLog into Media- and PageChangelog extending Changelog --- .../inc/changelog_getrelativerevision.test.php | 87 +++++++++++----------- _test/tests/inc/changelog_getrevisioninfo.test.php | 34 ++++----- _test/tests/inc/changelog_getrevisions.test.php | 72 +++++++++--------- 3 files changed, 96 insertions(+), 97 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/changelog_getrelativerevision.test.php b/_test/tests/inc/changelog_getrelativerevision.test.php index 588c424b1..fa4c68897 100644 --- a/_test/tests/inc/changelog_getrelativerevision.test.php +++ b/_test/tests/inc/changelog_getrelativerevision.test.php @@ -33,8 +33,8 @@ class changelog_getrelativerevision_test extends DokuWikiTest { $id = 'nonexist'; $revsexpected = false; - $pagelog = new PageRevisionLog($id, $chunk_size = 8192); - $revs = $pagelog->getRelativeRevision($rev, $dir, $media = false); + $pagelog = new PageChangeLog($id, $chunk_size = 8192); + $revs = $pagelog->getRelativeRevision($rev, $dir); $this->assertEquals($revsexpected, $revs); } @@ -46,8 +46,8 @@ class changelog_getrelativerevision_test extends DokuWikiTest { $dir = 0; $revsexpected = false; - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $revs = $pagelog->getRelativeRevision($rev, $dir, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRelativeRevision($rev, $dir); $this->assertEquals($revsexpected, $revs); } @@ -67,8 +67,8 @@ class changelog_getrelativerevision_test extends DokuWikiTest { // 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); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRelativeRevision($rev, $dir); $this->assertEquals($revsexpected, $revs); } @@ -81,11 +81,11 @@ class changelog_getrelativerevision_test extends DokuWikiTest { $revexpected = 1362525899; $infoexpected = parseChangelogLine($this->logline); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revfound = $pagelog->getRelativeRevision($rev, $dir); $this->assertEquals($revexpected, $revfound); //checked info returned from cache - $info = $pagelog->getRevisionInfo($revfound, $media = false); + $info = $pagelog->getRevisionInfo($revfound); $this->assertEquals($infoexpected, $info); } @@ -97,8 +97,8 @@ class changelog_getrelativerevision_test extends DokuWikiTest { $dir = 1; $revexpected = 1362525926; - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); - $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revfound = $pagelog->getRelativeRevision($rev, $dir); $this->assertEquals($revexpected, $revfound); } @@ -110,8 +110,8 @@ class changelog_getrelativerevision_test extends DokuWikiTest { $dir = 5; $revexpected = 1362526767; - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revfound = $pagelog->getRelativeRevision($rev, $dir); $this->assertEquals($revexpected, $revfound); } @@ -123,8 +123,8 @@ class changelog_getrelativerevision_test extends DokuWikiTest { $dir = 5; $revexpected = 1362526767; - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); - $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revfound = $pagelog->getRelativeRevision($rev, $dir); $this->assertEquals($revexpected, $revfound); } @@ -138,11 +138,11 @@ class changelog_getrelativerevision_test extends DokuWikiTest { $revexpected1 = 1362525359; $revexpected5 = 1360110636; - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $revfound1 = $pagelog->getRelativeRevision($rev, $dir1, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revfound1 = $pagelog->getRelativeRevision($rev, $dir1); $this->assertEquals($revexpected1, $revfound1); - $revfound5 = $pagelog->getRelativeRevision($rev, $dir5, $media = false); + $revfound5 = $pagelog->getRelativeRevision($rev, $dir5); $this->assertEquals($revexpected5, $revfound5); } @@ -156,11 +156,11 @@ class changelog_getrelativerevision_test extends DokuWikiTest { $revexpected1 = 1362525359; $revexpected5 = 1360110636; - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); - $revfound1 = $pagelog->getRelativeRevision($rev, $dir1, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revfound1 = $pagelog->getRelativeRevision($rev, $dir1); $this->assertEquals($revexpected1, $revfound1); - $revfound5 = $pagelog->getRelativeRevision($rev, $dir5, $media = false); + $revfound5 = $pagelog->getRelativeRevision($rev, $dir5); $this->assertEquals($revexpected5, $revfound5); } @@ -172,8 +172,8 @@ class changelog_getrelativerevision_test extends DokuWikiTest { $dir = 1; $revexpected = false; - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revfound = $pagelog->getRelativeRevision($rev, $dir); $this->assertEquals($revexpected, $revfound); } @@ -185,8 +185,8 @@ class changelog_getrelativerevision_test extends DokuWikiTest { $dir = 1; $revexpected = false; - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); - $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revfound = $pagelog->getRelativeRevision($rev, $dir); $this->assertEquals($revexpected, $revfound); } @@ -199,8 +199,8 @@ class changelog_getrelativerevision_test extends DokuWikiTest { $dir = -1; $revexpected = 1371579614; - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revfound = $pagelog->getRelativeRevision($rev, $dir); $this->assertEquals($revexpected, $revfound); } @@ -212,8 +212,8 @@ class changelog_getrelativerevision_test extends DokuWikiTest { $dir = -1; $revexpected = 1371579614; - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); - $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revfound = $pagelog->getRelativeRevision($rev, $dir); $this->assertEquals($revexpected, $revfound); } @@ -226,8 +226,8 @@ class changelog_getrelativerevision_test extends DokuWikiTest { $dir = 1; $revexpected = 1360110636; - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revfound = $pagelog->getRelativeRevision($rev, $dir); $this->assertEquals($revexpected, $revfound); } @@ -240,8 +240,8 @@ class changelog_getrelativerevision_test extends DokuWikiTest { $dir = -1; $revexpected = false; - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revfound = $pagelog->getRelativeRevision($rev, $dir); $this->assertEquals($revexpected, $revfound); } @@ -253,8 +253,8 @@ class changelog_getrelativerevision_test extends DokuWikiTest { $dir = 1; $revexpected = 1362525899; - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revfound = $pagelog->getRelativeRevision($rev, $dir); $this->assertEquals($revexpected, $revfound); } @@ -266,8 +266,8 @@ class changelog_getrelativerevision_test extends DokuWikiTest { $dir = -1; $revexpected = 1362525359; - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $revfound = $pagelog->getRelativeRevision($rev, $dir, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revfound = $pagelog->getRelativeRevision($rev, $dir); $this->assertEquals($revexpected, $revfound); } @@ -278,9 +278,8 @@ class changelog_getrelativerevision_test extends DokuWikiTest { //set a known timestamp touch(wikiFN($this->pageid), $rev); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - - $current = $pagelog->isCurrentRevision($rev, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $current = $pagelog->isCurrentRevision($rev); $this->assertEquals($currentexpected, $current); } @@ -292,8 +291,8 @@ class changelog_getrelativerevision_test extends DokuWikiTest { //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); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $current = $pagelog->isCurrentRevision($not_current_rev); $this->assertEquals($currentexpected, $current); } @@ -301,8 +300,8 @@ class changelog_getrelativerevision_test extends DokuWikiTest { $rev = 1385051947; $currentexpected = false; - $pagelog = new PageRevisionLog('nonexistingpage', $chunk_size = 8192); - $current = $pagelog->isCurrentRevision($rev, $media = false); + $pagelog = new PageChangeLog('nonexistingpage', $chunk_size = 8192); + $current = $pagelog->isCurrentRevision($rev); $this->assertEquals($currentexpected, $current); } } \ No newline at end of file diff --git a/_test/tests/inc/changelog_getrevisioninfo.test.php b/_test/tests/inc/changelog_getrevisioninfo.test.php index a2f0d808f..c073bac79 100644 --- a/_test/tests/inc/changelog_getrevisioninfo.test.php +++ b/_test/tests/inc/changelog_getrevisioninfo.test.php @@ -33,8 +33,8 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { $id = 'nonexist'; $revsexpected = false; - $pagelog = new PageRevisionLog($id, $chunk_size = 8192); - $revs = $pagelog->getRevisionInfo($rev, $media = false); + $pagelog = new PageChangeLog($id, $chunk_size = 8192); + $revs = $pagelog->getRevisionInfo($rev); $this->assertEquals($revsexpected, $revs); } @@ -45,11 +45,11 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { $rev = 1362525899; $infoexpected = parseChangelogLine($this->logline); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $info = $pagelog->getRevisionInfo($rev, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $info = $pagelog->getRevisionInfo($rev); $this->assertEquals($infoexpected, $info); //returns cached value - $info = $pagelog->getRevisionInfo($rev, $media = false); + $info = $pagelog->getRevisionInfo($rev); $this->assertEquals($infoexpected, $info); } @@ -60,8 +60,8 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { $rev = 1362525899; $infoexpected = parseChangelogLine($this->logline); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); - $info = $pagelog->getRevisionInfo($rev, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $info = $pagelog->getRevisionInfo($rev); $this->assertEquals($infoexpected, $info); } @@ -72,11 +72,11 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { $rev = 1374261194; $infoexpected = parseChangelogLine($this->firstlogline); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $info = $pagelog->getRevisionInfo($rev, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $info = $pagelog->getRevisionInfo($rev); $this->assertEquals($infoexpected, $info); //returns cached value - $info = $pagelog->getRevisionInfo($rev, $media = false); + $info = $pagelog->getRevisionInfo($rev); $this->assertEquals($infoexpected, $info); } @@ -87,8 +87,8 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { $rev = 1374261194; $infoexpected = parseChangelogLine($this->firstlogline); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); - $info = $pagelog->getRevisionInfo($rev, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $info = $pagelog->getRevisionInfo($rev); $this->assertEquals($infoexpected, $info); } @@ -98,8 +98,8 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { function test_negativerev() { $rev = -10; - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $info = $pagelog->getRevisionInfo($rev, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $info = $pagelog->getRevisionInfo($rev); $this->assertEquals(false, $info); } @@ -109,8 +109,8 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { function test_notexistingrev() { $rev = 1362525890; - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $info = $pagelog->getRevisionInfo($rev, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $info = $pagelog->getRevisionInfo($rev); $this->assertEquals(false, $info); } @@ -121,7 +121,7 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { $rev = 1362525899; $infoexpected = parseChangelogLine($this->logline); - $pagelog = new PageRevisionLog($this->pageid, true); + $pagelog = new PageChangeLog($this->pageid, true); $info = $pagelog->getRevisionInfo($rev); $this->assertEquals($infoexpected, $info); } diff --git a/_test/tests/inc/changelog_getrevisions.test.php b/_test/tests/inc/changelog_getrevisions.test.php index e2b9d115e..aa2198981 100644 --- a/_test/tests/inc/changelog_getrevisions.test.php +++ b/_test/tests/inc/changelog_getrevisions.test.php @@ -48,8 +48,8 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = 1; $id = 'nonexist'; - $pagelog = new PageRevisionLog($id, $chunk_size = 8192); - $revs = $pagelog->getRevisions($first, $num, $media = false); + $pagelog = new PageChangeLog($id, $chunk_size = 8192); + $revs = $pagelog->getRevisions($first, $num); $revsexpected = array(); $this->assertEquals($revsexpected, $revs); } @@ -63,12 +63,12 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = 1; $revsexpected = array($this->revsexpected[1]); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $revs = $pagelog->getRevisions($first, $num, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisions($first, $num); $this->assertEquals($revsexpected, $revs); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); - $revs = $pagelog->getRevisions($first, $num, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisions($first, $num); $this->assertEquals($revsexpected, $revs); } @@ -81,12 +81,12 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = 1; $revsexpected = array($this->revsexpected[2]); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $revs = $pagelog->getRevisions($first, $num, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisions($first, $num); $this->assertEquals($revsexpected, $revs); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); - $revs = $pagelog->getRevisions($first, $num, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisions($first, $num); $this->assertEquals($revsexpected, $revs); } @@ -99,12 +99,12 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = 5; $revsexpected = array_slice($this->revsexpected, $first + 1, $num); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $revs = $pagelog->getRevisions($first, $num, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisions($first, $num); $this->assertEquals($revsexpected, $revs); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); - $revs = $pagelog->getRevisions($first, $num, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisions($first, $num); $this->assertEquals($revsexpected, $revs); } @@ -116,12 +116,12 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = 1; $revsexpected = array($this->revsexpected[0]); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $revs = $pagelog->getRevisions($first, $num, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisions($first, $num); $this->assertEquals($revsexpected, $revs); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); - $revs = $pagelog->getRevisions($first, $num, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisions($first, $num); $this->assertEquals($revsexpected, $revs); } @@ -133,8 +133,8 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = 1000; $revsexpected = array_slice($this->revsexpected, 1); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 0); - $revs = $pagelog->getRevisions($first, $num, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 0); + $revs = $pagelog->getRevisions($first, $num); $this->assertEquals($revsexpected, $revs); } @@ -146,12 +146,12 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = -10; $revsexpected = array(); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $revs = $pagelog->getRevisions($first, $num, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisions($first, $num); $this->assertEquals($revsexpected, $revs); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); - $revs = $pagelog->getRevisions($first, $num, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisions($first, $num); $this->assertEquals($revsexpected, $revs); } @@ -163,12 +163,12 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = -10; $revsexpected = array(); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $revs = $pagelog->getRevisions($this->pageid, $first, $num, $chunk_size = 8192, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisions($this->pageid, $first, $num, $chunk_size = 8192); $this->assertEquals($revsexpected, $revs); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); - $revs = $pagelog->getRevisions($first, $num, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisions($first, $num); $this->assertEquals($revsexpected, $revs); } @@ -180,12 +180,12 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = 0; $revsexpected = array(); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $revs = $pagelog->getRevisions($first, $num, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisions($first, $num); $this->assertEquals($revsexpected, $revs); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 512); - $revs = $pagelog->getRevisions($first, $num, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisions($first, $num); $this->assertEquals($revsexpected, $revs); } @@ -197,8 +197,8 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = 50; $revsexpected = array_slice($this->revsexpected, $first + 1); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $revs = $pagelog->getRevisions($first, $num, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisions($first, $num); $this->assertEquals($revsexpected, $revs); } @@ -210,8 +210,8 @@ class changelog_getrevisions_test extends DokuWikiTest { $num = 50; $revsexpected = array(); - $pagelog = new PageRevisionLog($this->pageid, $chunk_size = 8192); - $revs = $pagelog->getRevisions($first, $num, $media = false); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisions($first, $num); $this->assertEquals($revsexpected, $revs); } -- cgit v1.2.3 From 4f6e20c71de298e046e451fd51919a51779b7e17 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Thu, 21 Nov 2013 21:13:02 +0100 Subject: fix not updated call, renaming --- _test/tests/inc/changelog_getrevisions.test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '_test') diff --git a/_test/tests/inc/changelog_getrevisions.test.php b/_test/tests/inc/changelog_getrevisions.test.php index aa2198981..675754faf 100644 --- a/_test/tests/inc/changelog_getrevisions.test.php +++ b/_test/tests/inc/changelog_getrevisions.test.php @@ -164,7 +164,7 @@ class changelog_getrevisions_test extends DokuWikiTest { $revsexpected = array(); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); - $revs = $pagelog->getRevisions($this->pageid, $first, $num, $chunk_size = 8192); + $revs = $pagelog->getRevisions($first, $num); $this->assertEquals($revsexpected, $revs); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); -- cgit v1.2.3 From 332817fccb0577125da59b71f437e72ae823a7c8 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Thu, 21 Nov 2013 22:48:08 +0100 Subject: improve unittests getrelativerevision. Bit code reformatting unit tests --- .../inc/changelog_getrelativerevision.test.php | 131 +++++++++++++-------- _test/tests/inc/changelog_getrevisioninfo.test.php | 14 +-- _test/tests/inc/changelog_getrevisions.test.php | 46 ++++---- 3 files changed, 113 insertions(+), 78 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/changelog_getrelativerevision.test.php b/_test/tests/inc/changelog_getrelativerevision.test.php index fa4c68897..c636b3c04 100644 --- a/_test/tests/inc/changelog_getrelativerevision.test.php +++ b/_test/tests/inc/changelog_getrelativerevision.test.php @@ -28,9 +28,9 @@ class changelog_getrelativerevision_test extends DokuWikiTest { * no nonexist.changes meta file available */ function test_changemetadatanotexists() { - $rev = 1362525899; - $dir = 1; - $id = 'nonexist'; + $rev = 1362525899; + $dir = 1; + $id = 'nonexist'; $revsexpected = false; $pagelog = new PageChangeLog($id, $chunk_size = 8192); @@ -42,8 +42,8 @@ class changelog_getrelativerevision_test extends DokuWikiTest { * no nonexist.changes meta file available */ function test_nodirection() { - $rev = 1362525899; - $dir = 0; + $rev = 1362525899; + $dir = 0; $revsexpected = false; $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); @@ -56,29 +56,65 @@ class changelog_getrelativerevision_test extends DokuWikiTest { * */ function test_startatexactcurrentrev() { - $rev = 1374261194; - $dir = 1; - $revsexpected = false; + $rev = 1385051947; + $dir = 1; + $revsexpectedpos = false; + $revsexpectedneg = 1374261194; -// global $INFO; -// $INFO = pageinfo(); -// var_dump($INFO); -// var_dump($INFO['meta']); -// var_dump($INFO['meta']['last_change']); -// var_dump($INFO['meta']['last_change']['date']); + //set a known timestamp + touch(wikiFN($this->pageid), $rev); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); $revs = $pagelog->getRelativeRevision($rev, $dir); - $this->assertEquals($revsexpected, $revs); + $this->assertEquals($revsexpectedpos, $revs); + + $revs = $pagelog->getRelativeRevision($rev, -$dir); + $this->assertEquals($revsexpectedneg, $revs); + } + + /** + * start at exact last revision of mailinglist page + * + */ + function test_startatexactlastrev() { + $rev = 1360110636; + $dir = 1; + $revsexpectedpos = 1361901536; + $revsexpectedneg = false; + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRelativeRevision($rev, $dir); + $this->assertEquals($revsexpectedpos, $revs); + + $revs = $pagelog->getRelativeRevision($rev, -$dir); + $this->assertEquals($revsexpectedneg, $revs); + } + + /** + * start at exact one before last revision of mailinglist page + * + */ + function test_requestlastrevisions() { + $rev = 1361901536; + $dir = -1; + $revsexpectedlast = 1360110636; + $revsexpectedbeforelast = false; + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRelativeRevision($rev, $dir); + $this->assertEquals($revsexpectedlast, $revs); + + $revs = $pagelog->getRelativeRevision($rev, 2 * $dir); + $this->assertEquals($revsexpectedbeforelast, $revs); } /** * request existing rev */ function test_requestrev() { - $rev = 1362525359; - $dir = 1; - $revexpected = 1362525899; + $rev = 1362525359; + $dir = 1; + $revexpected = 1362525899; $infoexpected = parseChangelogLine($this->logline); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); @@ -93,8 +129,8 @@ class changelog_getrelativerevision_test extends DokuWikiTest { * request existing rev with chucked reading */ function test_requestnextrev_chuncked() { - $rev = 1362525899; - $dir = 1; + $rev = 1362525899; + $dir = 1; $revexpected = 1362525926; $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); @@ -106,9 +142,9 @@ class changelog_getrelativerevision_test extends DokuWikiTest { * request existing rev */ function test_requestnextfifthrev() { - $rev = 1362525899; - $dir = 5; - $revexpected = 1362526767; + $rev = 1362525899; + $dir = 5; + $revexpected = 1362526767; $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); $revfound = $pagelog->getRelativeRevision($rev, $dir); @@ -119,8 +155,8 @@ class changelog_getrelativerevision_test extends DokuWikiTest { * request existing rev with chucked reading */ function test_requestnextfifthrev_chuncked() { - $rev = 1362525899; - $dir = 5; + $rev = 1362525899; + $dir = 5; $revexpected = 1362526767; $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); @@ -132,11 +168,11 @@ class changelog_getrelativerevision_test extends DokuWikiTest { * request existing rev */ function test_requestprevrev() { - $rev = 1362525899; - $dir1 = -1; - $dir5 = -5; - $revexpected1 = 1362525359; - $revexpected5 = 1360110636; + $rev = 1362525899; + $dir1 = -1; + $dir5 = -5; + $revexpected1 = 1362525359; + $revexpected5 = 1360110636; $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); $revfound1 = $pagelog->getRelativeRevision($rev, $dir1); @@ -150,11 +186,11 @@ class changelog_getrelativerevision_test extends DokuWikiTest { * request existing rev with chucked reading */ function test_requestprevrev_chuncked() { - $rev = 1362525899; - $dir1 = -1; - $dir5 = -5; - $revexpected1 = 1362525359; - $revexpected5 = 1360110636; + $rev = 1362525899; + $dir1 = -1; + $dir5 = -5; + $revexpected1 = 1362525359; + $revexpected5 = 1360110636; $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); $revfound1 = $pagelog->getRelativeRevision($rev, $dir1); @@ -168,9 +204,9 @@ class changelog_getrelativerevision_test extends DokuWikiTest { * request after recentest version in changelog */ function test_requestrecentestlogline_next() { - $rev = 1374261194; - $dir = 1; - $revexpected = false; + $rev = 1374261194; + $dir = 1; + $revexpected = false; $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); $revfound = $pagelog->getRelativeRevision($rev, $dir); @@ -181,23 +217,22 @@ class changelog_getrelativerevision_test extends DokuWikiTest { * request after recentest version in changelog, with chuncked reading */ function test_requestrecentestlogline_next_chuncked() { - $rev = 1374261194; - $dir = 1; - $revexpected = false; + $rev = 1374261194; + $dir = 1; + $revexpected = false; $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); $revfound = $pagelog->getRelativeRevision($rev, $dir); $this->assertEquals($revexpected, $revfound); } - /** * request before current version */ function test_requestrecentestlogline_prev() { - $rev = 1374261194; - $dir = -1; - $revexpected = 1371579614; + $rev = 1374261194; + $dir = -1; + $revexpected = 1371579614; $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); $revfound = $pagelog->getRelativeRevision($rev, $dir); @@ -208,9 +243,9 @@ class changelog_getrelativerevision_test extends DokuWikiTest { * request before current version, with chuncked reading */ function test_requestrecentestlogline_prev_chuncked() { - $rev = 1374261194; - $dir = -1; - $revexpected = 1371579614; + $rev = 1374261194; + $dir = -1; + $revexpected = 1371579614; $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); $revfound = $pagelog->getRelativeRevision($rev, $dir); diff --git a/_test/tests/inc/changelog_getrevisioninfo.test.php b/_test/tests/inc/changelog_getrevisioninfo.test.php index c073bac79..07e229824 100644 --- a/_test/tests/inc/changelog_getrevisioninfo.test.php +++ b/_test/tests/inc/changelog_getrevisioninfo.test.php @@ -29,8 +29,8 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { * no nonexist.changes meta file available */ function test_changemetadatanotexists() { - $rev = 1362525899; - $id = 'nonexist'; + $rev = 1362525899; + $id = 'nonexist'; $revsexpected = false; $pagelog = new PageChangeLog($id, $chunk_size = 8192); @@ -42,7 +42,7 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { * request existing rev */ function test_requestrev() { - $rev = 1362525899; + $rev = 1362525899; $infoexpected = parseChangelogLine($this->logline); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); @@ -57,7 +57,7 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { * request existing rev with chucked reading */ function test_requestrev_chuncked() { - $rev = 1362525899; + $rev = 1362525899; $infoexpected = parseChangelogLine($this->logline); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); @@ -69,7 +69,7 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { * request current version */ function test_requestrecentestlogline() { - $rev = 1374261194; + $rev = 1374261194; $infoexpected = parseChangelogLine($this->firstlogline); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); @@ -84,7 +84,7 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { * request current version, with chuncked reading */ function test_requestrecentestlogline_chuncked() { - $rev = 1374261194; + $rev = 1374261194; $infoexpected = parseChangelogLine($this->firstlogline); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); @@ -118,7 +118,7 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { * sometimes chuncksize is set to true */ function test_chuncksizetrue() { - $rev = 1362525899; + $rev = 1362525899; $infoexpected = parseChangelogLine($this->logline); $pagelog = new PageChangeLog($this->pageid, true); diff --git a/_test/tests/inc/changelog_getrevisions.test.php b/_test/tests/inc/changelog_getrevisions.test.php index 675754faf..69315638f 100644 --- a/_test/tests/inc/changelog_getrevisions.test.php +++ b/_test/tests/inc/changelog_getrevisions.test.php @@ -45,11 +45,11 @@ class changelog_getrevisions_test extends DokuWikiTest { */ function test_changemetadatanotexists() { $first = 0; - $num = 1; - $id = 'nonexist'; + $num = 1; + $id = 'nonexist'; $pagelog = new PageChangeLog($id, $chunk_size = 8192); - $revs = $pagelog->getRevisions($first, $num); + $revs = $pagelog->getRevisions($first, $num); $revsexpected = array(); $this->assertEquals($revsexpected, $revs); } @@ -59,8 +59,8 @@ class changelog_getrevisions_test extends DokuWikiTest { * (so skips first line which belongs to the current existing page) */ function test_requestlastrev() { - $first = 0; - $num = 1; + $first = 0; + $num = 1; $revsexpected = array($this->revsexpected[1]); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); @@ -77,8 +77,8 @@ class changelog_getrevisions_test extends DokuWikiTest { * (so skips first line which belongs to the current existing page) */ function test_requestonebutlastrev() { - $first = 1; - $num = 1; + $first = 1; + $num = 1; $revsexpected = array($this->revsexpected[2]); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); @@ -95,8 +95,8 @@ class changelog_getrevisions_test extends DokuWikiTest { * (so skips first line of current existing page) */ function test_requestrevswithoffset() { - $first = 10; - $num = 5; + $first = 10; + $num = 5; $revsexpected = array_slice($this->revsexpected, $first + 1, $num); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); @@ -112,8 +112,8 @@ class changelog_getrevisions_test extends DokuWikiTest { * first = -1 requests recentest logline, without skipping */ function test_requestrecentestlogline() { - $first = -1; - $num = 1; + $first = -1; + $num = 1; $revsexpected = array($this->revsexpected[0]); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); @@ -129,8 +129,8 @@ class changelog_getrevisions_test extends DokuWikiTest { * chunck size = 0 skips chuncked loading */ function test_wholefile() { - $first = 0; - $num = 1000; + $first = 0; + $num = 1000; $revsexpected = array_slice($this->revsexpected, 1); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 0); @@ -142,8 +142,8 @@ class changelog_getrevisions_test extends DokuWikiTest { * Negative range returns no result */ function test_negativenum() { - $first = 0; - $num = -10; + $first = 0; + $num = -10; $revsexpected = array(); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); @@ -159,8 +159,8 @@ class changelog_getrevisions_test extends DokuWikiTest { * Negative range returns no result */ function test_negativennumoffset() { - $first = 2; - $num = -10; + $first = 2; + $num = -10; $revsexpected = array(); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); @@ -176,8 +176,8 @@ class changelog_getrevisions_test extends DokuWikiTest { * zero range returns no result */ function test_zeronum() { - $first = 5; - $num = 0; + $first = 5; + $num = 0; $revsexpected = array(); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); @@ -193,8 +193,8 @@ class changelog_getrevisions_test extends DokuWikiTest { * get oldest revisions */ function test_requestlargeoffset() { - $first = 22; - $num = 50; + $first = 22; + $num = 50; $revsexpected = array_slice($this->revsexpected, $first + 1); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); @@ -206,8 +206,8 @@ class changelog_getrevisions_test extends DokuWikiTest { * request with too large offset and range */ function test_requesttoolargenumberrevs() { - $first = 50; - $num = 50; + $first = 50; + $num = 50; $revsexpected = array(); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); -- cgit v1.2.3 From 4eb5e17453694b80e84a83a6960d02ac63cfa320 Mon Sep 17 00:00:00 2001 From: lisps Date: Fri, 22 Nov 2013 13:27:38 +0100 Subject: add test getlastrevisionat --- .../tests/inc/changelog_getlastrevisionat.test.php | 127 +++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 _test/tests/inc/changelog_getlastrevisionat.test.php (limited to '_test') diff --git a/_test/tests/inc/changelog_getlastrevisionat.test.php b/_test/tests/inc/changelog_getlastrevisionat.test.php new file mode 100644 index 000000000..b4d0466b3 --- /dev/null +++ b/_test/tests/inc/changelog_getlastrevisionat.test.php @@ -0,0 +1,127 @@ +getLastRevisionAt($rev); + $this->assertEquals($revsexpected, $revs); + } + + /** + * start at exact current revision of mailinglist page + * + */ + function test_startatexactcurrentrev() { + $rev = 1385051947; + $revsexpected = ''; + + //set a known timestamp + touch(wikiFN($this->pageid), $rev); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getLastRevisionAt($rev); + $this->assertEquals($revsexpected, $revs); + + } + + /** + * test a future revision + * + */ + function test_futurerev() { + $rev = 1385051947; + $revsexpected = ''; + + //set a known timestamp + touch(wikiFN($this->pageid), $rev); + + $rev +=1; + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getLastRevisionAt($rev); + $this->assertEquals($revsexpected, $revs); + + } + + /** + * start at exact last revision of mailinglist page + * + */ + function test_exactlastrev() { + $rev = 1360110636; + $revsexpected = 1360110636; + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getLastRevisionAt($rev); + $this->assertEquals($revsexpected, $revs); + } + + + /** + * Request not existing revision + * + */ + function test_olderrev() { + $rev = 1; + $revexpected = false; + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revfound = $pagelog->getLastRevisionAt($rev); + $this->assertEquals($revexpected, $revfound); + } + + /** + * Start at non existing revision somewhere between existing revisions + */ + function test_notexistingrev() { + $rev = 1362525890; + $revexpected = 1362525359; + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revfound = $pagelog->getLastRevisionAt($rev); + $this->assertEquals($revexpected, $revfound); + } + + /** + * request nonexisting page + * + */ + function test_notexistingpage() { + $rev = 1385051947; + $currentexpected = false; + + $pagelog = new PageChangeLog('nonexistingpage', $chunk_size = 8192); + $current = $pagelog->getLastRevisionAt($rev); + $this->assertEquals($currentexpected, $current); + } +} \ No newline at end of file -- cgit v1.2.3 From 07a7d227f78d5956f62a4164def7c68ca03019ee Mon Sep 17 00:00:00 2001 From: lisps Date: Fri, 22 Nov 2013 14:56:42 +0100 Subject: add test for empty rev in ml() and wl() --- _test/tests/inc/common_ml.test.php | 11 +++++++++++ _test/tests/inc/common_wl.test.php | 11 +++++++++++ 2 files changed, 22 insertions(+) (limited to '_test') diff --git a/_test/tests/inc/common_ml.test.php b/_test/tests/inc/common_ml.test.php index 415c0a88d..027dcaef2 100644 --- a/_test/tests/inc/common_ml.test.php +++ b/_test/tests/inc/common_ml.test.php @@ -146,4 +146,15 @@ class common_ml_test extends DokuWikiTest { $this->assertEquals($expect, ml($id, $args)); } + + function test_ml_empty_rev() { + global $conf; + $conf['useslash'] = 0; + $conf['userewrite'] = 0; + + $args = array('a' => 'b', 'c' => 'd', 'rev' => ''); + + $expect = DOKU_BASE . $this->script . '?a=b&c=d&media=some:img.jpg'; + $this->assertEquals($expect, ml('some:img.jpg', $args)); + } } diff --git a/_test/tests/inc/common_wl.test.php b/_test/tests/inc/common_wl.test.php index 2e34dcae3..4bfde3f39 100644 --- a/_test/tests/inc/common_wl.test.php +++ b/_test/tests/inc/common_wl.test.php @@ -142,6 +142,17 @@ class common_wl_test extends DokuWikiTest { $expect = DOKU_BASE . DOKU_SCRIPT . '/some/one?a=b&c=d'; $this->assertEquals($expect, wl('some:one', 'a=b,c=d', false, '&')); } + + function test_wl_empty_rev() { + global $conf; + $conf['useslash'] = 0; + $conf['userewrite'] = 0; + + $args = array('a' => 'b', 'c' => 'd', 'rev' => ''); + + $expect = DOKU_BASE . DOKU_SCRIPT . '?id=some:&a=b&c=d'; + $this->assertEquals($expect, wl('some:', $args)); + } -- cgit v1.2.3 From 59cce2d943ee9a18fafc9a0594ede031f7bf7190 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Fri, 22 Nov 2013 15:30:48 +0100 Subject: Improve changelog reading. Inclusive unittests for chunks smaller than changelog lines. --- .../inc/changelog_getrelativerevision.test.php | 82 +++++++++++++++++++++- _test/tests/inc/changelog_getrevisioninfo.test.php | 12 ++++ 2 files changed, 91 insertions(+), 3 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/changelog_getrelativerevision.test.php b/_test/tests/inc/changelog_getrelativerevision.test.php index c636b3c04..f9962066a 100644 --- a/_test/tests/inc/changelog_getrelativerevision.test.php +++ b/_test/tests/inc/changelog_getrelativerevision.test.php @@ -109,9 +109,9 @@ class changelog_getrelativerevision_test extends DokuWikiTest { } /** - * request existing rev + * request existing rev and check cache */ - function test_requestrev() { + function test_requestrev_checkcache() { $rev = 1362525359; $dir = 1; $revexpected = 1362525899; @@ -120,20 +120,96 @@ class changelog_getrelativerevision_test extends DokuWikiTest { $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); $revfound = $pagelog->getRelativeRevision($rev, $dir); $this->assertEquals($revexpected, $revfound); + //checked info returned from cache $info = $pagelog->getRevisionInfo($revfound); $this->assertEquals($infoexpected, $info); } + /** + * request existing rev + */ + function test_requestnextrev() { + $rev = 1362525899; + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + + $dir = 1; + $revexpected = 1362525926; + $revfound = $pagelog->getRelativeRevision($rev, $dir); + $this->assertEquals($revexpected, $revfound); + + $dir = 2; + $revexpected = 1362526039; + $revfound = $pagelog->getRelativeRevision($rev, $dir); + $this->assertEquals($revexpected, $revfound); + + $dir = -1; + $revexpected = 1362525359; + $revfound = $pagelog->getRelativeRevision($rev, $dir); + $this->assertEquals($revexpected, $revfound); + + $dir = -2; + $revexpected = 1362525145; + $revfound = $pagelog->getRelativeRevision($rev, $dir); + $this->assertEquals($revexpected, $revfound); + } + /** * request existing rev with chucked reading */ function test_requestnextrev_chuncked() { $rev = 1362525899; + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $dir = 1; $revexpected = 1362525926; + $revfound = $pagelog->getRelativeRevision($rev, $dir); + $this->assertEquals($revexpected, $revfound); - $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $dir = 2; + $revexpected = 1362526039; + $revfound = $pagelog->getRelativeRevision($rev, $dir); + $this->assertEquals($revexpected, $revfound); + + $dir = -1; + $revexpected = 1362525359; + $revfound = $pagelog->getRelativeRevision($rev, $dir); + $this->assertEquals($revexpected, $revfound); + + $dir = -2; + $revexpected = 1362525145; + $revfound = $pagelog->getRelativeRevision($rev, $dir); + $this->assertEquals($revexpected, $revfound); + } + + + /** + * request existing rev with chucked reading, chunk size smaller than line length + */ + function test_requestnextrev_chunkshorterthanlines() { + $rev = 1362525899; + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); + + $dir = 1; + $revexpected = 1362525926; + $revfound = $pagelog->getRelativeRevision($rev, $dir); + $this->assertEquals($revexpected, $revfound); + + $dir = 2; + $revexpected = 1362526039; + $revfound = $pagelog->getRelativeRevision($rev, $dir); + $this->assertEquals($revexpected, $revfound); + + $dir = -1; + $revexpected = 1362525359; + $revfound = $pagelog->getRelativeRevision($rev, $dir); + $this->assertEquals($revexpected, $revfound); + + $dir = -2; + $revexpected = 1362525145; $revfound = $pagelog->getRelativeRevision($rev, $dir); $this->assertEquals($revexpected, $revfound); } diff --git a/_test/tests/inc/changelog_getrevisioninfo.test.php b/_test/tests/inc/changelog_getrevisioninfo.test.php index 07e229824..79b31d68e 100644 --- a/_test/tests/inc/changelog_getrevisioninfo.test.php +++ b/_test/tests/inc/changelog_getrevisioninfo.test.php @@ -65,6 +65,18 @@ class changelog_getrevisionsinfo_test extends DokuWikiTest { $this->assertEquals($infoexpected, $info); } + /** + * request existing rev with chucked reading + */ + function test_requestrev_chunckedsmallerthanlinelength() { + $rev = 1362525899; + $infoexpected = parseChangelogLine($this->logline); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); + $info = $pagelog->getRevisionInfo($rev); + $this->assertEquals($infoexpected, $info); + } + /** * request current version */ -- cgit v1.2.3 From 7d1e323e214bc52984e7df38732878be392adc5f Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Fri, 22 Nov 2013 15:50:04 +0100 Subject: bugfix and reformatting changelog. small chunck unittests --- _test/tests/inc/changelog_getrevisions.test.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to '_test') diff --git a/_test/tests/inc/changelog_getrevisions.test.php b/_test/tests/inc/changelog_getrevisions.test.php index 69315638f..b247ce3d6 100644 --- a/_test/tests/inc/changelog_getrevisions.test.php +++ b/_test/tests/inc/changelog_getrevisions.test.php @@ -47,10 +47,10 @@ class changelog_getrevisions_test extends DokuWikiTest { $first = 0; $num = 1; $id = 'nonexist'; + $revsexpected = array(); $pagelog = new PageChangeLog($id, $chunk_size = 8192); $revs = $pagelog->getRevisions($first, $num); - $revsexpected = array(); $this->assertEquals($revsexpected, $revs); } @@ -70,6 +70,10 @@ class changelog_getrevisions_test extends DokuWikiTest { $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); $revs = $pagelog->getRevisions($first, $num); $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); + $revs = $pagelog->getRevisions($first, $num); + $this->assertEquals($revsexpected, $revs); } /** @@ -88,6 +92,10 @@ class changelog_getrevisions_test extends DokuWikiTest { $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); $revs = $pagelog->getRevisions($first, $num); $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); + $revs = $pagelog->getRevisions($first, $num); + $this->assertEquals($revsexpected, $revs); } /** @@ -106,6 +114,10 @@ class changelog_getrevisions_test extends DokuWikiTest { $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); $revs = $pagelog->getRevisions($first, $num); $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); + $revs = $pagelog->getRevisions($first, $num); + $this->assertEquals($revsexpected, $revs); } /** -- cgit v1.2.3 From 1da8dc976a4e9184fe550789a77d8e5cb866926f Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Wed, 27 Nov 2013 00:56:02 +0100 Subject: retrieve revisions around some given revisions With unit tests One case is not yet fixed: when rev1 is first rev from changelog, only $max/2 revisions are retrieved, but it should retrieve $max revisions. --- _test/tests/inc/changelog_getRevisionsAround.php | 183 +++++++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 _test/tests/inc/changelog_getRevisionsAround.php (limited to '_test') diff --git a/_test/tests/inc/changelog_getRevisionsAround.php b/_test/tests/inc/changelog_getRevisionsAround.php new file mode 100644 index 000000000..d4d6b8496 --- /dev/null +++ b/_test/tests/inc/changelog_getRevisionsAround.php @@ -0,0 +1,183 @@ +getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + } + + /** + * Surrounding revisions of rev1 and rev2 overlaps + */ + function test_request_overlapping() { + $rev1 = 1362526767; + $rev2 = 1362527164; + $max = 10; + $revsexpected = array( + array_slice($this->revsexpected, 5, 11), + array_slice($this->revsexpected, 8, 11) + ); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + } + + /** + * Surrounding revisions of rev1 and rev2 don't overlap. + */ + function test_request_non_overlapping() { + $rev1 = 1362525899; + $rev2 = 1368612599; + $max = 10; + $revsexpected = array( + array_slice($this->revsexpected, 0, 11), + array_slice($this->revsexpected, 13, 11) + ); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + } + + /** + * rev1 and rev2 are at start and end of the changelog. + * Should return still a number of revisions equal to max + */ + function test_request_first_last() { + $rev1 = 1360110636; + $rev2 = 1374261194; + $max = 10; + $revsexpected = array( + array_slice($this->revsexpected, 0, 11), + array_slice($this->revsexpected, 13, 11) + ); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + } + + + /** + * Number of requested revisions is larger than available revisions, + * so returns whole log + */ + function test_request_wholelog() { + $rev1 = 1362525899; + $rev2 = 1368612599; + $max = 50; + $revsexpected = array($this->revsexpected, $this->revsexpected); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + } + + /** + * When rev1 > rev2, their order is changed + */ + function test_request_wrong_order_revs() { + $rev1 = 1362527164; + $rev2 = 1362526767; + $max = 10; + $revsexpected = array( + array_slice($this->revsexpected, 5, 11), + array_slice($this->revsexpected, 8, 11) + ); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + } + +} \ No newline at end of file -- cgit v1.2.3 From 5a1d05488ca6e176af4d195accbdca8010cf3416 Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Wed, 11 Dec 2013 23:02:17 +0100 Subject: Fix indexing numeric words in page contents Since a8dba4523d2ecd09dd69a68a36673eaf5c009c57 the search index didn't properly index numeric words anymore, instead they were added as new words to the word list each time they were indexed, leading to an ever-increasing index size. --- _test/tests/inc/indexer_indexing.test.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to '_test') diff --git a/_test/tests/inc/indexer_indexing.test.php b/_test/tests/inc/indexer_indexing.test.php index 628e82e00..3d8278d6c 100644 --- a/_test/tests/inc/indexer_indexing.test.php +++ b/_test/tests/inc/indexer_indexing.test.php @@ -42,4 +42,21 @@ class indexer_indexing_test extends DokuWikiTest { $query = array('001', '01'); $this->assertEquals(array('001' => array(), '01' => array('testpage')), $indexer->lookupKey('numkey', $query)); } + + public function test_numeric_twice() { + $indexer = idx_get_indexer(); + $indexer->addPageWords('testpage', '| 1010 | Dallas |'); + $query = array('1010'); + $this->assertEquals(array('1010' => array('testpage' => 1)), $indexer->lookup($query)); + $indexer->addPageWords('notfound', '| 1010 | Dallas |'); + $this->assertEquals(array('1010' => array('testpage' => 1, 'notfound' => 1)), $indexer->lookup($query)); + } + + public function test_numeric_twice_meta() { + $indexer = idx_get_indexer(); + $indexer->addMetaKeys('testpage', 'onezero', array('1010')); + $indexer->addMetaKeys('notfound', 'onezero', array('1010')); + $query = '1010'; + $this->assertEquals(array('notfound', 'testpage'), $indexer->lookupKey('onezero', $query)); + } } \ No newline at end of file -- cgit v1.2.3 From ebec603febbe7426fbb12cbb4fd3cb42128fcbf8 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Mon, 6 Jan 2014 20:58:38 +0100 Subject: added tests for io_rmdir --- _test/tests/inc/io_rmdir.test.php | 159 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 _test/tests/inc/io_rmdir.test.php (limited to '_test') diff --git a/_test/tests/inc/io_rmdir.test.php b/_test/tests/inc/io_rmdir.test.php new file mode 100644 index 000000000..9a122d111 --- /dev/null +++ b/_test/tests/inc/io_rmdir.test.php @@ -0,0 +1,159 @@ +assertTrue($dir !== false); + $this->assertTrue(is_dir($dir)); + + // delete successfully + $this->assertTrue(io_rmdir($dir, false)); + + // check result + clearstatcache(); + $this->assertFalse(is_dir($dir)); + $this->assertTrue(is_dir($top)); + + // same again with deletefiles + + // set up test dir + $dir = io_mktmpdir(); + $this->assertTrue($dir !== false); + $this->assertTrue(is_dir($dir)); + + // delete successfully + $this->assertTrue(io_rmdir($dir, true)); + + // check result + clearstatcache(); + $this->assertFalse(is_dir($dir)); + $this->assertTrue(is_dir($top)); + } + + + function test_empty_hierarchy(){ + // setup hierachy and test it exists + $dir = io_mktmpdir(); + $top = dirname($dir); + $this->assertTrue($dir !== false); + $this->assertTrue(is_dir($dir)); + $this->assertTrue(io_mkdir_p("$dir/foo/bar/baz")); + $this->assertTrue(is_dir("$dir/foo/bar/baz")); + $this->assertTrue(io_mkdir_p("$dir/foobar/bar/baz")); + $this->assertTrue(is_dir("$dir/foobar/bar/baz")); + + // delete successfully + $this->assertTrue(io_rmdir($dir, false)); + + // check result + clearstatcache(); + $this->assertFalse(is_dir("$dir/foo/bar/baz")); + $this->assertFalse(is_dir("$dir/foobar/bar/baz")); + $this->assertFalse(is_dir($dir)); + $this->assertTrue(is_dir($top)); + + // same again with deletefiles + + // setup hierachy and test it exists + $dir = io_mktmpdir(); + $this->assertTrue($dir !== false); + $this->assertTrue(is_dir($dir)); + $this->assertTrue(io_mkdir_p("$dir/foo/bar/baz")); + $this->assertTrue(is_dir("$dir/foo/bar/baz")); + $this->assertTrue(io_mkdir_p("$dir/foobar/bar/baz")); + $this->assertTrue(is_dir("$dir/foobar/bar/baz")); + + // delete successfully + $this->assertTrue(io_rmdir($dir, true)); + + // check result + clearstatcache(); + $this->assertFalse(is_dir("$dir/foo/bar/baz")); + $this->assertFalse(is_dir("$dir/foobar/bar/baz")); + $this->assertFalse(is_dir($dir)); + $this->assertTrue(is_dir($top)); + } + + function test_full_single(){ + // set up test dir + $dir = io_mktmpdir(); + $top = dirname($dir); + $this->assertTrue($dir !== false); + $this->assertTrue(is_dir($dir)); + + // put file + $this->assertTrue(io_saveFile("$dir/testfile.txt", 'foobar')); + $this->assertFileExists("$dir/testfile.txt"); + + // delete unsuccessfully + $this->assertFalse(io_rmdir($dir, false)); + + // check result + clearstatcache(); + $this->assertFileExists("$dir/testfile.txt"); + $this->assertTrue(is_dir($dir)); + $this->assertTrue(is_dir($top)); + + // same again with deletefiles + + // delete successfully + $this->assertTrue(io_rmdir($dir, true)); + + // check result + clearstatcache(); + $this->assertFileNotExists("$dir/testfile.txt"); + $this->assertFalse(is_dir($dir)); + $this->assertTrue(is_dir($top)); + } + + function test_full_hierarchy(){ + // setup hierachy and test it exists + $dir = io_mktmpdir(); + $top = dirname($dir); + $this->assertTrue($dir !== false); + $this->assertTrue(is_dir($dir)); + $this->assertTrue(io_mkdir_p("$dir/foo/bar/baz")); + $this->assertTrue(is_dir("$dir/foo/bar/baz")); + $this->assertTrue(io_mkdir_p("$dir/foobar/bar/baz")); + $this->assertTrue(is_dir("$dir/foobar/bar/baz")); + + // put files + $this->assertTrue(io_saveFile("$dir/testfile.txt", 'foobar')); + $this->assertFileExists("$dir/testfile.txt"); + $this->assertTrue(io_saveFile("$dir/foo/testfile.txt", 'foobar')); + $this->assertFileExists("$dir/foo/testfile.txt"); + $this->assertTrue(io_saveFile("$dir/foo/bar/baz/testfile.txt", 'foobar')); + $this->assertFileExists("$dir/foo/bar/baz/testfile.txt"); + + // delete unsuccessfully + $this->assertFalse(io_rmdir($dir, false)); + + // check result + clearstatcache(); + $this->assertFileExists("$dir/testfile.txt"); + $this->assertFileExists("$dir/foo/testfile.txt"); + $this->assertFileExists("$dir/foo/bar/baz/testfile.txt"); + $this->assertTrue(is_dir("$dir/foo/bar/baz")); + $this->assertTrue(is_dir("$dir/foobar/bar/baz")); + $this->assertTrue(is_dir($dir)); + $this->assertTrue(is_dir($top)); + + // delete successfully + $this->assertTrue(io_rmdir($dir, true)); + + // check result + clearstatcache(); + $this->assertFileNotExists("$dir/testfile.txt"); + $this->assertFileNotExists("$dir/foo/testfile.txt"); + $this->assertFileNotExists("$dir/foo/bar/baz/testfile.txt"); + $this->assertFalse(is_dir("$dir/foo/bar/baz")); + $this->assertFalse(is_dir("$dir/foobar/bar/baz")); + $this->assertFalse(is_dir($dir)); + $this->assertTrue(is_dir($top)); + } + +} \ No newline at end of file -- cgit v1.2.3 From d8cf4dd43ecd37c371acf9bc6c17998b65d42ba4 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Mon, 6 Jan 2014 21:15:50 +0100 Subject: treat non-existing files as success on delete --- _test/tests/inc/io_rmdir.test.php | 60 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) (limited to '_test') diff --git a/_test/tests/inc/io_rmdir.test.php b/_test/tests/inc/io_rmdir.test.php index 9a122d111..3de57fa86 100644 --- a/_test/tests/inc/io_rmdir.test.php +++ b/_test/tests/inc/io_rmdir.test.php @@ -2,6 +2,66 @@ class io_rmdir_test extends DokuWikiTest { + function test_nopes(){ + // set up test dir + $dir = io_mktmpdir(); + $top = dirname($dir); + $this->assertTrue($dir !== false); + $this->assertTrue(is_dir($dir)); + + // switch into it + $this->assertTrue(chdir($dir)); + $this->assertEquals($dir, getcwd()); + + + $this->assertFalse(io_rmdir('', false)); + clearstatcache(); + $this->assertTrue(is_dir($dir)); + $this->assertTrue(is_dir($top)); + + $this->assertFalse(io_rmdir('', true)); + clearstatcache(); + $this->assertTrue(is_dir($dir)); + $this->assertTrue(is_dir($top)); + + $this->assertFalse(io_rmdir(null, false)); + clearstatcache(); + $this->assertTrue(is_dir($dir)); + $this->assertTrue(is_dir($top)); + + $this->assertFalse(io_rmdir(null, true)); + clearstatcache(); + $this->assertTrue(is_dir($dir)); + $this->assertTrue(is_dir($top)); + + $this->assertFalse(io_rmdir(false, false)); + clearstatcache(); + $this->assertTrue(is_dir($dir)); + $this->assertTrue(is_dir($top)); + + $this->assertFalse(io_rmdir(false, true)); + clearstatcache(); + $this->assertTrue(is_dir($dir)); + $this->assertTrue(is_dir($top)); + + $this->assertFalse(io_rmdir(array(), false)); + clearstatcache(); + $this->assertTrue(is_dir($dir)); + $this->assertTrue(is_dir($top)); + + $this->assertFalse(io_rmdir(array(), true)); + clearstatcache(); + $this->assertTrue(is_dir($dir)); + $this->assertTrue(is_dir($top)); + + $this->assertFileNotExists("$dir/this/does/not/exist"); + $this->assertTrue(io_rmdir("$dir/this/does/not/exist")); + clearstatcache(); + $this->assertFileNotExists("$dir/this/does/not/exist"); + $this->assertTrue(is_dir($dir)); + $this->assertTrue(is_dir($top)); + } + function test_empty_single(){ // set up test dir -- cgit v1.2.3 From 05f1af55e0303f33fa6f046eeaa221f1b2a32066 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Fri, 24 Jan 2014 17:50:40 +0100 Subject: add unit test to check language files for validity this should help with applying pull requests that do come not from the translation interface as it makes sure the files will be at least syntactically correct. --- _test/tests/general/general_languagelint.php | 47 ++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 _test/tests/general/general_languagelint.php (limited to '_test') diff --git a/_test/tests/general/general_languagelint.php b/_test/tests/general/general_languagelint.php new file mode 100644 index 000000000..c11462640 --- /dev/null +++ b/_test/tests/general/general_languagelint.php @@ -0,0 +1,47 @@ +checkFiles(glob(DOKU_INC.'inc/lang/*/*.php')); + } + + function test_plugins() { + $this->checkFiles(glob(DOKU_INC.'lib/plugins/*/lang/*/*.php')); + } + + /** + * Run checks over the given PHP language files + * + * @param $files + */ + private function checkFiles($files){ + foreach($files as $file){ + // try to load the file + include $file; + // check it defines an array + $this->assertTrue(is_array($lang), $file); + unset($lang); + + $this->checkUgly($file); + } + } + + /** + * Checks if the file contains any ugly things like leading whitespace, BOM or trailing + * PHP closing mark + * + * @param $file + * @throws Exception + */ + private function checkUgly($file){ + $content = rtrim(file_get_contents($file)); + if(substr($content,0,5) != '') + throw new Exception("$file ends with '?>' - remove it!"); + } + +} -- cgit v1.2.3 From fe717f57f7a1c262eb6104ccb575ee3294712afa Mon Sep 17 00:00:00 2001 From: lisps Date: Tue, 4 Feb 2014 10:59:06 +0100 Subject: fix content check test cases add test case new Input check add global variables to execute --- _test/core/TestRequest.php | 9 ++++++++- _test/tests/test/basic.test.php | 16 ++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) (limited to '_test') diff --git a/_test/core/TestRequest.php b/_test/core/TestRequest.php index 0a54910ed..060e37d28 100644 --- a/_test/core/TestRequest.php +++ b/_test/core/TestRequest.php @@ -44,13 +44,18 @@ class TestRequest { * @return TestResponse the resulting output of the request */ public function execute($uri='/doku.php') { + global $INPUT; + global $ID; + global $INFO; + // save old environment $server = $_SERVER; $session = $_SESSION; $get = $_GET; $post = $_POST; $request = $_REQUEST; - + $input = $INPUT; + // prepare the right URI $this->setUri($uri); @@ -74,6 +79,7 @@ class TestRequest { // now execute dokuwiki and grep the output header_remove(); ob_start('ob_start_callback'); + $INPUT = new Input(); include(DOKU_INC.$this->script); ob_end_flush(); @@ -89,6 +95,7 @@ class TestRequest { $_GET = $get; $_POST = $post; $_REQUEST = $request; + $INPUT = $input; return $response; } diff --git a/_test/tests/test/basic.test.php b/_test/tests/test/basic.test.php index 86acef935..0639f0c5a 100644 --- a/_test/tests/test/basic.test.php +++ b/_test/tests/test/basic.test.php @@ -33,7 +33,7 @@ class InttestsBasicTest extends DokuWikiTest { $response = $request->execute(); $this->assertTrue( - strpos($response->getContent(), 'DokuWiki') >= 0, + strpos($response->getContent(), 'DokuWiki') !== false, 'DokuWiki was not a word in the output' ); } @@ -60,7 +60,7 @@ class InttestsBasicTest extends DokuWikiTest { $this->assertEquals('wiki:dokuwiki', $request->getPost('id')); // output check - $this->assertTrue(strpos($response->getContent(), 'Andreas Gohr') >= 0); + $this->assertTrue(strpos($response->getContent(), 'Andreas Gohr') !== false); } function testPostGet() { @@ -84,7 +84,7 @@ class InttestsBasicTest extends DokuWikiTest { $this->assertEquals('wiki:dokuwiki', $request->getGet('id')); // output check - $this->assertTrue(strpos($response->getContent(), 'Andreas Gohr') >= 0); + $this->assertTrue(strpos($response->getContent(), 'Andreas Gohr') !== false); } function testGet() { @@ -116,7 +116,7 @@ class InttestsBasicTest extends DokuWikiTest { $this->assertEquals('bar', $request->getGet('test')); // output check - $this->assertTrue(strpos($response->getContent(), 'Andreas Gohr') >= 0); + $this->assertTrue(strpos($response->getContent(), 'Andreas Gohr') !== false); } function testScripts() { @@ -168,5 +168,13 @@ class InttestsBasicTest extends DokuWikiTest { $response = new TestResponse('',array_slice($this->some_headers,0,-2)); // slice off the last two headers to leave no status header $this->assertNull($response->getStatusCode()); } + + function testINPUT() { + $request = new TestRequest(); + $response = $request->get(array('id' => 'mailinglist'), '/doku.php'); + + // output check + $this->assertTrue(strpos($response->getContent(), 'Netiquette') !== false); + } } -- cgit v1.2.3 From 1eb1257b8846c2228e3f3bb9a3afb5398df3b4fe Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 9 Feb 2014 09:30:01 +0100 Subject: always show error on HTTP test fails --- _test/tests/inc/httpclient_http.test.php | 38 ++++++++++++++++---------------- 1 file changed, 19 insertions(+), 19 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/httpclient_http.test.php b/_test/tests/inc/httpclient_http.test.php index 43dd4478f..a19f2d238 100644 --- a/_test/tests/inc/httpclient_http.test.php +++ b/_test/tests/inc/httpclient_http.test.php @@ -9,7 +9,7 @@ class httpclient_http_test extends DokuWikiTest { function test_simpleget(){ $http = new HTTPClient(); $data = $http->get($this->server.'/get?foo=bar'); - $this->assertFalse($data === false, 'HTTP response'); + $this->assertFalse($data === false, 'HTTP response '.$http->error); $resp = json_decode($data, true); $this->assertTrue(is_array($resp), 'JSON response'); $this->assertArrayHasKey('args',$resp); @@ -22,7 +22,7 @@ class httpclient_http_test extends DokuWikiTest { function test_dget(){ $http = new HTTPClient(); $data = $http->dget($this->server.'/get',array('foo'=>'bar')); - $this->assertFalse($data === false, 'HTTP response'); + $this->assertFalse($data === false, 'HTTP response '.$http->error); $resp = json_decode($data, true); $this->assertTrue(is_array($resp), 'JSON response'); $this->assertArrayHasKey('args',$resp); @@ -35,7 +35,7 @@ class httpclient_http_test extends DokuWikiTest { function test_gzip(){ $http = new HTTPClient(); $data = $http->get($this->server.'/gzip'); - $this->assertFalse($data === false, 'HTTP response'); + $this->assertFalse($data === false, 'HTTP response '.$http->error); $resp = json_decode($data, true); $this->assertTrue(is_array($resp), 'JSON response'); $this->assertArrayHasKey('gzipped',$resp); @@ -48,7 +48,7 @@ class httpclient_http_test extends DokuWikiTest { function test_simplepost(){ $http = new HTTPClient(); $data = $http->post($this->server.'/post',array('foo'=>'bar')); - $this->assertFalse($data === false, 'HTTP response'); + $this->assertFalse($data === false, 'HTTP response '.$http->error); $resp = json_decode($data, true); $this->assertTrue(is_array($resp), 'JSON response'); $this->assertArrayHasKey('form',$resp); @@ -61,7 +61,7 @@ class httpclient_http_test extends DokuWikiTest { function test_redirect(){ $http = new HTTPClient(); $data = $http->get($this->server.'/redirect/3'); - $this->assertFalse($data === false, 'HTTP response'); + $this->assertFalse($data === false, 'HTTP response '.$http->error); $resp = json_decode($data, true); $this->assertTrue(is_array($resp), 'JSON response'); $this->assertArrayHasKey('url',$resp); @@ -74,7 +74,7 @@ class httpclient_http_test extends DokuWikiTest { function test_relredirect(){ $http = new HTTPClient(); $data = $http->get($this->server.'/relative-redirect/3'); - $this->assertFalse($data === false, 'HTTP response'); + $this->assertFalse($data === false, 'HTTP response '.$http->error); $resp = json_decode($data, true); $this->assertTrue(is_array($resp), 'JSON response'); $this->assertArrayHasKey('url',$resp); @@ -87,7 +87,7 @@ class httpclient_http_test extends DokuWikiTest { function test_redirectfail(){ $http = new HTTPClient(); $data = $http->get($this->server.'/redirect/5'); - $this->assertTrue($data === false, 'HTTP response'); + $this->assertTrue($data === false, 'HTTP response '.$http->error); $this->assertEquals('Maximum number of redirects exceeded',$http->error); } @@ -99,7 +99,7 @@ class httpclient_http_test extends DokuWikiTest { $http->get($this->server.'/cookies/set/foo/bar'); $this->assertEquals(array('foo' => 'bar'), $http->cookies); $data = $http->get($this->server.'/cookies'); - $this->assertFalse($data === false, 'HTTP response'); + $this->assertFalse($data === false, 'HTTP response '.$http->error); $resp = json_decode($data, true); $this->assertTrue(is_array($resp), 'JSON response'); $this->assertArrayHasKey('cookies',$resp); @@ -112,7 +112,7 @@ class httpclient_http_test extends DokuWikiTest { function test_teapot(){ $http = new HTTPClient(); $data = $http->get($this->server.'/status/418'); - $this->assertTrue($data === false, 'HTTP response'); + $this->assertTrue($data === false, 'HTTP response '.$http->error); $this->assertEquals(418,$http->status); } @@ -125,13 +125,13 @@ class httpclient_http_test extends DokuWikiTest { // this should abort completely $data = $http->get($this->server.'/stream/30'); - $this->assertTrue($data === false, 'HTTP response'); + $this->assertTrue($data === false, 'HTTP response '.$http->error); // this should read just the needed bytes $http->max_bodysize_abort = false; $http->keep_alive = false; $data = $http->get($this->server.'/stream/30'); - $this->assertFalse($data === false, 'HTTP response'); + $this->assertFalse($data === false, 'HTTP response '.$http->error); /* should read no more than max_bodysize+1 */ $this->assertLessThanOrEqual(251,strlen($data)); } @@ -143,10 +143,10 @@ class httpclient_http_test extends DokuWikiTest { $http = new HTTPClient(); $http->max_bodysize = 500*1024; $data = $http->get($this->server.'/stream/5'); - $this->assertTrue($data !== false, 'HTTP response'); + $this->assertTrue($data !== false, 'HTTP response '.$http->error); $http->max_bodysize_abort = false; $data = $http->get($this->server.'/stream/5'); - $this->assertTrue($data !== false, 'HTTP response'); + $this->assertTrue($data !== false, 'HTTP response '.$http->error); } /** @@ -157,7 +157,7 @@ class httpclient_http_test extends DokuWikiTest { $http->user = 'user'; $http->pass = 'pass'; $data = $http->get($this->server.'/basic-auth/user/pass'); - $this->assertFalse($data === false, 'HTTP response'); + $this->assertFalse($data === false, 'HTTP response '.$http->error); $resp = json_decode($data, true); $this->assertTrue(is_array($resp), 'JSON response'); $this->assertEquals(array('authenticated'=>true,'user'=>'user'), $resp); @@ -171,7 +171,7 @@ class httpclient_http_test extends DokuWikiTest { $http->user = 'user'; $http->pass = 'invalid'; $data = $http->get($this->server.'/basic-auth/user/pass'); - $this->assertTrue($data === false, 'HTTP response'); + $this->assertTrue($data === false, 'HTTP response '.$http->error); $this->assertEquals(401,$http->status); } @@ -182,7 +182,7 @@ class httpclient_http_test extends DokuWikiTest { $http = new HTTPClient(); $http->timeout = 5; $data = $http->get($this->server.'/delay/10'); - $this->assertTrue($data === false, 'HTTP response'); + $this->assertTrue($data === false, 'HTTP response '.$http->error); $this->assertEquals(-100,$http->status); } @@ -192,7 +192,7 @@ class httpclient_http_test extends DokuWikiTest { function test_headers(){ $http = new HTTPClient(); $data = $http->get($this->server.'/response-headers?baz=&foo=bar'); - $this->assertFalse($data === false, 'HTTP response'); + $this->assertFalse($data === false, 'HTTP response '.$http->error); $resp = json_decode($data, true); $this->assertTrue(is_array($resp), 'JSON response'); $this->assertArrayHasKey('baz',$http->resp_headers); @@ -206,7 +206,7 @@ class httpclient_http_test extends DokuWikiTest { function test_chunked(){ $http = new HTTPClient(); $data = $http->get('http://whoopdedo.org/cgi-bin/chunked/2550'); - $this->assertFalse($data === false, 'HTTP response'); + $this->assertFalse($data === false, 'HTTP response '.$http->error); $this->assertEquals(2550,strlen($data)); } @@ -218,7 +218,7 @@ class httpclient_http_test extends DokuWikiTest { function test_wikimatrix(){ $http = new HTTPClient(); $data = $http->get('http://www.wikimatrix.org/cfeed/dokuwiki/-/-'); - $this->assertTrue($data !== false, $http->error); + $this->assertTrue($data !== false, 'HTTP response '.$http->error); } function test_postencode(){ -- cgit v1.2.3 From 95e6ded1b26c14b1ef55699b171ce422827364b1 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 9 Feb 2014 10:08:48 +0100 Subject: more robust HTTP testing connections are now retried after timeout and failing connections will be marked as skipped instead of failing. This should reduce false alarms on travis --- _test/tests/inc/httpclient_http.test.php | 115 +++++++++++++++++++++---- _test/tests/inc/httpclient_http_proxy.test.php | 4 +- _test/tests/inc/httpclient_mock.php | 46 ++++++++++ _test/tests/inc/mailer.test.php | 5 +- 4 files changed, 150 insertions(+), 20 deletions(-) create mode 100644 _test/tests/inc/httpclient_mock.php (limited to '_test') diff --git a/_test/tests/inc/httpclient_http.test.php b/_test/tests/inc/httpclient_http.test.php index a19f2d238..3446e1184 100644 --- a/_test/tests/inc/httpclient_http.test.php +++ b/_test/tests/inc/httpclient_http.test.php @@ -1,14 +1,21 @@ get($this->server.'/get?foo=bar'); + if($http->noconnection()) { + $this->markTestSkipped('connection timed out'); + return; + } $this->assertFalse($data === false, 'HTTP response '.$http->error); $resp = json_decode($data, true); $this->assertTrue(is_array($resp), 'JSON response'); @@ -20,8 +27,12 @@ class httpclient_http_test extends DokuWikiTest { * @group internet */ function test_dget(){ - $http = new HTTPClient(); + $http = new HTTPMockClient(); $data = $http->dget($this->server.'/get',array('foo'=>'bar')); + if($http->noconnection()) { + $this->markTestSkipped('connection timed out'); + return; + } $this->assertFalse($data === false, 'HTTP response '.$http->error); $resp = json_decode($data, true); $this->assertTrue(is_array($resp), 'JSON response'); @@ -33,8 +44,12 @@ class httpclient_http_test extends DokuWikiTest { * @group internet */ function test_gzip(){ - $http = new HTTPClient(); + $http = new HTTPMockClient(); $data = $http->get($this->server.'/gzip'); + if($http->noconnection()) { + $this->markTestSkipped('connection timed out'); + return; + } $this->assertFalse($data === false, 'HTTP response '.$http->error); $resp = json_decode($data, true); $this->assertTrue(is_array($resp), 'JSON response'); @@ -46,8 +61,12 @@ class httpclient_http_test extends DokuWikiTest { * @group internet */ function test_simplepost(){ - $http = new HTTPClient(); + $http = new HTTPMockClient(); $data = $http->post($this->server.'/post',array('foo'=>'bar')); + if($http->noconnection()) { + $this->markTestSkipped('connection timed out'); + return; + } $this->assertFalse($data === false, 'HTTP response '.$http->error); $resp = json_decode($data, true); $this->assertTrue(is_array($resp), 'JSON response'); @@ -59,8 +78,12 @@ class httpclient_http_test extends DokuWikiTest { * @group internet */ function test_redirect(){ - $http = new HTTPClient(); + $http = new HTTPMockClient(); $data = $http->get($this->server.'/redirect/3'); + if($http->noconnection()) { + $this->markTestSkipped('connection timed out'); + return; + } $this->assertFalse($data === false, 'HTTP response '.$http->error); $resp = json_decode($data, true); $this->assertTrue(is_array($resp), 'JSON response'); @@ -72,8 +95,12 @@ class httpclient_http_test extends DokuWikiTest { * @group internet */ function test_relredirect(){ - $http = new HTTPClient(); + $http = new HTTPMockClient(); $data = $http->get($this->server.'/relative-redirect/3'); + if($http->noconnection()) { + $this->markTestSkipped('connection timed out'); + return; + } $this->assertFalse($data === false, 'HTTP response '.$http->error); $resp = json_decode($data, true); $this->assertTrue(is_array($resp), 'JSON response'); @@ -85,8 +112,12 @@ class httpclient_http_test extends DokuWikiTest { * @group internet */ function test_redirectfail(){ - $http = new HTTPClient(); + $http = new HTTPMockClient(); $data = $http->get($this->server.'/redirect/5'); + if($http->noconnection()) { + $this->markTestSkipped('connection timed out'); + return; + } $this->assertTrue($data === false, 'HTTP response '.$http->error); $this->assertEquals('Maximum number of redirects exceeded',$http->error); } @@ -95,10 +126,18 @@ class httpclient_http_test extends DokuWikiTest { * @group internet */ function test_cookies(){ - $http = new HTTPClient(); + $http = new HTTPMockClient(); $http->get($this->server.'/cookies/set/foo/bar'); + if($http->noconnection()) { + $this->markTestSkipped('connection timed out'); + return; + } $this->assertEquals(array('foo' => 'bar'), $http->cookies); $data = $http->get($this->server.'/cookies'); + if($http->noconnection()) { + $this->markTestSkipped('connection timed out'); + return; + } $this->assertFalse($data === false, 'HTTP response '.$http->error); $resp = json_decode($data, true); $this->assertTrue(is_array($resp), 'JSON response'); @@ -110,8 +149,12 @@ class httpclient_http_test extends DokuWikiTest { * @group internet */ function test_teapot(){ - $http = new HTTPClient(); + $http = new HTTPMockClient(); $data = $http->get($this->server.'/status/418'); + if($http->noconnection()) { + $this->markTestSkipped('connection timed out'); + return; + } $this->assertTrue($data === false, 'HTTP response '.$http->error); $this->assertEquals(418,$http->status); } @@ -120,17 +163,25 @@ class httpclient_http_test extends DokuWikiTest { * @group internet */ function test_maxbody(){ - $http = new HTTPClient(); + $http = new HTTPMockClient(); $http->max_bodysize = 250; // this should abort completely $data = $http->get($this->server.'/stream/30'); + if($http->noconnection()) { + $this->markTestSkipped('connection timed out'); + return; + } $this->assertTrue($data === false, 'HTTP response '.$http->error); // this should read just the needed bytes $http->max_bodysize_abort = false; $http->keep_alive = false; $data = $http->get($this->server.'/stream/30'); + if($http->noconnection()) { + $this->markTestSkipped('connection timed out'); + return; + } $this->assertFalse($data === false, 'HTTP response '.$http->error); /* should read no more than max_bodysize+1 */ $this->assertLessThanOrEqual(251,strlen($data)); @@ -140,12 +191,20 @@ class httpclient_http_test extends DokuWikiTest { * @group internet */ function test_maxbodyok(){ - $http = new HTTPClient(); + $http = new HTTPMockClient(); $http->max_bodysize = 500*1024; $data = $http->get($this->server.'/stream/5'); + if($http->noconnection()) { + $this->markTestSkipped('connection timed out'); + return; + } $this->assertTrue($data !== false, 'HTTP response '.$http->error); $http->max_bodysize_abort = false; $data = $http->get($this->server.'/stream/5'); + if($http->noconnection()) { + $this->markTestSkipped('connection timed out'); + return; + } $this->assertTrue($data !== false, 'HTTP response '.$http->error); } @@ -153,10 +212,14 @@ class httpclient_http_test extends DokuWikiTest { * @group internet */ function test_basicauth(){ - $http = new HTTPClient(); + $http = new HTTPMockClient(); $http->user = 'user'; $http->pass = 'pass'; $data = $http->get($this->server.'/basic-auth/user/pass'); + if($http->noconnection()) { + $this->markTestSkipped('connection timed out'); + return; + } $this->assertFalse($data === false, 'HTTP response '.$http->error); $resp = json_decode($data, true); $this->assertTrue(is_array($resp), 'JSON response'); @@ -167,10 +230,14 @@ class httpclient_http_test extends DokuWikiTest { * @group internet */ function test_basicauthfail(){ - $http = new HTTPClient(); + $http = new HTTPMockClient(); $http->user = 'user'; $http->pass = 'invalid'; $data = $http->get($this->server.'/basic-auth/user/pass'); + if($http->noconnection()) { + $this->markTestSkipped('connection timed out'); + return; + } $this->assertTrue($data === false, 'HTTP response '.$http->error); $this->assertEquals(401,$http->status); } @@ -179,7 +246,7 @@ class httpclient_http_test extends DokuWikiTest { * @group internet */ function test_timeout(){ - $http = new HTTPClient(); + $http = new HTTPMockClient(); $http->timeout = 5; $data = $http->get($this->server.'/delay/10'); $this->assertTrue($data === false, 'HTTP response '.$http->error); @@ -190,8 +257,12 @@ class httpclient_http_test extends DokuWikiTest { * @group internet */ function test_headers(){ - $http = new HTTPClient(); + $http = new HTTPMockClient(); $data = $http->get($this->server.'/response-headers?baz=&foo=bar'); + if($http->noconnection()) { + $this->markTestSkipped('connection timed out'); + return; + } $this->assertFalse($data === false, 'HTTP response '.$http->error); $resp = json_decode($data, true); $this->assertTrue(is_array($resp), 'JSON response'); @@ -204,8 +275,12 @@ class httpclient_http_test extends DokuWikiTest { * @group internet */ function test_chunked(){ - $http = new HTTPClient(); + $http = new HTTPMockClient(); $data = $http->get('http://whoopdedo.org/cgi-bin/chunked/2550'); + if($http->noconnection()) { + $this->markTestSkipped('connection timed out'); + return; + } $this->assertFalse($data === false, 'HTTP response '.$http->error); $this->assertEquals(2550,strlen($data)); } @@ -216,13 +291,17 @@ class httpclient_http_test extends DokuWikiTest { * @group internet */ function test_wikimatrix(){ - $http = new HTTPClient(); + $http = new HTTPMockClient(); $data = $http->get('http://www.wikimatrix.org/cfeed/dokuwiki/-/-'); + if($http->noconnection()) { + $this->markTestSkipped('connection timed out'); + return; + } $this->assertTrue($data !== false, 'HTTP response '.$http->error); } function test_postencode(){ - $http = new HTTPClient(); + $http = new HTTPMockClient(); // check simple data diff --git a/_test/tests/inc/httpclient_http_proxy.test.php b/_test/tests/inc/httpclient_http_proxy.test.php index 4aa039fcc..61228ad94 100644 --- a/_test/tests/inc/httpclient_http_proxy.test.php +++ b/_test/tests/inc/httpclient_http_proxy.test.php @@ -1,5 +1,7 @@ $http->proxy_host = 'proxy.andrwe.org'; $http->proxy_port = 8080; diff --git a/_test/tests/inc/httpclient_mock.php b/_test/tests/inc/httpclient_mock.php new file mode 100644 index 000000000..038045c8b --- /dev/null +++ b/_test/tests/inc/httpclient_mock.php @@ -0,0 +1,46 @@ +timeout = 8; // slightly faster timeouts + } + + /** + * Returns true if the connection timed out + * + * @return bool + */ + function noconnection() { + return ($this->tries === 0); + } + + /** + * Retries sending the request multiple times + * + * @param string $url + * @param string $data + * @param string $method + * @return bool + */ + function sendRequest($url, $data = '', $method = 'GET') { + $this->tries = 2; // configures the number of retries + $return = false; + while($this->tries) { + $return = parent::sendRequest($url, $data, $method); + if($this->status != -100) break; + $this->tries--; + } + return $return; + } +} \ No newline at end of file diff --git a/_test/tests/inc/mailer.test.php b/_test/tests/inc/mailer.test.php index 4541d9906..50d282864 100644 --- a/_test/tests/inc/mailer.test.php +++ b/_test/tests/inc/mailer.test.php @@ -191,7 +191,10 @@ class mailer_test extends DokuWikiTest { // 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); + if($results === false) { + $this->markTestSkipped('no response from validator'); + return; + } // parse the result lines $lines = explode("\n", $results); -- cgit v1.2.3 From 2bbe40cf8802bbc3bbf83d454cc294080ebaf241 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Tue, 11 Feb 2014 23:01:29 +0100 Subject: HTTPClient: correctly abort a proxy connection if a needed CONNECT tunnel fails --- _test/tests/inc/httpclient_http_proxy.test.php | 1 - _test/tests/inc/httpclient_https_proxy.test.php | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 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 61228ad94..c44dc7ed7 100644 --- a/_test/tests/inc/httpclient_http_proxy.test.php +++ b/_test/tests/inc/httpclient_http_proxy.test.php @@ -18,5 +18,4 @@ class httpclient_http_proxy_test extends DokuWikiTest { $this->assertFalse($data === false, 'HTTP response '.$http->error); $this->assertTrue(strpos($data,'DokuWiki') !== false, 'response content'); } - } \ No newline at end of file diff --git a/_test/tests/inc/httpclient_https_proxy.test.php b/_test/tests/inc/httpclient_https_proxy.test.php index aca3b3be2..9402e91af 100644 --- a/_test/tests/inc/httpclient_https_proxy.test.php +++ b/_test/tests/inc/httpclient_https_proxy.test.php @@ -12,4 +12,19 @@ class httpclient_https_proxy_test extends httpclient_http_proxy_test { } parent::setUp(); } + + /** + * @group internet + */ + function test_connectfail(){ + $http = new HTTPMockClient(); + // proxy provided by Andrwe Lord Weber + $http->proxy_host = 'proxy.andrwe.org'; + $http->proxy_port = 8080; + + // the proxy accepts connections to dokuwiki.org only - the connect call should fail + $data = $http->get('https://www.google.com'); + $this->assertFalse($data); + $this->assertEquals(-150, $http->status); + } } \ No newline at end of file -- cgit v1.2.3 From 2d6df7955d82d34f7a58b289fa04755c5ab9146e Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Sat, 15 Feb 2014 00:49:18 +0100 Subject: added tests for Doku_Renderer::_resolveInterWiki --- .../inc/parser/renderer_resolveinterwiki.test.php | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 _test/tests/inc/parser/renderer_resolveinterwiki.test.php (limited to '_test') diff --git a/_test/tests/inc/parser/renderer_resolveinterwiki.test.php b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php new file mode 100644 index 000000000..5ce54fac6 --- /dev/null +++ b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php @@ -0,0 +1,54 @@ +interwiki = getInterwiki(); + $Renderer->interwiki['scheme'] = '{SCHEME}://example.com'; + $Renderer->interwiki['slash'] = '/test'; + $Renderer->interwiki['onlytext'] = 'onlytext'; + + //var_dump($Renderer->interwiki); + + $tests = array( + // shortcut, reference and expected + array('wp', 'foo @+%/', 'http://en.wikipedia.org/wiki/foo @+%/'), + array('amazon', 'foo @+%/', 'http://www.amazon.com/exec/obidos/ASIN/foo%20%40%2B%25%2F/splitbrain-20/'), + array('doku', 'foo @+%/', 'http://www.dokuwiki.org/foo%20%40%2B%25%2F'), + //ToDo: Check needed, is double slash in path desired + array('coral', 'http://example.com:83/path/naar/?query=foo%20%40%2B%25%2F', 'http://example.com.83.nyud.net:8090//path/naar/?query=foo%20%40%2B%25%2F'), + array('scheme', 'ftp://foo @+%/', 'ftp://example.com'), + //relative url + array('slash', 'foo @+%/', '/testfoo%20%40%2B%25%2F'), + //dokuwiki id's + array('onlytext', 'foo @+%/', 'onlytextfoo%20%40%2B%25%2F'), + array('user', 'foo @+%/', 'wiki:users:foo%20%40%2B%25%2F') + ); + + foreach($tests as $test) { + $url = $Renderer->_resolveInterWiki($test[0], $test[1]); + + $this->assertEquals($test[2], $url); + } + } + + function testNonexisting() { + $Renderer = new Doku_Renderer(); + $Renderer->interwiki = getInterwiki(); + + $shortcut = 'nonexisting'; + $reference = 'foo @+%/'; + $url = $Renderer->_resolveInterWiki($shortcut, $reference); + $expected = 'http://www.google.com/search?q=foo%20%40%2B%25%2F&btnI=lucky'; + + $this->assertEquals($expected, $url); + } + +} \ No newline at end of file -- cgit v1.2.3 From 2345e871e407dbece52f3181cd8b077f07cbb0c1 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Sat, 15 Feb 2014 11:11:15 +0100 Subject: wikilink creating refactored to _resolveinterwiki(). Added DOKU_BASE for local target --- .../inc/parser/renderer_resolveinterwiki.test.php | 23 +++++++++++----------- 1 file changed, 11 insertions(+), 12 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/parser/renderer_resolveinterwiki.test.php b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php index 5ce54fac6..f17838f92 100644 --- a/_test/tests/inc/parser/renderer_resolveinterwiki.test.php +++ b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php @@ -7,29 +7,28 @@ require_once DOKU_INC . 'inc/parser/renderer.php'; */ class Test_resolveInterwiki extends PHPUnit_Framework_TestCase { - function testDefaults() { $Renderer = new Doku_Renderer(); $Renderer->interwiki = getInterwiki(); $Renderer->interwiki['scheme'] = '{SCHEME}://example.com'; - $Renderer->interwiki['slash'] = '/test'; - $Renderer->interwiki['onlytext'] = 'onlytext'; - - //var_dump($Renderer->interwiki); + $Renderer->interwiki['withslash'] = '/test'; + $Renderer->interwiki['onlytext'] = 'onlytext{NAME}'; //with {URL} double urlencoded + $Renderer->interwiki['withquery'] = 'anyns:{NAME}?do=edit'; $tests = array( // shortcut, reference and expected - array('wp', 'foo @+%/', 'http://en.wikipedia.org/wiki/foo @+%/'), - array('amazon', 'foo @+%/', 'http://www.amazon.com/exec/obidos/ASIN/foo%20%40%2B%25%2F/splitbrain-20/'), - array('doku', 'foo @+%/', 'http://www.dokuwiki.org/foo%20%40%2B%25%2F'), + array('wp', 'foo @+%/#txt', 'http://en.wikipedia.org/wiki/foo @+%/#txt'), + array('amazon', 'foo @+%/#txt', 'http://www.amazon.com/exec/obidos/ASIN/foo%20%40%2B%25%2F/splitbrain-20/#txt'), + array('doku', 'foo @+%/#txt', 'http://www.dokuwiki.org/foo%20%40%2B%25%2F#txt'), //ToDo: Check needed, is double slash in path desired array('coral', 'http://example.com:83/path/naar/?query=foo%20%40%2B%25%2F', 'http://example.com.83.nyud.net:8090//path/naar/?query=foo%20%40%2B%25%2F'), - array('scheme', 'ftp://foo @+%/', 'ftp://example.com'), + array('scheme', 'ftp://foo @+%/#txt', 'ftp://example.com#txt'), //relative url - array('slash', 'foo @+%/', '/testfoo%20%40%2B%25%2F'), + array('withslash', 'foo @+%/#txt', '/testfoo%20%40%2B%25%2F#txt'), //dokuwiki id's - array('onlytext', 'foo @+%/', 'onlytextfoo%20%40%2B%25%2F'), - array('user', 'foo @+%/', 'wiki:users:foo%20%40%2B%25%2F') + array('onlytext', 'foo @+%#txt', '/tmp/doku.php?id=onlytextfoo%20%40%2B%25#txt'), + array('user', 'foo @+%#txt', '/tmp/doku.php?id=wiki:users:foo%20%40%2B%25#txt'), + array('withquery', 'foo @+%#txt', '/tmp/doku.php?id=anyns:foo%20%40%2B%25&do=edit#txt') ); foreach($tests as $test) { -- cgit v1.2.3 From 4485a8917160fb9f955e5b8aa28c1a5499c608b0 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Sat, 15 Feb 2014 11:28:09 +0100 Subject: Fix double slash in coral interwikilink --- _test/tests/inc/parser/renderer_resolveinterwiki.test.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/parser/renderer_resolveinterwiki.test.php b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php index f17838f92..ea4f99511 100644 --- a/_test/tests/inc/parser/renderer_resolveinterwiki.test.php +++ b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php @@ -20,8 +20,7 @@ class Test_resolveInterwiki extends PHPUnit_Framework_TestCase { array('wp', 'foo @+%/#txt', 'http://en.wikipedia.org/wiki/foo @+%/#txt'), array('amazon', 'foo @+%/#txt', 'http://www.amazon.com/exec/obidos/ASIN/foo%20%40%2B%25%2F/splitbrain-20/#txt'), array('doku', 'foo @+%/#txt', 'http://www.dokuwiki.org/foo%20%40%2B%25%2F#txt'), - //ToDo: Check needed, is double slash in path desired - array('coral', 'http://example.com:83/path/naar/?query=foo%20%40%2B%25%2F', 'http://example.com.83.nyud.net:8090//path/naar/?query=foo%20%40%2B%25%2F'), + array('coral', 'http://example.com:83/path/naar/?query=foo%20%40%2B%25%2F', 'http://example.com.83.nyud.net:8090/path/naar/?query=foo%20%40%2B%25%2F'), array('scheme', 'ftp://foo @+%/#txt', 'ftp://example.com#txt'), //relative url array('withslash', 'foo @+%/#txt', '/testfoo%20%40%2B%25%2F#txt'), -- cgit v1.2.3 From ddb55c702f2393a435c309fd7d4e169acb2675f7 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Sat, 15 Feb 2014 11:29:33 +0100 Subject: Use DOKU_BASE in resolveinterwiki unittest --- _test/tests/inc/parser/renderer_resolveinterwiki.test.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/parser/renderer_resolveinterwiki.test.php b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php index ea4f99511..a71895b34 100644 --- a/_test/tests/inc/parser/renderer_resolveinterwiki.test.php +++ b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php @@ -25,9 +25,9 @@ class Test_resolveInterwiki extends PHPUnit_Framework_TestCase { //relative url array('withslash', 'foo @+%/#txt', '/testfoo%20%40%2B%25%2F#txt'), //dokuwiki id's - array('onlytext', 'foo @+%#txt', '/tmp/doku.php?id=onlytextfoo%20%40%2B%25#txt'), - array('user', 'foo @+%#txt', '/tmp/doku.php?id=wiki:users:foo%20%40%2B%25#txt'), - array('withquery', 'foo @+%#txt', '/tmp/doku.php?id=anyns:foo%20%40%2B%25&do=edit#txt') + array('onlytext', 'foo @+%#txt', DOKU_BASE.'doku.php?id=onlytextfoo%20%40%2B%25#txt'), + array('user', 'foo @+%#txt', DOKU_BASE.'doku.php?id=wiki:users:foo%20%40%2B%25#txt'), + array('withquery', 'foo @+%#txt', DOKU_BASE.'doku.php?id=anyns:foo%20%40%2B%25&do=edit#txt') ); foreach($tests as $test) { -- cgit v1.2.3 From 6496c33fc8e98f6e3acaaa5db0234d9c07bec4fe Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Sat, 15 Feb 2014 14:34:26 +0100 Subject: interwiki : prefixed configurls handled as wikilinks --- _test/tests/inc/parser/renderer_resolveinterwiki.test.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/parser/renderer_resolveinterwiki.test.php b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php index a71895b34..e78930934 100644 --- a/_test/tests/inc/parser/renderer_resolveinterwiki.test.php +++ b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php @@ -12,8 +12,8 @@ class Test_resolveInterwiki extends PHPUnit_Framework_TestCase { $Renderer->interwiki = getInterwiki(); $Renderer->interwiki['scheme'] = '{SCHEME}://example.com'; $Renderer->interwiki['withslash'] = '/test'; - $Renderer->interwiki['onlytext'] = 'onlytext{NAME}'; //with {URL} double urlencoded - $Renderer->interwiki['withquery'] = 'anyns:{NAME}?do=edit'; + $Renderer->interwiki['onlytext'] = ':onlytext{NAME}'; //with {URL} double urlencoded + $Renderer->interwiki['withquery'] = ':anyns:{NAME}?do=edit'; $tests = array( // shortcut, reference and expected @@ -24,10 +24,11 @@ class Test_resolveInterwiki extends PHPUnit_Framework_TestCase { array('scheme', 'ftp://foo @+%/#txt', 'ftp://example.com#txt'), //relative url array('withslash', 'foo @+%/#txt', '/testfoo%20%40%2B%25%2F#txt'), + array('skype', 'foo @+%/#txt', 'skype:foo @+%/#txt'), //dokuwiki id's - array('onlytext', 'foo @+%#txt', DOKU_BASE.'doku.php?id=onlytextfoo%20%40%2B%25#txt'), - array('user', 'foo @+%#txt', DOKU_BASE.'doku.php?id=wiki:users:foo%20%40%2B%25#txt'), - array('withquery', 'foo @+%#txt', DOKU_BASE.'doku.php?id=anyns:foo%20%40%2B%25&do=edit#txt') + array('onlytext', 'foo @+%#txt', DOKU_BASE.'doku.php?id=onlytextfoo#txt'), + array('user', 'foo @+%#txt', DOKU_BASE.'doku.php?id=wiki:users:foo#txt'), + array('withquery', 'foo @+%#txt', DOKU_BASE.'doku.php?id=anyns:foo&do=edit#txt') ); foreach($tests as $test) { -- cgit v1.2.3 From 04180aa92fd6a23e4a6c154bc248e7b09d60d21d Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 15 Feb 2014 16:57:04 +0100 Subject: unit test for FS#2173 --- _test/tests/inc/utf8_strtolower.test.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 _test/tests/inc/utf8_strtolower.test.php (limited to '_test') diff --git a/_test/tests/inc/utf8_strtolower.test.php b/_test/tests/inc/utf8_strtolower.test.php new file mode 100644 index 000000000..85f5b270b --- /dev/null +++ b/_test/tests/inc/utf8_strtolower.test.php @@ -0,0 +1,23 @@ + 'αρχιτεκτονική μελέτη', // FS#2173 + ); + + foreach($data as $input => $expected) { + $this->assertEquals($expected, utf8_strtolower($input)); + } + + // just make sure our data was correct + if(function_exists('mb_strtolower')) { + foreach($data as $input => $expected) { + $this->assertEquals($expected, mb_strtolower($input, 'utf-8')); + } + } + } +} \ No newline at end of file -- cgit v1.2.3 From c931f569620802229ca2b48a0aafff77d5072979 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Sat, 15 Feb 2014 21:19:55 +0100 Subject: rename unit tests for getRevisionAround. Fix revs order as well. --- _test/tests/inc/changelog_getRevisionsAround.php | 183 -------------------- .../inc/changelog_getRevisionsAround.test.php | 188 +++++++++++++++++++++ 2 files changed, 188 insertions(+), 183 deletions(-) delete mode 100644 _test/tests/inc/changelog_getRevisionsAround.php create mode 100644 _test/tests/inc/changelog_getRevisionsAround.test.php (limited to '_test') diff --git a/_test/tests/inc/changelog_getRevisionsAround.php b/_test/tests/inc/changelog_getRevisionsAround.php deleted file mode 100644 index d4d6b8496..000000000 --- a/_test/tests/inc/changelog_getRevisionsAround.php +++ /dev/null @@ -1,183 +0,0 @@ -getRevisionsAround($rev1, $rev2, $max); - $this->assertEquals($revsexpected, $revs); - } - - /** - * Surrounding revisions of rev1 and rev2 overlaps - */ - function test_request_overlapping() { - $rev1 = 1362526767; - $rev2 = 1362527164; - $max = 10; - $revsexpected = array( - array_slice($this->revsexpected, 5, 11), - array_slice($this->revsexpected, 8, 11) - ); - - $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); - $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); - $this->assertEquals($revsexpected, $revs); - - $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); - $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); - $this->assertEquals($revsexpected, $revs); - - $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); - $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); - $this->assertEquals($revsexpected, $revs); - } - - /** - * Surrounding revisions of rev1 and rev2 don't overlap. - */ - function test_request_non_overlapping() { - $rev1 = 1362525899; - $rev2 = 1368612599; - $max = 10; - $revsexpected = array( - array_slice($this->revsexpected, 0, 11), - array_slice($this->revsexpected, 13, 11) - ); - - $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); - $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); - $this->assertEquals($revsexpected, $revs); - - $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); - $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); - $this->assertEquals($revsexpected, $revs); - - $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); - $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); - $this->assertEquals($revsexpected, $revs); - } - - /** - * rev1 and rev2 are at start and end of the changelog. - * Should return still a number of revisions equal to max - */ - function test_request_first_last() { - $rev1 = 1360110636; - $rev2 = 1374261194; - $max = 10; - $revsexpected = array( - array_slice($this->revsexpected, 0, 11), - array_slice($this->revsexpected, 13, 11) - ); - - $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); - $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); - $this->assertEquals($revsexpected, $revs); - - $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); - $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); - $this->assertEquals($revsexpected, $revs); - - $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); - $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); - $this->assertEquals($revsexpected, $revs); - } - - - /** - * Number of requested revisions is larger than available revisions, - * so returns whole log - */ - function test_request_wholelog() { - $rev1 = 1362525899; - $rev2 = 1368612599; - $max = 50; - $revsexpected = array($this->revsexpected, $this->revsexpected); - - $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); - $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); - $this->assertEquals($revsexpected, $revs); - - $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); - $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); - $this->assertEquals($revsexpected, $revs); - - $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); - $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); - $this->assertEquals($revsexpected, $revs); - } - - /** - * When rev1 > rev2, their order is changed - */ - function test_request_wrong_order_revs() { - $rev1 = 1362527164; - $rev2 = 1362526767; - $max = 10; - $revsexpected = array( - array_slice($this->revsexpected, 5, 11), - array_slice($this->revsexpected, 8, 11) - ); - - $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); - $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); - $this->assertEquals($revsexpected, $revs); - - $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); - $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); - $this->assertEquals($revsexpected, $revs); - - $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); - $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); - $this->assertEquals($revsexpected, $revs); - } - -} \ No newline at end of file diff --git a/_test/tests/inc/changelog_getRevisionsAround.test.php b/_test/tests/inc/changelog_getRevisionsAround.test.php new file mode 100644 index 000000000..2a5cb849e --- /dev/null +++ b/_test/tests/inc/changelog_getRevisionsAround.test.php @@ -0,0 +1,188 @@ +getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + } + + /** + * Surrounding revisions of rev1 and rev2 overlaps + */ + function test_request_overlapping() { + $rev1 = 1362526767; + $rev2 = 1362527164; + $max = 10; + $revsexpected = array( + array_slice($this->revsexpected, 8, 11), + array_slice($this->revsexpected, 5, 11) + ); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + } + + /** + * Surrounding revisions of rev1 and rev2 don't overlap. + */ + function test_request_non_overlapping() { + $rev1 = 1362525899; + $rev2 = 1368612599; + $max = 10; + $revsexpected = array( + array_slice($this->revsexpected, 13, 11), + array_slice($this->revsexpected, 0, 11) + ); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + } + + /** + * rev1 and rev2 are at start and end of the changelog. + * Should return still a number of revisions equal to max + */ + function test_request_first_last() { + $rev1 = 1360110636; + $rev2 = 1374261194; + $max = 10; + $revsexpected = array( + array_slice($this->revsexpected, 13, 11), + array_slice($this->revsexpected, 0, 11) + ); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + + //todo: number of revisions on the left side is not (yet) completed until max number + $revsexpected = array( + array_slice($this->revsexpected, 18, 6), + array_slice($this->revsexpected, 0, 11) + ); + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + } + + + /** + * Number of requested revisions is larger than available revisions, + * so returns whole log + */ + function test_request_wholelog() { + $rev1 = 1362525899; + $rev2 = 1368612599; + $max = 50; + $revsexpected = array($this->revsexpected, $this->revsexpected); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + } + + /** + * When rev1 > rev2, their order is changed + */ + function test_request_wrong_order_revs() { + $rev1 = 1362527164; + $rev2 = 1362526767; + $max = 10; + $revsexpected = array( + array_slice($this->revsexpected, 8, 11), + array_slice($this->revsexpected, 5, 11) + ); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + + $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); + $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); + $this->assertEquals($revsexpected, $revs); + } + +} \ No newline at end of file -- cgit v1.2.3 From 118e00521560a4a93c92ba7439e5cf5463e0efe7 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Mon, 17 Feb 2014 00:51:10 +0100 Subject: update unittest with interwiki.conf change as well --- _test/tests/inc/parser/renderer_resolveinterwiki.test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '_test') diff --git a/_test/tests/inc/parser/renderer_resolveinterwiki.test.php b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php index e78930934..7b43b6d62 100644 --- a/_test/tests/inc/parser/renderer_resolveinterwiki.test.php +++ b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php @@ -27,7 +27,7 @@ class Test_resolveInterwiki extends PHPUnit_Framework_TestCase { array('skype', 'foo @+%/#txt', 'skype:foo @+%/#txt'), //dokuwiki id's array('onlytext', 'foo @+%#txt', DOKU_BASE.'doku.php?id=onlytextfoo#txt'), - array('user', 'foo @+%#txt', DOKU_BASE.'doku.php?id=wiki:users:foo#txt'), + array('user', 'foo @+%#txt', DOKU_BASE.'doku.php?id=user:foo#txt'), array('withquery', 'foo @+%#txt', DOKU_BASE.'doku.php?id=anyns:foo&do=edit#txt') ); -- cgit v1.2.3 From 81e7bffefad6e652e45320e87d966712e5711efd Mon Sep 17 00:00:00 2001 From: lisps Date: Mon, 17 Feb 2014 23:48:05 +0100 Subject: rename classname --- _test/tests/inc/changelog_getlastrevisionat.test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '_test') diff --git a/_test/tests/inc/changelog_getlastrevisionat.test.php b/_test/tests/inc/changelog_getlastrevisionat.test.php index b4d0466b3..84b185ce8 100644 --- a/_test/tests/inc/changelog_getlastrevisionat.test.php +++ b/_test/tests/inc/changelog_getlastrevisionat.test.php @@ -7,7 +7,7 @@ * - data/pages/mailinglist.txt * - data/meta/mailinglist.changes */ -class changelog_getrelativerevision_test extends DokuWikiTest { +class changelog_getlastrevisionat_test extends DokuWikiTest { private $pageid = 'mailinglist'; -- cgit v1.2.3 From 5d873dd4ce31c79403a01ac0e40ff148be282592 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 23 Feb 2014 10:09:11 +0100 Subject: fixed test cases for last commit --- _test/tests/inc/common_pageinfo.test.php | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to '_test') diff --git a/_test/tests/inc/common_pageinfo.test.php b/_test/tests/inc/common_pageinfo.test.php index 0a1ea0a8f..2b230d9ce 100644 --- a/_test/tests/inc/common_pageinfo.test.php +++ b/_test/tests/inc/common_pageinfo.test.php @@ -38,6 +38,7 @@ class common_pageinfo_test extends DokuWikiTest { $info['writable'] = true; $info['editable'] = true; $info['lastmod'] = false; + $info['currentrev'] = false; $info['meta'] = array(); $info['ip'] = null; $info['user'] = null; @@ -77,6 +78,7 @@ class common_pageinfo_test extends DokuWikiTest { $info['filepath'] = $filename; $info['exists'] = true; $info['lastmod'] = $rev; + $info['currentrev'] = $rev; $info['meta'] = p_get_metadata($ID); $this->assertEquals($info, pageinfo()); @@ -101,6 +103,7 @@ class common_pageinfo_test extends DokuWikiTest { $info['filepath'] = $filename; $info['exists'] = true; $info['lastmod'] = $rev; + $info['currentrev'] = $rev; $info['meta'] = p_get_metadata($ID); $info['rev'] = ''; @@ -131,6 +134,7 @@ class common_pageinfo_test extends DokuWikiTest { $info['namespace'] = 'wiki'; $info['meta'] = p_get_metadata($ID); $info['rev'] = $REV; + $info['currentrev'] = $rev; $info['filepath'] = str_replace('pages','attic',substr($filename,0,-3).$REV.'.txt.gz'); $this->assertEquals($info, pageinfo()); @@ -153,6 +157,7 @@ class common_pageinfo_test extends DokuWikiTest { $info['namespace'] = 'wiki'; $info['exists'] = true; $info['lastmod'] = $rev; + $info['currentrev'] = $rev; $info['meta'] = p_get_metadata($ID); $info['filepath'] = $filename; @@ -197,6 +202,7 @@ class common_pageinfo_test extends DokuWikiTest { $info['filepath'] = $filename; $info['exists'] = true; $info['lastmod'] = $rev; + $info['currentrev'] = $rev; $info['meta'] = p_get_metadata($ID); // need $INFO set correctly for addLogEntry() global $INFO; @@ -226,6 +232,7 @@ class common_pageinfo_test extends DokuWikiTest { touch($filename,$now); $info['lastmod'] = $now; + $info['currentrev'] = $now; $info['meta']['last_change'] = false; $info['ip'] = null; $info['user'] = null; @@ -251,6 +258,7 @@ class common_pageinfo_test extends DokuWikiTest { $info['filepath'] = $filename; $info['exists'] = true; $info['lastmod'] = $rev; + $info['currentrev'] = $rev; $info['meta'] = p_get_metadata($ID); // setup a draft, make it more recent than the current page -- cgit v1.2.3 From 9377d909ce85b1b96b0e953b3c09a2539797d54b Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Tue, 25 Feb 2014 03:00:26 +0000 Subject: add test for p_get_renderer() with fallback --- _test/tests/inc/parserutils_get_renderer.test.php | 79 +++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 _test/tests/inc/parserutils_get_renderer.test.php (limited to '_test') diff --git a/_test/tests/inc/parserutils_get_renderer.test.php b/_test/tests/inc/parserutils_get_renderer.test.php new file mode 100644 index 000000000..0f373227d --- /dev/null +++ b/_test/tests/inc/parserutils_get_renderer.test.php @@ -0,0 +1,79 @@ +assertInstanceOf('Doku_Renderer_xhtml', p_get_renderer('xhtml')); + + $conf = $old_conf; + } + + // test get a renderer plugin + function test_p_get_renderer_plugin() { + global $conf; + global $plugin_controller; + + $old_conf = $conf; + $conf['renderer_xhtml'] = 'get_renderer_test'; + $this->plugin_controller = $plugin_controller; + $plugin_controller = $this; + + $this->assertInstanceOf('renderer_plugin_test', p_get_renderer('xhtml')); + + $conf = $old_conf; + $plugin_controller = $this->plugin_controller; + } + + // test fallback succeeds + function test_p_get_renderer_fallback() { + global $conf; + + $old_conf = $conf; + $conf['renderer_xhtml'] = 'badvalue'; + + $this->assertInstanceOf('Doku_Renderer_xhtml', p_get_renderer('xhtml')); + + $conf = $old_conf; + } + + // test fallback fails + function test_p_get_renderer_fallback_fail() { + global $conf; + + $old_conf = $conf; + $conf['renderer_junk'] = 'badvalue'; + + $this->assertNull(p_get_renderer('junk')); + + $conf = $old_conf; + } + + // wrapper function for the fake plugin controller, return $this for the fake syntax of this test + function load($type,$name,$new=false,$disabled=false){ + if ($name == 'get_renderer_test') { + return new renderer_plugin_test(); + } else { + return $this->plugin_controller->load($type, $name, $new, $disabled); + } + } + } + +require_once DOKU_INC . 'inc/parser/xhtml.php'; + +class renderer_plugin_test extends Doku_Renderer_xhtml { + + function canRender($format) { + return ($format=='xhtml'); + } + +} + +// vim:ts=4:sw=4:et: -- cgit v1.2.3 From f3283f02766b2a2730b81c5a5a0b0a6240af054c Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Tue, 25 Feb 2014 21:15:43 +0000 Subject: change to an Exception and expect it --- _test/tests/inc/parserutils_get_renderer.test.php | 4 ++++ 1 file changed, 4 insertions(+) (limited to '_test') diff --git a/_test/tests/inc/parserutils_get_renderer.test.php b/_test/tests/inc/parserutils_get_renderer.test.php index 0f373227d..540063e19 100644 --- a/_test/tests/inc/parserutils_get_renderer.test.php +++ b/_test/tests/inc/parserutils_get_renderer.test.php @@ -45,6 +45,10 @@ class parserutils_get_renderer_test extends DokuWikiTest { } // test fallback fails + /** + * @expectedException Exception + * @expectedExceptionCode E_USER_WARNING + */ function test_p_get_renderer_fallback_fail() { global $conf; -- cgit v1.2.3 From a049856df3f316114a9d936d830d5b6d419b11e6 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Wed, 26 Feb 2014 01:12:33 +0000 Subject: revert back to trigger error --- _test/tests/inc/parserutils_get_renderer.test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '_test') diff --git a/_test/tests/inc/parserutils_get_renderer.test.php b/_test/tests/inc/parserutils_get_renderer.test.php index 540063e19..69aeb3b19 100644 --- a/_test/tests/inc/parserutils_get_renderer.test.php +++ b/_test/tests/inc/parserutils_get_renderer.test.php @@ -46,7 +46,7 @@ class parserutils_get_renderer_test extends DokuWikiTest { // test fallback fails /** - * @expectedException Exception + * @expectedException PHPUnit_Framework_Error * @expectedExceptionCode E_USER_WARNING */ function test_p_get_renderer_fallback_fail() { -- cgit v1.2.3 From 0499ebedfee66081086cd4ec5951365341072c88 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Wed, 5 Mar 2014 17:00:09 +0100 Subject: added (failing) test case for broken jquery ui compression --- _test/tests/lib/exe/css_css_compress.test.php | 7 +++++++ 1 file changed, 7 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 a614ea2fd..ba103813a 100644 --- a/_test/tests/lib/exe/css_css_compress.test.php +++ b/_test/tests/lib/exe/css_css_compress.test.php @@ -102,6 +102,13 @@ class css_css_compress_test extends DokuWikiTest { $this->assertEquals($expected, $input); } + function test_data() { + $input = 'list-style-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);'; + $expect = 'list-style-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);'; + + $this->assertEquals($expect, css_compress($input)); + } + } //Setup VIM: ex: et ts=4 : -- cgit v1.2.3 From fe5a50c39e9bd837f887ea7ad8335717a6c6ab92 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Wed, 5 Mar 2014 19:37:43 +0100 Subject: fix single line comments in CSS compression double slashes in url() always have to be ignored --- _test/tests/lib/exe/css_css_compress.test.php | 32 +++++++++++++++++++-------- 1 file changed, 23 insertions(+), 9 deletions(-) (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 ba103813a..f0eb17968 100644 --- a/_test/tests/lib/exe/css_css_compress.test.php +++ b/_test/tests/lib/exe/css_css_compress.test.php @@ -10,33 +10,47 @@ class css_css_compress_test extends DokuWikiTest { * line *test* * check */'; - $this->assertEquals(css_compress($text), ''); + $this->assertEquals('', css_compress($text)); } function test_mlcom2(){ $text = '#comment/* */ { color: lime; }'; - $this->assertEquals(css_compress($text), '#comment/* */{color:lime;}'); + $this->assertEquals('#comment/* */{color:lime;}', css_compress($text)); } function test_slcom1(){ $text = '// this is a comment'; - $this->assertEquals(css_compress($text), ''); + $this->assertEquals('', css_compress($text)); } function test_slcom2(){ $text = '#foo { color: lime; // another comment }'; - $this->assertEquals(css_compress($text), '#foo{color:lime;}'); + $this->assertEquals('#foo{color:lime;}', css_compress($text)); } function test_slcom3(){ $text = '#foo { - background-image: url(http://foo.bar/baz.jpg); + background-image: url(http://foo.bar/baz.jpg); // this is a comment }'; - $this->assertEquals(css_compress($text), '#foo{background-image:url(http://foo.bar/baz.jpg);}'); + $this->assertEquals('#foo{background-image:url(http://foo.bar/baz.jpg);}', css_compress($text)); + } + + function test_slcom4(){ + $text = '#foo { + background-image: url(http://foo.bar/baz.jpg); background-image: url(http://foo.bar/baz.jpg); // this is a comment + }'; + $this->assertEquals('#foo{background-image:url(http://foo.bar/baz.jpg);background-image:url(http://foo.bar/baz.jpg);}', css_compress($text)); + } + + function test_slcom5(){ + $text = '#foo { + background-image: url(http://foo.bar/baz.jpg); // background-image: url(http://foo.bar/baz.jpg); this is all commented + }'; + $this->assertEquals('#foo{background-image:url(http://foo.bar/baz.jpg);}', css_compress($text)); } function test_hack(){ @@ -44,7 +58,7 @@ class css_css_compress_test extends DokuWikiTest { /* \\*/ display: inline; /* */'; - $this->assertEquals(css_compress($text), '/* \\*/display:inline;/* */'); + $this->assertEquals('/* \\*/display:inline;/* */', css_compress($text)); } function test_hack2(){ @@ -54,12 +68,12 @@ class css_css_compress_test extends DokuWikiTest { height: 450px; } /**/'; - $this->assertEquals(css_compress($text), '/*\\*/* html .page{height:450px;}/**/'); + $this->assertEquals('/*\\*/* html .page{height:450px;}/**/', css_compress($text)); } function test_nl1(){ $text = "a{left:20px;\ntop:20px}"; - $this->assertEquals(css_compress($text), 'a{left:20px;top:20px}'); + $this->assertEquals('a{left:20px;top:20px}', css_compress($text)); } function test_shortening() { -- cgit v1.2.3 From c01cdb709fd0bf8c91333c5134743e33bf587833 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Thu, 6 Mar 2014 19:58:09 +0000 Subject: Fix unittests broken by previous two commits Mostly this is for unit tests which use of \$_SERVER['REMOTE_USER'] It ensures the reference/alias connection between \$INPUT->server and \$_SERVER is renewed before each test. Tests using TestRequest class will replace this \$INPUT with their own. --- _test/core/DokuWikiTest.php | 3 +++ 1 file changed, 3 insertions(+) (limited to '_test') diff --git a/_test/core/DokuWikiTest.php b/_test/core/DokuWikiTest.php index 91eb5293b..f4521256a 100644 --- a/_test/core/DokuWikiTest.php +++ b/_test/core/DokuWikiTest.php @@ -115,5 +115,8 @@ abstract class DokuWikiTest extends PHPUnit_Framework_TestCase { // reload language $local = $conf['lang']; trigger_event('INIT_LANG_LOAD', $local, 'init_lang', true); + + global $INPUT; + $INPUT = new Input(); } } -- cgit v1.2.3 From 7ec53b177159137ba25d9a02a6551f7a5c870827 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Wed, 12 Mar 2014 18:19:04 +0000 Subject: fix io_rmdir_test::test_nopes() for symlinks in paths --- _test/tests/inc/io_rmdir.test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '_test') diff --git a/_test/tests/inc/io_rmdir.test.php b/_test/tests/inc/io_rmdir.test.php index 3de57fa86..1c0eccb38 100644 --- a/_test/tests/inc/io_rmdir.test.php +++ b/_test/tests/inc/io_rmdir.test.php @@ -4,7 +4,7 @@ class io_rmdir_test extends DokuWikiTest { function test_nopes(){ // set up test dir - $dir = io_mktmpdir(); + $dir = realpath(io_mktmpdir()); $top = dirname($dir); $this->assertTrue($dir !== false); $this->assertTrue(is_dir($dir)); -- cgit v1.2.3 From e950d12fe605bb70cca7a030eab49f5e29719f0b Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Thu, 13 Mar 2014 17:55:21 +0000 Subject: improvements to double quote matching --- _test/tests/inc/parser/parser_quotes.test.php | 131 ++++++++++++++++++++------ 1 file changed, 103 insertions(+), 28 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/parser/parser_quotes.test.php b/_test/tests/inc/parser/parser_quotes.test.php index b82328212..6f174ddae 100644 --- a/_test/tests/inc/parser/parser_quotes.test.php +++ b/_test/tests/inc/parser/parser_quotes.test.php @@ -10,8 +10,9 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser { } function testSingleQuoteOpening() { + $raw = "Foo 'hello Bar"; $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); - $this->P->parse("Foo 'hello Bar"); + $this->P->parse($raw); $calls = array ( array('document_start',array()), @@ -23,12 +24,13 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser { array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls, 'wikitext => '.$raw); } function testSingleQuoteOpeningSpecial() { + $raw = "Foo said:'hello Bar"; $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); - $this->P->parse("Foo said:'hello Bar"); + $this->P->parse($raw); $calls = array ( array('document_start',array()), @@ -40,12 +42,13 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser { array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls, 'wikitext => '.$raw); } function testSingleQuoteClosing() { + $raw = "Foo hello' Bar"; $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); - $this->P->parse("Foo hello' Bar"); + $this->P->parse($raw); $calls = array ( array('document_start',array()), @@ -57,12 +60,13 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser { array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls, 'wikitext => '.$raw); } function testSingleQuoteClosingSpecial() { + $raw = "Foo hello') Bar"; $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); - $this->P->parse("Foo hello') Bar"); + $this->P->parse($raw); $calls = array ( array('document_start',array()), @@ -74,12 +78,13 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser { array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls, 'wikitext => '.$raw); } function testSingleQuotes() { + $raw = "Foo 'hello' Bar"; $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); - $this->P->parse("Foo 'hello' Bar"); + $this->P->parse($raw); $calls = array ( array('document_start',array()), @@ -93,12 +98,13 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser { array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls, 'wikitext => '.$raw); } function testApostrophe() { + $raw = "hey it's fine weather today"; $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); - $this->P->parse("hey it's fine weather today"); + $this->P->parse($raw); $calls = array ( array('document_start',array()), @@ -110,13 +116,14 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser { array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls, 'wikitext => '.$raw); } function testSingleQuotesSpecial() { + $raw = "Foo ('hello') Bar"; $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); - $this->P->parse("Foo ('hello') Bar"); + $this->P->parse($raw); $calls = array ( array('document_start',array()), @@ -130,12 +137,13 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser { array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls, 'wikitext => '.$raw); } function testDoubleQuoteOpening() { + $raw = 'Foo "hello Bar'; $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); - $this->P->parse('Foo "hello Bar'); + $this->P->parse($raw); $calls = array ( array('document_start',array()), @@ -147,12 +155,13 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser { array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls, 'wikitext => '.$raw); } function testDoubleQuoteOpeningSpecial() { + $raw = 'Foo said:"hello Bar'; $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); - $this->P->parse('Foo said:"hello Bar'); + $this->P->parse($raw); $calls = array ( array('document_start',array()), @@ -164,12 +173,14 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser { array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls, 'wikitext => '.$raw); } function testDoubleQuoteClosing() { + $raw = 'Foo hello" Bar'; $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); - $this->P->parse('Foo hello" Bar'); + $this->H->status['doublequote'] = 1; + $this->P->parse($raw); $calls = array ( array('document_start',array()), @@ -181,12 +192,14 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser { array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls, 'wikitext => '.$raw); } function testDoubleQuoteClosingSpecial() { + $raw = 'Foo hello") Bar'; $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); - $this->P->parse('Foo hello") Bar'); + $this->H->status['doublequote'] = 1; + $this->P->parse($raw); $calls = array ( array('document_start',array()), @@ -198,12 +211,31 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser { array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls, 'wikitext => '.$raw); + } + function testDoubleQuoteClosingSpecial2() { + $raw = 'Foo hello") Bar'; + $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); + $this->H->status['doublequote'] = 0; + $this->P->parse($raw); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'Foo hello')), + array('doublequoteopening',array()), + array('cdata',array(') Bar')), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls, 'wikitext => '.$raw); } function testDoubleQuotes() { + $raw = 'Foo "hello" Bar'; $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); - $this->P->parse('Foo "hello" Bar'); + $this->P->parse($raw); $calls = array ( array('document_start',array()), @@ -217,12 +249,13 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser { array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls, 'wikitext => '.$raw); } function testDoubleQuotesSpecial() { + $raw = 'Foo ("hello") Bar'; $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); - $this->P->parse('Foo ("hello") Bar'); + $this->P->parse($raw); $calls = array ( array('document_start',array()), @@ -236,12 +269,54 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser { array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls, 'wikitext => '.$raw); + } + + function testDoubleQuotesEnclosingBrackets() { + $raw = 'Foo "{hello}" Bar'; + $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); + $this->P->parse($raw); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'Foo ')), + array('doublequoteopening',array()), + array('cdata',array('{hello}')), + array('doublequoteclosing',array()), + array('cdata',array(' Bar')), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls,'wikitext - '.$raw); + } + + function testDoubleQuotesEnclosingLink() { + $raw = 'Foo "[[www.domain.com]]" Bar'; + $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); + $this->P->parse($raw); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n".'Foo ')), + array('doublequoteopening',array()), + array('cdata',array('[[www.domain.com]]')), + array('doublequoteclosing',array()), + array('cdata',array(' Bar')), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls,'wikitext => '.$raw); } + function testAllQuotes() { + $raw = 'There was written "He thought \'It\'s a man\'s world\'".'; $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes()); - $this->P->parse('There was written "He thought \'It\'s a man\'s world\'".'); + $this->P->parse($raw); $calls = array ( array('document_start',array()), @@ -262,7 +337,7 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser { array('document_end',array()), ); - $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls,'wikitext => '.$raw); } } -- cgit v1.2.3 From 410c9c400f5c72e45e32761bf18d9816b62f865e Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Thu, 13 Mar 2014 20:05:58 +0000 Subject: remove test expectation for E_USER_WARNING --- _test/tests/inc/parserutils_get_renderer.test.php | 4 ---- 1 file changed, 4 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/parserutils_get_renderer.test.php b/_test/tests/inc/parserutils_get_renderer.test.php index 69aeb3b19..0f373227d 100644 --- a/_test/tests/inc/parserutils_get_renderer.test.php +++ b/_test/tests/inc/parserutils_get_renderer.test.php @@ -45,10 +45,6 @@ class parserutils_get_renderer_test extends DokuWikiTest { } // test fallback fails - /** - * @expectedException PHPUnit_Framework_Error - * @expectedExceptionCode E_USER_WARNING - */ function test_p_get_renderer_fallback_fail() { global $conf; -- cgit v1.2.3 From 16ca217de8ce72a9c736f35f1a62718437369d88 Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Fri, 14 Mar 2014 13:08:32 +0100 Subject: Add a basic test case for the cache This very basic test ensures that the useCache method works as expected for simple scenarios. This test case fails without commit a8795974051a91137b01ff88dbf5586a647b24ce and then also triggers the warning that was introduced in bc2ddb548f71b1a822dd03c3bc7c3c0e7cd9b152 --- _test/tests/inc/cache_use.test.php | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 _test/tests/inc/cache_use.test.php (limited to '_test') diff --git a/_test/tests/inc/cache_use.test.php b/_test/tests/inc/cache_use.test.php new file mode 100644 index 000000000..f5349df13 --- /dev/null +++ b/_test/tests/inc/cache_use.test.php @@ -0,0 +1,36 @@ +cache = new cache_renderer($ID, $file, 'metadata'); + $this->cache->storeCache('Test'); + } + + function test_use() { + $this->assertTrue($this->cache->useCache()); + } + + + function test_purge() { + $this->assertFalse($this->cache->useCache(array('purge' => true))); + } +} \ No newline at end of file -- cgit v1.2.3 From f8fb2d1811251304687b805a60b489f63cb5c4fb Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 15 Mar 2014 21:29:33 +0100 Subject: strip sourcemaps in CSS and JS #601 source maps are invalid for our dispatched sources and may even cause problems. this makes sure any sourcemap declarations are stripped from the output --- _test/tests/inc/common_stripsourcemaps.test.php | 29 +++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 _test/tests/inc/common_stripsourcemaps.test.php (limited to '_test') diff --git a/_test/tests/inc/common_stripsourcemaps.test.php b/_test/tests/inc/common_stripsourcemaps.test.php new file mode 100644 index 000000000..c6a915dcf --- /dev/null +++ b/_test/tests/inc/common_stripsourcemaps.test.php @@ -0,0 +1,29 @@ +assertEquals($expect, $text); + } + +} \ No newline at end of file -- cgit v1.2.3 From b23560022e3a99310a04296b3c385325e7abb747 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Sun, 16 Mar 2014 18:32:07 +0000 Subject: Fix longstanding issue with cache class & cachetime setting 1. cachetime setting should only be applied to the cache_renderer class. Previously it was applied to cache_parser (and by extension cache_handler). 2. two special cachetime values, -1 & 0, weren't handled, per FS#2183 To handle the cachetime setting, -1, disable caching, a new property _nocache is added. When that property is true, any cache file must not be used and storecache() should not store any values --- _test/tests/inc/cache_use.test.php | 56 ++++++++++++++++++++++++++++++++++---- 1 file changed, 50 insertions(+), 6 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/cache_use.test.php b/_test/tests/inc/cache_use.test.php index f5349df13..292f5c975 100644 --- a/_test/tests/inc/cache_use.test.php +++ b/_test/tests/inc/cache_use.test.php @@ -6,22 +6,22 @@ * Tests if caching can actually be used */ class cache_use_test extends DokuWikiTest { - /** @var cache_renderer $cache */ + /** @var cache_parser $cache */ private $cache; function setUp() { - global $ID; + global $ID, $conf; parent::setUp(); $ID = 'cached'; $file = wikiFN($ID); + $conf['cachetime'] = 0; // ensure the value is not -1, which disables caching saveWikiText($ID, 'Content', 'Created'); // set the modification time a second in the past in order to ensure that the cache is newer than the page touch($file, time()-1); - # Create cache. Note that the metadata cache is used as the xhtml cache triggers metadata rendering - $this->cache = new cache_renderer($ID, $file, 'metadata'); + $this->cache = new cache_renderer($ID, $file, 'xhtml'); $this->cache->storeCache('Test'); } @@ -29,8 +29,52 @@ class cache_use_test extends DokuWikiTest { $this->assertTrue($this->cache->useCache()); } - + /** + * In all the following tests the cache should not be usable + * as such, they are meaningless if test_use didn't pass. + * + * @depends test_use + */ function test_purge() { - $this->assertFalse($this->cache->useCache(array('purge' => true))); + /* @var Input $INPUT */ + global $INPUT; + $INPUT->set('purge',1); + + $this->assertFalse($this->cache->useCache()); + $this->assertNotEmpty($this->cache->depends['purge']); + } + + /** + * @depends test_use + */ + function test_filedependency() { + // give the dependent src file the same mtime as the cache + touch($this->cache->file, filemtime($this->cache->cache)); + $this->assertFalse($this->cache->useCache()); + } + + /** + * @depends test_use + */ + function test_age() { + // need to age both our source file & the cache + $age = 10; + $time = time() - $age - 1; // older than age + + touch($this->cache->file, $time - 1); + touch($this->cache->cache, $time); + + $this->assertFalse($this->cache->useCache(array('age' => $age))); + } + + /** + * @depends test_use + */ + function test_confnocaching() { + global $conf; + $conf['cachetime'] = -1; // disables renderer caching + + $this->assertFalse($this->cache->useCache()); + $this->assertNotEmpty($this->cache->_nocache); } } \ No newline at end of file -- cgit v1.2.3 From 5f3da53e253bc878946671173feef853a48604b8 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Sun, 16 Mar 2014 19:43:40 +0000 Subject: put PHPDocs comment back the way it should be --- _test/tests/inc/cache_use.test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '_test') diff --git a/_test/tests/inc/cache_use.test.php b/_test/tests/inc/cache_use.test.php index 292f5c975..c54a472a3 100644 --- a/_test/tests/inc/cache_use.test.php +++ b/_test/tests/inc/cache_use.test.php @@ -6,7 +6,7 @@ * Tests if caching can actually be used */ class cache_use_test extends DokuWikiTest { - /** @var cache_parser $cache */ + /** @var cache_renderer $cache */ private $cache; function setUp() { -- cgit v1.2.3 From c2a1d01e2e905ab3d7fa3009aeb140fcefc32f9e Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Sun, 16 Mar 2014 20:26:44 +0000 Subject: update unittests for THEAD rules --- _test/tests/inc/parser/parser_table.test.php | 49 +++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) (limited to '_test') diff --git a/_test/tests/inc/parser/parser_table.test.php b/_test/tests/inc/parser/parser_table.test.php index 3e9651d14..a9b4e284c 100644 --- a/_test/tests/inc/parser/parser_table.test.php +++ b/_test/tests/inc/parser/parser_table.test.php @@ -152,6 +152,7 @@ def'); $this->P->parse(' abc ^ X ^ Y ^ Z ^ +| x | y | z | def'); $calls = array ( @@ -159,7 +160,7 @@ def'); array('p_open',array()), array('cdata',array("\n\nabc")), array('p_close',array()), - array('table_open',array(3, 1, 6)), + array('table_open',array(3, 2, 6)), array('tablethead_open',array()), array('tablerow_open',array()), array('tableheader_open',array(1,NULL,1)), @@ -173,6 +174,52 @@ def'); array('tableheader_close',array()), array('tablerow_close',array()), array('tablethead_close',array()), + array('tablerow_open',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array(' x ')), + array('tablecell_close',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array(' y ')), + array('tablecell_close',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array(' z ')), + array('tablecell_close',array()), + array('tablerow_close',array()), + array('table_close',array(33)), + array('p_open',array()), + array('cdata',array('def')), + array('p_close',array()), + array('document_end',array()), + ); + + $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); + + } + + function testTableHeadOneRowTable() { + $this->P->addMode('table',new Doku_Parser_Mode_Table()); + $this->P->parse(' +abc +^ X ^ Y ^ Z ^ +def'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n\nabc")), + array('p_close',array()), + array('table_open',array(3, 1, 6)), + array('tablerow_open',array()), + array('tableheader_open',array(1,NULL,1)), + array('cdata',array(' X ')), + array('tableheader_close',array()), + array('tableheader_open',array(1,NULL,1)), + array('cdata',array(' Y ')), + array('tableheader_close',array()), + array('tableheader_open',array(1,NULL,1)), + array('cdata',array(' Z ')), + array('tableheader_close',array()), + array('tablerow_close',array()), array('table_close',array(19)), array('p_open',array()), array('cdata',array('def')), -- cgit v1.2.3 From 496e3a6f34d97e44e44340c1fbd2d3cbc262c05c Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Mon, 17 Mar 2014 23:03:53 +0100 Subject: completely new base for CLI scripts This introduces an abstract base class that command line tools need to inherit from. It provides a simple framework for registering accepted command line options and provides commonly needed things like help output and colored text. Existing CLI scripts still need to be converted. --- _test/tests/inc/cli_options.test.php | 56 ++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 _test/tests/inc/cli_options.test.php (limited to '_test') diff --git a/_test/tests/inc/cli_options.test.php b/_test/tests/inc/cli_options.test.php new file mode 100644 index 000000000..1d121d7ce --- /dev/null +++ b/_test/tests/inc/cli_options.test.php @@ -0,0 +1,56 @@ +registerOption('exclude', 'exclude files', 'x', true); + + $args = array('-x', 'foo', 'bang'); + $options->parseOptions($args); + + $this->assertEquals('foo', $options->getOpt('exclude')); + $this->assertEquals(array('bang'), $args); + $this->assertFalse($options->getOpt('nothing')); + } + + function test_simplelong1() { + $options = new DokuCLI_Options(); + $options->registerOption('exclude', 'exclude files', 'x', true); + + $args = array('--exclude', 'foo', 'bang'); + $options->parseOptions($args); + + $this->assertEquals('foo', $options->getOpt('exclude')); + $this->assertEquals(array('bang'), $args); + $this->assertFalse($options->getOpt('nothing')); + } + + function test_simplelong2() { + $options = new DokuCLI_Options(); + $options->registerOption('exclude', 'exclude files', 'x', true); + + $args = array('--exclude=foo', 'bang'); + $options->parseOptions($args); + + $this->assertEquals('foo', $options->getOpt('exclude')); + $this->assertEquals(array('bang'), $args); + $this->assertFalse($options->getOpt('nothing')); + } + + function test_complex() { + $options = new DokuCLI_Options(); + + $options->registerOption('plugins', 'run on plugins only', 'p'); + $options->registerCommand('status', 'display status info'); + $options->registerOption('long', 'display long lines', 'l', false, 'status'); + + $args = array('-p', 'status', '--long', 'foo'); + $options->parseOptions($args); + + $this->assertEquals('status', $options->getCmd()); + $this->assertTrue($options->getOpt('plugins')); + $this->assertTrue($options->getOpt('long')); + $this->assertEquals(array('foo'), $args); + } +} \ No newline at end of file -- cgit v1.2.3 From d48bcdb42c1e80fa258ebbd70d9fe6f649237a78 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Thu, 20 Mar 2014 21:01:06 +0100 Subject: fixed tests --- _test/tests/inc/cli_options.test.php | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/cli_options.test.php b/_test/tests/inc/cli_options.test.php index 1d121d7ce..ab03ee29b 100644 --- a/_test/tests/inc/cli_options.test.php +++ b/_test/tests/inc/cli_options.test.php @@ -4,37 +4,37 @@ class cli_options extends DokuWikiTest { function test_simpleshort() { $options = new DokuCLI_Options(); - $options->registerOption('exclude', 'exclude files', 'x', true); + $options->registerOption('exclude', 'exclude files', 'x', 'file'); - $args = array('-x', 'foo', 'bang'); - $options->parseOptions($args); + $options->args = array('-x', 'foo', 'bang'); + $options->parseOptions(); $this->assertEquals('foo', $options->getOpt('exclude')); - $this->assertEquals(array('bang'), $args); + $this->assertEquals(array('bang'), $options->args); $this->assertFalse($options->getOpt('nothing')); } function test_simplelong1() { $options = new DokuCLI_Options(); - $options->registerOption('exclude', 'exclude files', 'x', true); + $options->registerOption('exclude', 'exclude files', 'x', 'file'); - $args = array('--exclude', 'foo', 'bang'); - $options->parseOptions($args); + $options->args = array('--exclude', 'foo', 'bang'); + $options->parseOptions(); $this->assertEquals('foo', $options->getOpt('exclude')); - $this->assertEquals(array('bang'), $args); + $this->assertEquals(array('bang'), $options->args); $this->assertFalse($options->getOpt('nothing')); } function test_simplelong2() { $options = new DokuCLI_Options(); - $options->registerOption('exclude', 'exclude files', 'x', true); + $options->registerOption('exclude', 'exclude files', 'x', 'file'); - $args = array('--exclude=foo', 'bang'); - $options->parseOptions($args); + $options->args = array('--exclude=foo', 'bang'); + $options->parseOptions(); $this->assertEquals('foo', $options->getOpt('exclude')); - $this->assertEquals(array('bang'), $args); + $this->assertEquals(array('bang'), $options->args); $this->assertFalse($options->getOpt('nothing')); } @@ -45,12 +45,12 @@ class cli_options extends DokuWikiTest { $options->registerCommand('status', 'display status info'); $options->registerOption('long', 'display long lines', 'l', false, 'status'); - $args = array('-p', 'status', '--long', 'foo'); - $options->parseOptions($args); + $options->args = array('-p', 'status', '--long', 'foo'); + $options->parseOptions(); $this->assertEquals('status', $options->getCmd()); $this->assertTrue($options->getOpt('plugins')); $this->assertTrue($options->getOpt('long')); - $this->assertEquals(array('foo'), $args); + $this->assertEquals(array('foo'), $options->args); } } \ No newline at end of file -- cgit v1.2.3 From 56ecd4f4244ec276b92fb0d96ae23484463e6484 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elan=20Ruusam=C3=A4e?= Date: Mon, 14 Apr 2014 23:07:56 +0300 Subject: tar: test. skip instead of error if bz2 or zlib extension is missing --- _test/tests/inc/tar.test.php | 51 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 43 insertions(+), 8 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/tar.test.php b/_test/tests/inc/tar.test.php index 417f1a853..91e71632c 100644 --- a/_test/tests/inc/tar.test.php +++ b/_test/tests/inc/tar.test.php @@ -1,6 +1,32 @@ markTestSkipped('skipping all zlib tests. Need zlib extension'); + } + } + + /** + * dependency test to test available extensions + * fills $this->extensions array + */ + public function test_extensions() { + if (!extension_loaded('zlib')) { + $this->markTestSkipped('skipping all zlib tests. Need zlib extension'); + } + if (!extension_loaded('bz2')) { + $this->markTestSkipped('skipping all bz2 tests. Need bz2 extension'); + } + } /** * simple test that checks that the given filenames and contents can be grepped from @@ -58,8 +84,6 @@ class Tar_TestCase extends DokuWikiTest { $tar->addData('another/testdata3.txt', 'testcontent3'); $tar->close(); -copy ($tmp, '/tmp/test.tar'); - $this->assertTrue(filesize($tmp) > 30); //arbitrary non-zero number $data = file_get_contents($tmp); @@ -85,11 +109,12 @@ copy ($tmp, '/tmp/test.tar'); /** * List the contents of the prebuilt TAR files + * @depends test_extensions */ public function test_tarcontent() { $dir = dirname(__FILE__).'/tar'; - foreach(array('tar', 'tgz', 'tbz') as $ext) { + foreach($this->extensions as $ext) { $tar = new Tar(); $file = "$dir/test.$ext"; @@ -107,12 +132,13 @@ copy ($tmp, '/tmp/test.tar'); /** * Extract the prebuilt tar files + * @depends test_extensions */ public function test_tarextract() { $dir = dirname(__FILE__).'/tar'; $out = sys_get_temp_dir().'/dwtartest'.md5(time()); - foreach(array('tar', 'tgz', 'tbz') as $ext) { + foreach($this->extensions as $ext) { $tar = new Tar(); $file = "$dir/test.$ext"; @@ -133,12 +159,13 @@ copy ($tmp, '/tmp/test.tar'); /** * Extract the prebuilt tar files with component stripping + * @depends test_extensions */ public function test_compstripextract() { $dir = dirname(__FILE__).'/tar'; $out = sys_get_temp_dir().'/dwtartest'.md5(time()); - foreach(array('tar', 'tgz', 'tbz') as $ext) { + foreach($this->extensions as $ext) { $tar = new Tar(); $file = "$dir/test.$ext"; @@ -159,12 +186,13 @@ copy ($tmp, '/tmp/test.tar'); /** * Extract the prebuilt tar files with prefix stripping + * @depends test_extensions */ public function test_prefixstripextract() { $dir = dirname(__FILE__).'/tar'; $out = sys_get_temp_dir().'/dwtartest'.md5(time()); - foreach(array('tar', 'tgz', 'tbz') as $ext) { + foreach($this->extensions as $ext) { $tar = new Tar(); $file = "$dir/test.$ext"; @@ -185,12 +213,13 @@ copy ($tmp, '/tmp/test.tar'); /** * Extract the prebuilt tar files with include regex + * @depends test_extensions */ public function test_includeextract() { $dir = dirname(__FILE__).'/tar'; $out = sys_get_temp_dir().'/dwtartest'.md5(time()); - foreach(array('tar', 'tgz', 'tbz') as $ext) { + foreach($this->extensions as $ext) { $tar = new Tar(); $file = "$dir/test.$ext"; @@ -210,12 +239,13 @@ copy ($tmp, '/tmp/test.tar'); /** * Extract the prebuilt tar files with exclude regex + * @depends test_extensions */ public function test_excludeextract() { $dir = dirname(__FILE__).'/tar'; $out = sys_get_temp_dir().'/dwtartest'.md5(time()); - foreach(array('tar', 'tgz', 'tbz') as $ext) { + foreach($this->extensions as $ext) { $tar = new Tar(); $file = "$dir/test.$ext"; @@ -235,6 +265,7 @@ copy ($tmp, '/tmp/test.tar'); /** * Check the extension to compression guesser + * @depends test_extensions */ public function test_filetype() { $tar = new Tar(); @@ -249,6 +280,9 @@ copy ($tmp, '/tmp/test.tar'); $this->assertEquals(Tar::COMPRESS_BZIP, $tar->filetype('foo.tar.bz2')); } + /** + * @depends test_ext_zlib + */ public function test_longpathextract() { $dir = dirname(__FILE__).'/tar'; $out = sys_get_temp_dir().'/dwtartest'.md5(time()); @@ -338,6 +372,7 @@ copy ($tmp, '/tmp/test.tar'); /** * Extract a tarbomomb + * @depends test_ext_zlib */ public function test_tarbomb() { $dir = dirname(__FILE__).'/tar'; -- cgit v1.2.3 From 9efc0669141c20c5c3cf1c76384b8c85734788c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elan=20Ruusam=C3=A4e?= Date: Mon, 14 Apr 2014 23:16:49 +0300 Subject: run as much as possible (fill extensions conditionally), skip missing ext once --- _test/tests/inc/tar.test.php | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/tar.test.php b/_test/tests/inc/tar.test.php index 91e71632c..76037d401 100644 --- a/_test/tests/inc/tar.test.php +++ b/_test/tests/inc/tar.test.php @@ -4,7 +4,16 @@ class Tar_TestCase extends DokuWikiTest { /** * file extensions that several tests use */ - protected $extensions = array('tar', 'tgz', 'tbz'); + protected $extensions = array('tar'); + + public function setUp() { + if (extension_loaded('zlib')) { + $this->extensions[] = 'tgz'; + } + if (extension_loaded('bz2')) { + $this->extensions[] = 'tbz'; + } + } /* * dependency for tests needing zlib extension to pass @@ -15,16 +24,12 @@ class Tar_TestCase extends DokuWikiTest { } } - /** - * dependency test to test available extensions - * fills $this->extensions array + /* + * dependency for tests needing zlib extension to pass */ - public function test_extensions() { - if (!extension_loaded('zlib')) { - $this->markTestSkipped('skipping all zlib tests. Need zlib extension'); - } + public function test_ext_bz2() { if (!extension_loaded('bz2')) { - $this->markTestSkipped('skipping all bz2 tests. Need bz2 extension'); + $this->markTestSkipped('skipping all bzip2 tests. Need bz2 extension'); } } @@ -109,7 +114,6 @@ class Tar_TestCase extends DokuWikiTest { /** * List the contents of the prebuilt TAR files - * @depends test_extensions */ public function test_tarcontent() { $dir = dirname(__FILE__).'/tar'; @@ -132,7 +136,6 @@ class Tar_TestCase extends DokuWikiTest { /** * Extract the prebuilt tar files - * @depends test_extensions */ public function test_tarextract() { $dir = dirname(__FILE__).'/tar'; @@ -159,7 +162,6 @@ class Tar_TestCase extends DokuWikiTest { /** * Extract the prebuilt tar files with component stripping - * @depends test_extensions */ public function test_compstripextract() { $dir = dirname(__FILE__).'/tar'; @@ -186,7 +188,6 @@ class Tar_TestCase extends DokuWikiTest { /** * Extract the prebuilt tar files with prefix stripping - * @depends test_extensions */ public function test_prefixstripextract() { $dir = dirname(__FILE__).'/tar'; @@ -213,7 +214,6 @@ class Tar_TestCase extends DokuWikiTest { /** * Extract the prebuilt tar files with include regex - * @depends test_extensions */ public function test_includeextract() { $dir = dirname(__FILE__).'/tar'; @@ -239,7 +239,6 @@ class Tar_TestCase extends DokuWikiTest { /** * Extract the prebuilt tar files with exclude regex - * @depends test_extensions */ public function test_excludeextract() { $dir = dirname(__FILE__).'/tar'; @@ -265,7 +264,6 @@ class Tar_TestCase extends DokuWikiTest { /** * Check the extension to compression guesser - * @depends test_extensions */ public function test_filetype() { $tar = new Tar(); -- cgit v1.2.3 From 64d063f11abb3946bad9d076a56b0fc51ccff127 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elan=20Ruusam=C3=A4e?= Date: Wed, 16 Apr 2014 11:22:46 +0300 Subject: call parent constructor as well --- _test/tests/inc/tar.test.php | 1 + 1 file changed, 1 insertion(+) (limited to '_test') diff --git a/_test/tests/inc/tar.test.php b/_test/tests/inc/tar.test.php index 76037d401..15453b16d 100644 --- a/_test/tests/inc/tar.test.php +++ b/_test/tests/inc/tar.test.php @@ -7,6 +7,7 @@ class Tar_TestCase extends DokuWikiTest { protected $extensions = array('tar'); public function setUp() { + parent::setUp(); if (extension_loaded('zlib')) { $this->extensions[] = 'tgz'; } -- cgit v1.2.3 From 7a7b77ef2f397e944e30abb47e0d348639e1b821 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Wed, 30 Apr 2014 16:06:00 +0200 Subject: some updates on phpunit docs and settings --- _test/README | 56 +++++++++++++++++++------------------------------------ _test/phpunit.xml | 5 ++++- 2 files changed, 23 insertions(+), 38 deletions(-) (limited to '_test') diff --git a/_test/README b/_test/README index 5220248b2..f0db2a550 100644 --- a/_test/README +++ b/_test/README @@ -9,35 +9,28 @@ This is the test suite to automatically test various parts of DokuWiki. ===== PHPUnit Installation ====== -==== via PEAR installer ==== +You can install phpunit through your distribution's package manager or simply +download the newest phar file into the _test directory: - pear config-set auto_discover 1 - pear install pear.phpunit.de/PHPUnit - -==== via Composer ==== - -Include a composer.json file in your project, which can be as minimal as: - - -{ - "require-dev": { - "phpunit/phpunit": "3.7.*" - } -} - - -==== via PHP archive (PHAR) ==== - -Download http://pear.phpunit.de/get/phpunit.phar and make it executable on your system. + cd _test/ + wget https://phar.phpunit.de/phpunit.phar ===== Running all tests ===== -Just change to the ''_test'' directory and run phpunit: +Just change to the ''_test'' directory and run phpunit (depending on your install +method): cd _test/ phpunit +or + + cd _test/ + php phpunit.phar + +===== Troubleshooting ===== + PHPUnit will fail on some systems with a //headers already sent// error. This is a known problem with PHPUnit, the error can be avoided by passing the '--stderr' flag to phpunit: @@ -46,8 +39,10 @@ This is a known problem with PHPUnit, the error can be avoided by passing the On windows you may have to enable OpenSSL support for https tests. Some of them point to httpclient_http.tests.php on the failure. -To enable HTTPS support copy the ''libeay32.dll'' and ''ssleay32.dll'' to your ''windows\system32'' folder -and add the following line to your php.ini in the extension section: +To enable HTTPS support copy the ''libeay32.dll'' and ''ssleay32.dll'' +to your ''windows\system32'' folder and add the following line to your php.ini +in the extension section: + extension=php_openssl.dll @@ -56,13 +51,13 @@ extension=php_openssl.dll You can run a single test file by providing it as an argument to phpunit: - phpunit --stderr tests/inc/common_cleanText.test.php + phpunit tests/inc/common_cleanText.test.php You can also use groups to exclude certain test from running. For example use the following command to avoid long running test or tests accessing the Internet. - phpunit --stderr --exclude-group slow,internet + phpunit --exclude-group slow,internet ===== Create new Tests ===== @@ -71,23 +66,10 @@ folder. Please respect the folder structure and naming convention. Inside the file, implement a class, extending 'DokuWikiTest'. Every method, starting with 'test' will be called as a test (e.g. 'testIfThisIsValid'); - ===== TODO for the test framework ===== - * test cross platform compatibility: especially test windows - * update http://www.dokuwiki.org/devel:unittesting * optional: add helper methods to TestRequest for easy form submission * createForm(), ... * check PHP Unit test_helpers https://github.com/sebastianbergmann/php-test-helpers -===== Migration Protocol ===== - -The following tests were not migrated: - - * inc/indexer_idx_indexlengths (fs dependencies) - * inc/mail_send (integration test) - * inc/parser/parser_formatting - * inc/parser/xhtml_htmlphp (runkit) - * inc/parser/xhtml_links - diff --git a/_test/phpunit.xml b/_test/phpunit.xml index fc7dd8be0..25506b1ae 100644 --- a/_test/phpunit.xml +++ b/_test/phpunit.xml @@ -1,7 +1,10 @@ + convertNoticesToExceptions="false" + colors="true" + stderr="true" + > -- cgit v1.2.3 From 6920d2fd3e30c9cb3abd500fe18273974da7182f Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Wed, 30 Apr 2014 19:44:50 +0200 Subject: add new valid() method to $INPUT #667 --- _test/tests/inc/input.test.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to '_test') diff --git a/_test/tests/inc/input.test.php b/_test/tests/inc/input.test.php index 59b5ea4b9..bedfcfdba 100644 --- a/_test/tests/inc/input.test.php +++ b/_test/tests/inc/input.test.php @@ -214,6 +214,24 @@ class input_test extends DokuWikiTest { $this->assertEquals('bla',$test); } + public function test_valid(){ + $_REQUEST = $this->data; + $_POST = $this->data; + $_GET = $this->data; + $INPUT = new Input(); + + $valids = array(17, 'foo'); + $this->assertSame(null, $INPUT->valid('nope', $valids)); + $this->assertSame('bang', $INPUT->valid('nope', $valids, 'bang')); + $this->assertSame(17, $INPUT->valid('int', $valids)); + $this->assertSame('foo', $INPUT->valid('string', $valids)); + + $valids = array(true); + $this->assertSame(true, $INPUT->valid('string', $valids)); + $this->assertSame(true, $INPUT->valid('one', $valids)); + $this->assertSame(null, $INPUT->valid('zero', $valids)); + } + public function test_extract(){ $_REQUEST = $this->data; $_POST = $this->data; -- cgit v1.2.3 From 363404184fcd4ec7b0149662d99a22f2cc78020b Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Wed, 30 Apr 2014 20:03:13 +0200 Subject: fixed some test inheriting from the wrong parent --- _test/tests/inc/PassHash.test.php | 2 +- _test/tests/inc/auth_password.test.php | 2 +- _test/tests/inc/parser/parser.inc.php | 2 +- _test/tests/inc/parser/renderer_resolveinterwiki.test.php | 2 +- _test/tests/inc/utf8_romanize.test.php | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/PassHash.test.php b/_test/tests/inc/PassHash.test.php index b6cb07090..1d34aa696 100644 --- a/_test/tests/inc/PassHash.test.php +++ b/_test/tests/inc/PassHash.test.php @@ -5,7 +5,7 @@ * * most tests are in auth_password.test.php */ -class PassHash_test extends PHPUnit_Framework_TestCase { +class PassHash_test extends DokuWikiTest { function test_hmac(){ // known hashes taken from https://code.google.com/p/yii/issues/detail?id=1942 diff --git a/_test/tests/inc/auth_password.test.php b/_test/tests/inc/auth_password.test.php index 27e03be60..07b9f5bb2 100644 --- a/_test/tests/inc/auth_password.test.php +++ b/_test/tests/inc/auth_password.test.php @@ -1,6 +1,6 @@ Date: Wed, 30 Apr 2014 20:05:35 +0200 Subject: added another test for arrays --- _test/tests/inc/input.test.php | 1 + 1 file changed, 1 insertion(+) (limited to '_test') diff --git a/_test/tests/inc/input.test.php b/_test/tests/inc/input.test.php index bedfcfdba..cec0b80f6 100644 --- a/_test/tests/inc/input.test.php +++ b/_test/tests/inc/input.test.php @@ -225,6 +225,7 @@ class input_test extends DokuWikiTest { $this->assertSame('bang', $INPUT->valid('nope', $valids, 'bang')); $this->assertSame(17, $INPUT->valid('int', $valids)); $this->assertSame('foo', $INPUT->valid('string', $valids)); + $this->assertSame(null, $INPUT->valid('array', $valids)); $valids = array(true); $this->assertSame(true, $INPUT->valid('string', $valids)); -- cgit v1.2.3 From 9d60a747702d8da1436fda4de3126116a7db002b Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Tue, 13 May 2014 16:14:44 +0100 Subject: Issue 694: fix failing test - set filemtimes explicitly in test setup --- _test/tests/inc/cache_use.test.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/cache_use.test.php b/_test/tests/inc/cache_use.test.php index c54a472a3..02fe329de 100644 --- a/_test/tests/inc/cache_use.test.php +++ b/_test/tests/inc/cache_use.test.php @@ -18,11 +18,14 @@ class cache_use_test extends DokuWikiTest { $conf['cachetime'] = 0; // ensure the value is not -1, which disables caching saveWikiText($ID, 'Content', 'Created'); - // set the modification time a second in the past in order to ensure that the cache is newer than the page - touch($file, time()-1); $this->cache = new cache_renderer($ID, $file, 'xhtml'); $this->cache->storeCache('Test'); + + // set the modification times explicitly (overcome Issue #694) + $time = time(); + touch($file, $time-1); + touch($this->cache->cache, $time); } function test_use() { -- cgit v1.2.3 From e80146ebf289d9243a864b9c8db1d97ba9516724 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Tue, 13 May 2014 20:01:51 +0200 Subject: added another test for fe5a50 That commit did not test what it actually made for. Handling protocol relative URLs in CSS. --- _test/tests/lib/exe/css_css_compress.test.php | 7 +++++++ 1 file changed, 7 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 f0eb17968..4769684a8 100644 --- a/_test/tests/lib/exe/css_css_compress.test.php +++ b/_test/tests/lib/exe/css_css_compress.test.php @@ -53,6 +53,13 @@ class css_css_compress_test extends DokuWikiTest { $this->assertEquals('#foo{background-image:url(http://foo.bar/baz.jpg);}', css_compress($text)); } + function test_slcom6(){ + $text = '#foo { + background-image: url(//foo.bar/baz.jpg); // background-image: url(http://foo.bar/baz.jpg); this is all commented + }'; + $this->assertEquals('#foo{background-image:url(//foo.bar/baz.jpg);}', css_compress($text)); + } + function test_hack(){ $text = '/* Mac IE will not see this and continue with inline-block */ /* \\*/ -- cgit v1.2.3 From 918a4468877109c2ba2f82fa4e1a225a4738ed9a Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Wed, 14 May 2014 19:24:01 +0200 Subject: don't treat double slashes as comments when used in string This avoids treating double slashes as single line comments in CSS when they are used in a filter or content string. closes #638 --- _test/tests/lib/exe/css_css_compress.test.php | 8 ++++++++ 1 file changed, 8 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 4769684a8..807317ca6 100644 --- a/_test/tests/lib/exe/css_css_compress.test.php +++ b/_test/tests/lib/exe/css_css_compress.test.php @@ -60,6 +60,14 @@ class css_css_compress_test extends DokuWikiTest { $this->assertEquals('#foo{background-image:url(//foo.bar/baz.jpg);}', css_compress($text)); } + function test_slcom7(){ + $text = '#foo a[href ^="https://"], #foo a[href ^=\'https://\'] { + background-image: url(//foo.bar/baz.jpg); // background-image: url(http://foo.bar/baz.jpg); this is \'all\' "commented" + }'; + $this->assertEquals('#foo a[href ^="https://"],#foo a[href ^=\'https://\']{background-image:url(//foo.bar/baz.jpg);}', css_compress($text)); + } + + function test_hack(){ $text = '/* Mac IE will not see this and continue with inline-block */ /* \\*/ -- cgit v1.2.3 From c42f789c87b115a747a7436d81e7aee886d0ac88 Mon Sep 17 00:00:00 2001 From: Enrico Tagliavini Date: Thu, 30 Jan 2014 15:42:09 +0000 Subject: Adding unit test for is_ssl() this should test the correctness of the return value of is_ssl() function based on various combinations of PHP environment variables --- _test/tests/inc/init_checkssl.test.php | 81 ++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 _test/tests/inc/init_checkssl.test.php (limited to '_test') diff --git a/_test/tests/inc/init_checkssl.test.php b/_test/tests/inc/init_checkssl.test.php new file mode 100644 index 000000000..c57d3c37e --- /dev/null +++ b/_test/tests/inc/init_checkssl.test.php @@ -0,0 +1,81 @@ +assertEquals(is_ssl(), true); + } + + /** + * Running behind a plain HTTP proxy, HTTP between server and proxy + * HTTPS not set + * HTTP_X_FORWARDED_PROTO set to http + */ + function test2() { + $_SERVER['HTTP_X_FORWARDED_PROTO'] = 'http'; + + $this->assertEquals(is_ssl(), false); + } + + /** + * Running behind an SSL proxy, HTTP between server and proxy + * HTTPS set to off, + * HTTP_X_FORWARDED_PROTO set to https + */ + function test3() { + $_SERVER['HTTP_X_FORWARDED_PROTO'] = 'https'; + $_SERVER['HTTPS'] = 'off'; + + $this->assertEquals(is_ssl(), true); + } + + /** + * Not running behind a proxy, HTTPS server + * HTTPS set to on, + * HTTP_X_FORWARDED_PROTO not set + */ + function test4() { + $_SERVER['HTTPS'] = 'on'; + + $this->assertEquals(is_ssl(), true); + } + + /** + * Not running behind a proxy, plain HTTP server + * HTTPS not set + * HTTP_X_FORWARDED_PROTO not set + */ + function test5() { + $this->assertEquals(is_ssl(), false); + } + + /** + * Not running behind a proxy, plain HTTP server + * HTTPS set to off + * HTTP_X_FORWARDED_PROTO not set + */ + function test6() { + $_SERVER['HTTPS'] = 'off'; + $this->assertEquals(is_ssl(), false); + } + + /** + * Running behind an SSL proxy, SSL between proxy and HTTP server + * HTTPS set to on, + * HTTP_X_FORWARDED_PROTO set to https + */ + function test7() { + $_SERVER['HTTP_X_FORWARDED_PROTO'] = 'https'; + $_SERVER['HTTPS'] = 'on'; + + $this->assertEquals(is_ssl(), true); + } +} -- cgit v1.2.3 From a5ac1d91deb9f263c360e34096a469b3beb681f9 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Fri, 18 Jul 2014 12:19:31 +0200 Subject: skip cache test until #694 has been fixed --- _test/tests/inc/cache_use.test.php | 3 +++ 1 file changed, 3 insertions(+) (limited to '_test') diff --git a/_test/tests/inc/cache_use.test.php b/_test/tests/inc/cache_use.test.php index 02fe329de..3ea212d50 100644 --- a/_test/tests/inc/cache_use.test.php +++ b/_test/tests/inc/cache_use.test.php @@ -29,6 +29,9 @@ class cache_use_test extends DokuWikiTest { } function test_use() { + $this->markTestSkipped('Disabled until Ticket #694 has been fixed'); + return; + $this->assertTrue($this->cache->useCache()); } -- cgit v1.2.3 From 37abef5f8744159697aa2dc18cc468477f2ca965 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Tue, 23 Sep 2014 20:08:09 +0200 Subject: added filter method to INPUT class the filter() function can be chained between the accessor and the value function to get a filtered value. When no filter allable is given in the filter() function, stripctl() is used to strip all control chars (ASCII<32) Examples: $INPUT->post->filter()->str('foobar'); $INPUT->get->filter('myfilter')->int('baz'); --- _test/tests/inc/input.test.php | 50 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to '_test') diff --git a/_test/tests/inc/input.test.php b/_test/tests/inc/input.test.php index cec0b80f6..4a8fb8d71 100644 --- a/_test/tests/inc/input.test.php +++ b/_test/tests/inc/input.test.php @@ -14,8 +14,58 @@ class input_test extends DokuWikiTest { 'empty' => '', 'emptya' => array(), 'do' => array('save' => 'Speichern'), + ); + /** + * custom filter function + * + * @param $string + * @return mixed + */ + public function myfilter($string) { + $string = str_replace('foo', 'bar', $string); + $string = str_replace('baz', '', $string); + return $string; + } + + public function test_filter() { + $_GET = array( + 'foo' => 'foo', + 'zstring'=> "foo\0bar", + 'znull' => "\0", + 'zint' => '42'."\0".'42', + 'zintbaz'=> "baz42", + ); + $_POST = $_GET; + $_REQUEST = $_GET; + $INPUT = new Input(); + + $filter = array($this,'myfilter'); + + $this->assertNotSame('foobar', $INPUT->str('zstring')); + $this->assertSame('foobar', $INPUT->filter()->str('zstring')); + $this->assertSame('bar', $INPUT->filter($filter)->str('foo')); + $this->assertSame('bar', $INPUT->filter()->str('znull', 'bar', true)); + $this->assertNotSame('foobar', $INPUT->str('zstring')); // make sure original input is unmodified + + $this->assertNotSame('foobar', $INPUT->get->str('zstring')); + $this->assertSame('foobar', $INPUT->get->filter()->str('zstring')); + $this->assertSame('bar', $INPUT->get->filter($filter)->str('foo')); + $this->assertSame('bar', $INPUT->get->filter()->str('znull', 'bar', true)); + $this->assertNotSame('foobar', $INPUT->get->str('zstring')); // make sure original input is unmodified + + $this->assertNotSame(4242, $INPUT->int('zint')); + $this->assertSame(4242, $INPUT->filter()->int('zint')); + $this->assertSame(42, $INPUT->filter($filter)->int('zintbaz')); + $this->assertSame(42, $INPUT->filter()->str('znull', 42, true)); + + $this->assertSame(true, $INPUT->bool('znull')); + $this->assertSame(false, $INPUT->filter()->bool('znull')); + + $this->assertSame('foobar', $INPUT->filter()->valid('zstring', array('foobar', 'bang'))); + } + public function test_str() { $_REQUEST = $this->data; $_POST = $this->data; -- cgit v1.2.3 From 70daee86e69783928d3da887a3a3e26b8ab74734 Mon Sep 17 00:00:00 2001 From: LarsDW223 Date: Tue, 14 Oct 2014 16:12:08 +0200 Subject: Corrected compression for ++ and -- operator. Partially fixes #897. --- _test/tests/lib/exe/js_js_compress.test.php | 60 +++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) (limited to '_test') diff --git a/_test/tests/lib/exe/js_js_compress.test.php b/_test/tests/lib/exe/js_js_compress.test.php index b1ae2a84f..78e089d89 100644 --- a/_test/tests/lib/exe/js_js_compress.test.php +++ b/_test/tests/lib/exe/js_js_compress.test.php @@ -145,6 +145,66 @@ EOF; $this->assertEquals($out, js_compress($text)); } + function test_plusplus1(){ + $text = 'a = 5 + ++b;'; + $this->assertEquals('a=5+ ++b;',js_compress($text)); + } + + function test_plusplus2(){ + $text = 'a = 5+ ++b;'; + $this->assertEquals('a=5+ ++b;',js_compress($text)); + } + + function test_plusplus3(){ + $text = 'a = 5++ + b;'; + $this->assertEquals('a=5++ +b;',js_compress($text)); + } + + function test_plusplus4(){ + $text = 'a = 5++ +b;'; + $this->assertEquals('a=5++ +b;',js_compress($text)); + } + + function test_minusminus1(){ + $text = 'a = 5 - --b;'; + $this->assertEquals('a=5- --b;',js_compress($text)); + } + + function test_minusminus2(){ + $text = 'a = 5- --b;'; + $this->assertEquals('a=5- --b;',js_compress($text)); + } + + function test_minusminus3(){ + $text = 'a = 5-- - b;'; + $this->assertEquals('a=5-- -b;',js_compress($text)); + } + + function test_minusminus4(){ + $text = 'a = 5-- -b;'; + $this->assertEquals('a=5-- -b;',js_compress($text)); + } + + function test_minusplus1(){ + $text = 'a = 5-- +b;'; + $this->assertEquals('a=5--+b;',js_compress($text)); + } + + function test_minusplus2(){ + $text = 'a = 5-- + b;'; + $this->assertEquals('a=5--+b;',js_compress($text)); + } + + function test_plusminus1(){ + $text = 'a = 5++ - b;'; + $this->assertEquals('a=5++-b;',js_compress($text)); + } + + function test_plusminus2(){ + $text = 'a = 5++ -b;'; + $this->assertEquals('a=5++-b;',js_compress($text)); + } + /** * Test the files provided with the original JsStrip */ -- cgit v1.2.3 From 6275d9067f8a0a7216fece2d49ba2064967bc194 Mon Sep 17 00:00:00 2001 From: LarsDW223 Date: Wed, 15 Oct 2014 10:57:00 +0200 Subject: Ooops...forgot to commit test cases for #897. --- _test/tests/lib/exe/js_js_compress.test.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to '_test') diff --git a/_test/tests/lib/exe/js_js_compress.test.php b/_test/tests/lib/exe/js_js_compress.test.php index 78e089d89..648ede07e 100644 --- a/_test/tests/lib/exe/js_js_compress.test.php +++ b/_test/tests/lib/exe/js_js_compress.test.php @@ -58,6 +58,18 @@ class js_js_compress_test extends DokuWikiTest { $this->assertEquals(js_compress($text), 'text.replace(/"/,"//")'); } + function test_regex_after_and_with_slashes_outside_string(){ + $text = 'if ( peng == bla && /pattern\//.test(url)) request = new Something();'; + $this->assertEquals(js_compress($text), + 'if(peng==bla&&/pattern\//.test(url))request=new Something();'); + } + + function test_regex_after_or_with_slashes_outside_string(){ + $text = 'if ( peng == bla || /pattern\//.test(url)) request = new Something();'; + $this->assertEquals(js_compress($text), + 'if(peng==bla||/pattern\//.test(url))request=new Something();'); + } + function test_dquot1(){ $text = 'var foo="Now what \\" \'do we//get /*here*/ ?";'; $this->assertEquals(js_compress($text), $text); @@ -205,6 +217,12 @@ EOF; $this->assertEquals('a=5++-b;',js_compress($text)); } + function test_unusual_signs(){ + $text='var π = Math.PI, τ = 2 * π, halfπ = π / 2, ε = 1e-6, ε2 = ε * ε, radians = π / 180, degrees = 180 / π;'; + $this->assertEquals(js_compress($text), + 'var π=Math.PI,τ=2*π,halfπ=π/2,ε=1e-6,ε2=ε*ε,radians=π/180,degrees=180/π;'); + } + /** * Test the files provided with the original JsStrip */ -- cgit v1.2.3 From 912be8f66fc77a0999250f2f494ddaeed4b3fa08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Gro=C3=9Fe?= Date: Thu, 27 Nov 2014 18:12:02 +0100 Subject: Add tests: known and unknown external video files --- _test/tests/inc/parser/parser_media.test.php | 78 ++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 _test/tests/inc/parser/parser_media.test.php (limited to '_test') diff --git a/_test/tests/inc/parser/parser_media.test.php b/_test/tests/inc/parser/parser_media.test.php new file mode 100644 index 000000000..0b62473f8 --- /dev/null +++ b/_test/tests/inc/parser/parser_media.test.php @@ -0,0 +1,78 @@ + +*/ +class TestOfDoku_Parser_Media extends TestOfDoku_Parser { + + function testVideoOGVExternal() { + $file = 'http://some.where.far/away.ogv'; + $parser_response = p_get_instructions('{{' . $file . '}}'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('externalmedia',array($file,null,null,null,null,'cache','details')), + array('cdata',array(null)), + array('p_close',array()), + array('document_end',array()), + ); + $this->assertEquals(array_map('stripbyteindex',$parser_response),$calls); + + $Renderer = new Doku_Renderer_xhtml(); + $url = $Renderer->externalmedia($file,null,null,null,null,'cache','details',true); + //print_r("url: " . $url); + $video = ''."\n"; + $this->assertEquals(substr($url,304),$rest); + } + + /** + * unknown extension of external media file + */ + function testVideoVIDExternal() { + $file = 'http://some.where.far/away.vid'; + $parser_response = p_get_instructions('{{' . $file . '}}'); + + $calls = array( + array('document_start', array()), + array('p_open', array()), + array('externalmedia', array($file, null, null, null, null, 'cache', 'details')), + array('cdata', array(null)), + array('p_close', array()), + array('document_end', array()), + ); + $this->assertEquals(array_map('stripbyteindex', $parser_response), $calls); + + $Renderer = new Doku_Renderer_xhtml(); + $url = $Renderer->externalmedia($file, null, null, null, null, 'cache', 'details', true); + // work around random token + $a_first_part = ''; + $this->assertEquals(substr($url,0,34),$a_first_part); + $this->assertEquals(substr($url,40,121),$a_second_part); + $rest = 'away.vid'; + $this->assertEquals(substr($url,161),$rest); + } +} + +/** + * .oga: + * http://upload.wikimedia.org/wikipedia/commons/6/6b/Meow_of_a_pleading_cat.oga + * + * .wav: + * http://upload.wikimedia.org/wikipedia/commons/8/81/Meow_of_a_Siamese_cat_-_freemaster2.wav + * + * + */ -- cgit v1.2.3 From d47f74a0328452bed21867aa4e20557b7d4564e4 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Mon, 1 Dec 2014 17:05:26 +0000 Subject: update parser tests for change in listitem_open instruction --- _test/tests/inc/parser/parser_footnote.test.php | 2 +- _test/tests/inc/parser/parser_lists.test.php | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/parser/parser_footnote.test.php b/_test/tests/inc/parser/parser_footnote.test.php index b47a575de..2457fb031 100644 --- a/_test/tests/inc/parser/parser_footnote.test.php +++ b/_test/tests/inc/parser/parser_footnote.test.php @@ -303,7 +303,7 @@ class TestOfDoku_Parser_Footnote extends TestOfDoku_Parser { array('nest', array ( array ( array('footnote_open',array()), array('listu_open',array()), - array('listitem_open',array(1)), + array('listitem_open',array(1,Doku_Handler_List::NODE)), array('listcontent_open',array()), array('cdata',array("A")), array('listcontent_close',array()), diff --git a/_test/tests/inc/parser/parser_lists.test.php b/_test/tests/inc/parser/parser_lists.test.php index e4ef1f83e..6acaff637 100644 --- a/_test/tests/inc/parser/parser_lists.test.php +++ b/_test/tests/inc/parser/parser_lists.test.php @@ -13,7 +13,7 @@ class TestOfDoku_Parser_Lists extends TestOfDoku_Parser { $calls = array ( array('document_start',array()), array('listu_open',array()), - array('listitem_open',array(1)), + array('listitem_open',array(1,Doku_Handler_List::NODE)), array('listcontent_open',array()), array('cdata',array("A")), array('listcontent_close',array()), @@ -46,7 +46,7 @@ class TestOfDoku_Parser_Lists extends TestOfDoku_Parser { $calls = array ( array('document_start',array()), array('listo_open',array()), - array('listitem_open',array(1)), + array('listitem_open',array(1,Doku_Handler_List::NODE)), array('listcontent_open',array()), array('cdata',array("A")), array('listcontent_close',array()), @@ -80,7 +80,7 @@ class TestOfDoku_Parser_Lists extends TestOfDoku_Parser { $calls = array ( array('document_start',array()), array('listo_open',array()), - array('listitem_open',array(1)), + array('listitem_open',array(1,Doku_Handler_List::NODE)), array('listcontent_open',array()), array('cdata',array("A")), array('listcontent_close',array()), @@ -109,7 +109,7 @@ class TestOfDoku_Parser_Lists extends TestOfDoku_Parser { $calls = array ( array('document_start',array()), array('listu_open',array()), - array('listitem_open',array(1)), + array('listitem_open',array(1,Doku_Handler_List::NODE)), array('listcontent_open',array()), array('cdata',array("A")), array('listcontent_close',array()), @@ -138,7 +138,7 @@ class TestOfDoku_Parser_Lists extends TestOfDoku_Parser { $calls = array ( array('document_start',array()), array('listo_open',array()), - array('listitem_open',array(1)), + array('listitem_open',array(1,Doku_Handler_List::NODE)), array('listcontent_open',array()), array('cdata',array("A")), array('listcontent_close',array()), @@ -188,7 +188,7 @@ Bar'); array('cdata',array("Foo")), array('p_close',array()), array('listu_open',array()), - array('listitem_open',array(1)), + array('listitem_open',array(1,Doku_Handler_List::NODE)), array('listcontent_open',array()), array('cdata',array("A")), array('listcontent_close',array()), @@ -227,7 +227,7 @@ Bar'); $calls = array ( array('document_start',array()), array('listu_open',array()), - array('listitem_open',array(1)), + array('listitem_open',array(1,Doku_Handler_List::NODE)), array('listcontent_open',array()), array('strong_open',array()), array('cdata',array("A")), @@ -262,7 +262,7 @@ Bar'); $calls = array ( array('document_start',array()), array('listu_open',array()), - array('listitem_open',array(1)), + array('listitem_open',array(1,Doku_Handler_List::NODE)), array('listcontent_open',array()), array('unformatted',array("A")), array('listcontent_close',array()), @@ -291,7 +291,7 @@ Bar'); $calls = array ( array('document_start',array()), array('listu_open',array()), - array('listitem_open',array(1)), + array('listitem_open',array(1,Doku_Handler_List::NODE)), array('listcontent_open',array()), array('cdata',array("A")), array('linebreak',array()), @@ -355,7 +355,7 @@ Bar'); $calls = array ( array('document_start',array()), array('listu_open',array()), - array('listitem_open',array(1)), + array('listitem_open',array(1,Doku_Handler_List::NODE)), array('listcontent_open',array()), array('nest', array( array( array('footnote_open',array()), -- cgit v1.2.3 From 90394abd2d0fc66a994a3f81c76e265d0707b351 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Wed, 17 Dec 2014 13:14:02 +0100 Subject: fix global environment during test requests --- _test/core/TestRequest.php | 2 -- 1 file changed, 2 deletions(-) (limited to '_test') diff --git a/_test/core/TestRequest.php b/_test/core/TestRequest.php index 060e37d28..dad2060e5 100644 --- a/_test/core/TestRequest.php +++ b/_test/core/TestRequest.php @@ -45,8 +45,6 @@ class TestRequest { */ public function execute($uri='/doku.php') { global $INPUT; - global $ID; - global $INFO; // save old environment $server = $_SERVER; -- cgit v1.2.3 From db42b6f8860359481248e9bc847b111497511d03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Gro=C3=9Fe?= Date: Thu, 18 Dec 2014 10:50:08 +0100 Subject: Add test for internal video files --- _test/data/media/wiki/kind_zu_katze.ogv | Bin 0 -> 45883 bytes _test/data/media/wiki/kind_zu_katze.png | Bin 0 -> 970 bytes _test/data/media/wiki/kind_zu_katze.webm | Bin 0 -> 101529 bytes _test/tests/inc/parser/parser_media.test.php | 35 +++++++++++++++++++++++++++ 4 files changed, 35 insertions(+) create mode 100644 _test/data/media/wiki/kind_zu_katze.ogv create mode 100644 _test/data/media/wiki/kind_zu_katze.png create mode 100644 _test/data/media/wiki/kind_zu_katze.webm (limited to '_test') diff --git a/_test/data/media/wiki/kind_zu_katze.ogv b/_test/data/media/wiki/kind_zu_katze.ogv new file mode 100644 index 000000000..1ad3732dc Binary files /dev/null and b/_test/data/media/wiki/kind_zu_katze.ogv differ diff --git a/_test/data/media/wiki/kind_zu_katze.png b/_test/data/media/wiki/kind_zu_katze.png new file mode 100644 index 000000000..a5c151e3f Binary files /dev/null and b/_test/data/media/wiki/kind_zu_katze.png differ diff --git a/_test/data/media/wiki/kind_zu_katze.webm b/_test/data/media/wiki/kind_zu_katze.webm new file mode 100644 index 000000000..2973ff833 Binary files /dev/null and b/_test/data/media/wiki/kind_zu_katze.webm differ diff --git a/_test/tests/inc/parser/parser_media.test.php b/_test/tests/inc/parser/parser_media.test.php index 0b62473f8..195b95991 100644 --- a/_test/tests/inc/parser/parser_media.test.php +++ b/_test/tests/inc/parser/parser_media.test.php @@ -65,6 +65,41 @@ class TestOfDoku_Parser_Media extends TestOfDoku_Parser { $rest = 'away.vid'; $this->assertEquals(substr($url,161),$rest); } + + + function testVideoOGVInternal() { + $file = 'wiki:kind_zu_katze.ogv'; + $parser_response = p_get_instructions('{{' . $file . '}}'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('internalmedia',array($file,null,null,null,null,'cache','details')), + array('cdata',array(null)), + array('p_close',array()), + array('document_end',array()), + ); + $this->assertEquals(array_map('stripbyteindex',$parser_response),$calls); + + $Renderer = new Doku_Renderer_xhtml(); + $url = $Renderer->externalmedia($file,null,null,null,null,'cache','details',true); + + $video = ''."\n"; + $this->assertEquals(substr($url,644),$rest); + } } /** -- cgit v1.2.3 From 50e07413f6c62d6593a89dcf070dffd413170aad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Gro=C3=9Fe?= Date: Thu, 18 Dec 2014 11:02:40 +0100 Subject: Fix file size --- _test/tests/inc/parser/parser_media.test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '_test') diff --git a/_test/tests/inc/parser/parser_media.test.php b/_test/tests/inc/parser/parser_media.test.php index 195b95991..e124b85e2 100644 --- a/_test/tests/inc/parser/parser_media.test.php +++ b/_test/tests/inc/parser/parser_media.test.php @@ -92,7 +92,7 @@ class TestOfDoku_Parser_Media extends TestOfDoku_Parser { $source_ogv = ''; $this->assertEquals(substr($url,212,83),$source_ogv); - $a_webm = 'kind_zu_katze.webm'; + $a_webm = 'kind_zu_katze.webm'; $a_ogv = 'kind_zu_katze.ogv'; $this->assertEquals(substr($url,296,176),$a_webm); $this->assertEquals(substr($url,472,172),$a_ogv); -- cgit v1.2.3 From 7268f44f1b278bafced8e85930ba3dd0c92b8900 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Gro=C3=9Fe?= Date: Thu, 18 Dec 2014 11:39:15 +0100 Subject: Remove stray comment block --- _test/tests/inc/parser/parser_media.test.php | 10 ---------- 1 file changed, 10 deletions(-) (limited to '_test') diff --git a/_test/tests/inc/parser/parser_media.test.php b/_test/tests/inc/parser/parser_media.test.php index e124b85e2..d9a0626f5 100644 --- a/_test/tests/inc/parser/parser_media.test.php +++ b/_test/tests/inc/parser/parser_media.test.php @@ -101,13 +101,3 @@ class TestOfDoku_Parser_Media extends TestOfDoku_Parser { $this->assertEquals(substr($url,644),$rest); } } - -/** - * .oga: - * http://upload.wikimedia.org/wikipedia/commons/6/6b/Meow_of_a_pleading_cat.oga - * - * .wav: - * http://upload.wikimedia.org/wikipedia/commons/8/81/Meow_of_a_Siamese_cat_-_freemaster2.wav - * - * - */ -- cgit v1.2.3 From 79e79377626799a77c11aa7849cb9c64305590c8 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Wed, 7 Jan 2015 10:47:45 +0100 Subject: Remove error supression for file_exists() In an older version of PHP a file_exists() call would issue a warning when the file did not exist. This was fixed in later PHP releases. Since we require PHP 5.3 now, there's no need to supress any error here anymore. This might even give a minor performance boost. --- _test/core/DokuWikiTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to '_test') diff --git a/_test/core/DokuWikiTest.php b/_test/core/DokuWikiTest.php index f4521256a..4e40d510a 100644 --- a/_test/core/DokuWikiTest.php +++ b/_test/core/DokuWikiTest.php @@ -54,7 +54,7 @@ abstract class DokuWikiTest extends PHPUnit_Framework_TestCase { foreach (array('default','local','protected') as $config_group) { if (empty($config_cascade['main'][$config_group])) continue; foreach ($config_cascade['main'][$config_group] as $config_file) { - if (@file_exists($config_file)) { + if (file_exists($config_file)) { include($config_file); } } @@ -68,7 +68,7 @@ abstract class DokuWikiTest extends PHPUnit_Framework_TestCase { foreach (array('default','local') as $config_group) { if (empty($config_cascade['license'][$config_group])) continue; foreach ($config_cascade['license'][$config_group] as $config_file) { - if(@file_exists($config_file)){ + if(file_exists($config_file)){ include($config_file); } } -- cgit v1.2.3 From 5af3d1cd434f85882bb29253a3757cacc5c5338a Mon Sep 17 00:00:00 2001 From: KeenRivals Date: Wed, 14 Jan 2015 16:14:41 -0500 Subject: Losslessly reduced PNG images with optipng -o7 -strip all, advdef -z4 -i60, and advpng -z4 -i60. --- _test/data/media/wiki/dokuwiki-128.png | Bin 33615 -> 27895 bytes _test/data/media/wiki/kind_zu_katze.png | Bin 970 -> 437 bytes 2 files changed, 0 insertions(+), 0 deletions(-) (limited to '_test') diff --git a/_test/data/media/wiki/dokuwiki-128.png b/_test/data/media/wiki/dokuwiki-128.png index b2306ac95..f3f1d66bd 100644 Binary files a/_test/data/media/wiki/dokuwiki-128.png and b/_test/data/media/wiki/dokuwiki-128.png differ diff --git a/_test/data/media/wiki/kind_zu_katze.png b/_test/data/media/wiki/kind_zu_katze.png index a5c151e3f..e0eee61bc 100644 Binary files a/_test/data/media/wiki/kind_zu_katze.png and b/_test/data/media/wiki/kind_zu_katze.png differ -- cgit v1.2.3