diff --git a/_test/cases/inc/pageutils_resolve_pageid.test.php b/_test/cases/inc/pageutils_resolve_pageid.test.php index c65ed1866e7b639688d11753771c9c956dd73d5f..ec56af2a11310c2b37b91698e4ce1548a31ab41e 100644 --- a/_test/cases/inc/pageutils_resolve_pageid.test.php +++ b/_test/cases/inc/pageutils_resolve_pageid.test.php @@ -48,7 +48,6 @@ class init_resolve_pageid_test extends UnitTestCase { $tests[] = array('foo','.:','foo:start'); $tests[] = array('','foo:','foo:start'); $tests[] = array('foo','foo:','foo:start'); - $tests[] = array('foo','playground:','playground:playground'); // empty $page global $ID; @@ -69,7 +68,6 @@ class init_resolve_pageid_test extends UnitTestCase { function test_resolve_pageid_empty_homepage() { global $ID; $ID = ''; - global $conf; $conf['start'] = 'someverystrangestartname'; @@ -77,7 +75,7 @@ class init_resolve_pageid_test extends UnitTestCase { $page = ''; $exist = true; - resolve_pageid($ns, $page, $exist); + @resolve_pageid($ns, $page, $exist); $this->assertEqual($page, $conf['start']); } diff --git a/_testing/unittests/inc/pageutils_resolve_pageid.test.php b/_testing/unittests/inc/pageutils_resolve_pageid.test.php new file mode 100644 index 0000000000000000000000000000000000000000..defbd2a69ba372eff67cd56c1875ee223100b17c --- /dev/null +++ b/_testing/unittests/inc/pageutils_resolve_pageid.test.php @@ -0,0 +1,83 @@ +<?php +require_once DOKU_INC.'inc/utf8.php'; +require_once DOKU_INC.'inc/pageutils.php'; + +global $conf; +if (!isset($conf['datadir'])) $conf['datadir'] = $conf['savedir'].'/pages'; + +class init_resolve_pageid_test extends PHPUnit_Framework_TestCase { + + + function test1(){ + global $conf; + + // we test multiple cases here + // format: $ns, $page, $output + $tests = array(); + + // relative current in root + $tests[] = array('','page','page'); + $tests[] = array('','.page','page'); + $tests[] = array('','.:page','page'); + + // relative current in namespace + $tests[] = array('lev1:lev2','page','lev1:lev2:page'); + $tests[] = array('lev1:lev2','.page','lev1:lev2:page'); + $tests[] = array('lev1:lev2','.:page','lev1:lev2:page'); + + // relative upper in root + $tests[] = array('','..page','page'); + $tests[] = array('','..:page','page'); + + // relative upper in namespace + $tests[] = array('lev1:lev2','..page','lev1:page'); + $tests[] = array('lev1:lev2','..:page','lev1:page'); + $tests[] = array('lev1:lev2','..:..:page','page'); + $tests[] = array('lev1:lev2','..:..:..:page','page'); + + // strange and broken ones + $tests[] = array('lev1:lev2','....:....:page','lev1:lev2:page'); + $tests[] = array('lev1:lev2','..:..:lev3:page','lev3:page'); + $tests[] = array('lev1:lev2','..:..:lev3:..:page','page'); + $tests[] = array('lev1:lev2','..:..:lev3:..:page:....:...','page'); + + // now some tests with existing and none existing files + $conf['start'] = 'start'; + + $tests[] = array('','.:','start'); + $tests[] = array('foo','.:','foo:start'); + $tests[] = array('','foo:','foo:start'); + $tests[] = array('foo','foo:','foo:start'); + + // empty $page + global $ID; + $ID = 'my:space'; + $tests[] = array('my', '', 'my:space'); + + foreach($tests as $test){ + $page = $test[1]; + resolve_pageid($test[0],$page,$foo); + + $this->assertEquals($page,$test[2]); + } + } + + /** + * Empty page on homepage should resolve to start page + */ + function test_resolve_pageid_empty_homepage() { + global $ID; + $ID = ''; + global $conf; + $conf['start'] = 'someverystrangestartname'; + + $ns = ''; + $page = ''; + $exist = true; + + resolve_pageid($ns, $page, $exist); + $this->assertEquals($page, $conf['start']); + } + +} +//Setup VIM: ex: et ts=4 :