summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--_test/cases/inc/pageutils_resolve_pageid.test.php4
-rw-r--r--_testing/unittests/inc/pageutils_resolve_pageid.test.php83
2 files changed, 84 insertions, 3 deletions
diff --git a/_test/cases/inc/pageutils_resolve_pageid.test.php b/_test/cases/inc/pageutils_resolve_pageid.test.php
index c65ed1866..ec56af2a1 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 000000000..defbd2a69
--- /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 :