strip any trailing dots when resolving IDs
[dokuwiki.git] / _test / tests / inc / pageutils_resolve_pageid.test.php
blob499146713f91541ffbe45642a663dec6e31e0a59
1 <?php
3 class init_resolve_pageid_test extends DokuWikiTest
6 /**
7 * @see test1
8 */
9 public function provider()
11 return [
12 // relative current in root
13 ['context', 'page', 'page'],
14 ['context', '.page', 'page'],
15 ['context', '.:page', 'page'],
17 // relative current in namespace
18 ['lev1:lev2:context', 'page', 'lev1:lev2:page'],
19 ['lev1:lev2:context', '.page', 'lev1:lev2:page'],
20 ['lev1:lev2:context', '.:page', 'lev1:lev2:page'],
22 // relative upper in root
23 ['context', '..page', 'page'],
24 ['context', '..:page', 'page'],
26 // relative upper in namespace
27 ['lev1:lev2:context', '..page', 'lev1:page'],
28 ['lev1:lev2:context', '..:page', 'lev1:page'],
29 ['lev1:lev2:context', '..:..:page', 'page'],
30 ['lev1:lev2:context', '..:..:..:page', 'page'],
32 // strange and broken ones
33 ['lev1:lev2:context', '....:....:page', 'lev1:lev2:page'],
34 ['lev1:lev2:context', '..:..:lev3:page', 'lev3:page'],
35 ['lev1:lev2:context', '..:..:lev3:..:page', 'page'],
36 ['lev1:lev2:context', '..:..:lev3:..:page:....:...', 'page'],
38 // now some tests with existing and none existing files
39 ['context', '.:', 'start'],
40 ['foo:context', '.:', 'foo:start'],
41 ['context', 'foo:', 'foo:start'],
42 ['foo:context', 'foo:', 'foo:start'],
44 // empty $page
45 ['my:space', '', 'my:space'],
49 /**
50 * @param $context
51 * @param $page
52 * @param $expect
53 * @dataProvider provider
55 function test1($context, $page, $expect)
57 global $conf;
58 global $ID;
59 $ID = 'my:space';
60 $conf['start'] = 'start';
62 $resolover = new \dokuwiki\File\PageResolver($context);
63 $this->assertEquals($expect, $resolover->resolveId($page));