xref: /dokuwiki/_test/tests/inc/pageutils_clean_id.test.php (revision dcb2204bf0a8e3e25bf4ff8352a71160e846266b)
1f8369d7dSTobias Sarnowski<?php
2f8369d7dSTobias Sarnowski
3f8369d7dSTobias Sarnowskiclass init_clean_id_test extends DokuWikiTest {
4f8369d7dSTobias Sarnowski
5f8369d7dSTobias Sarnowski    function teardown() {
6f8369d7dSTobias Sarnowski        global $cache_cleanid;
7f8369d7dSTobias Sarnowski        $cache_cleanid = array();
8f8369d7dSTobias Sarnowski    }
9f8369d7dSTobias Sarnowski
10f8369d7dSTobias Sarnowski    function test_default(){
11f8369d7dSTobias Sarnowski        // we test multiple cases here
12f8369d7dSTobias Sarnowski        // format: $id, $ascii, $correct_output
13f8369d7dSTobias Sarnowski        $tests   = array();
14f8369d7dSTobias Sarnowski
15f8369d7dSTobias Sarnowski        // set dokuwiki defaults
16f8369d7dSTobias Sarnowski        global $conf;
17f8369d7dSTobias Sarnowski        $conf['sepchar'] = '_';
18f8369d7dSTobias Sarnowski        $conf['deaccent'] = 1;
19f8369d7dSTobias Sarnowski
20f8369d7dSTobias Sarnowski        $tests[] = array('page',false,'page');
21f8369d7dSTobias Sarnowski        $tests[] = array('pa_ge',false,'pa_ge');
22f8369d7dSTobias Sarnowski        $tests[] = array('pa%ge',false,'pa_ge');
23f8369d7dSTobias Sarnowski        $tests[] = array('pa#ge',false,'pa_ge');
24f8369d7dSTobias Sarnowski        $tests[] = array('pàge',false,'page');
25f8369d7dSTobias Sarnowski        $tests[] = array('pagĖ',false,'page');
26f8369d7dSTobias Sarnowski        $tests[] = array('pa$%^*#ge',false,'pa_ge');
27f8369d7dSTobias Sarnowski        $tests[] = array('*page*',false,'page');
28f8369d7dSTobias Sarnowski        $tests[] = array('ښ',false,'ښ');
29f8369d7dSTobias Sarnowski        $tests[] = array('päge',false,'paege');
30f8369d7dSTobias Sarnowski        $tests[] = array('foo bar',false,'foo_bar');
31f8369d7dSTobias Sarnowski        $tests[] = array('PÄGÖ',false,'paegoe');
32f8369d7dSTobias Sarnowski        $tests[] = array('Faß','false','fass');
33f8369d7dSTobias Sarnowski        $tests[] = array('ښ侧化并곦  β',false,'ښ侧化并곦_β');
34f8369d7dSTobias Sarnowski        $tests[] = array('page:page',false,'page:page');
35f8369d7dSTobias Sarnowski        $tests[] = array('page;page',false,'page:page');
36f8369d7dSTobias Sarnowski        $tests[] = array('page:page 1.2',false,'page:page_1.2');
37f8369d7dSTobias Sarnowski
38f8369d7dSTobias Sarnowski        $tests[] = array('page._#!','false','page');
39f8369d7dSTobias Sarnowski        $tests[] = array('._#!page','false','page');
40f8369d7dSTobias Sarnowski        $tests[] = array('page._#!page','false','page._page');
41f8369d7dSTobias Sarnowski        $tests[] = array('ns._#!:page','false','ns:page');
42f8369d7dSTobias Sarnowski        $tests[] = array('ns:._#!page','false','ns:page');
43f8369d7dSTobias Sarnowski        $tests[] = array('ns._#!ns:page','false','ns._ns:page');
44f8369d7dSTobias Sarnowski        $tests[] = array('ns_:page',false,'ns:page');
45f8369d7dSTobias Sarnowski        $tests[] = array('page...page','false','page...page');
46*dcb2204bSKlap-in        $tests[] = array(':page',false,'page');
47*dcb2204bSKlap-in        $tests[] = array(':ns:page',false,'ns:page');
48*dcb2204bSKlap-in        $tests[] = array('page:',false,'page');
49*dcb2204bSKlap-in        $tests[] = array('ns:page:',false,'ns:page');
50f8369d7dSTobias Sarnowski
51f8369d7dSTobias Sarnowski        $conf['useslash'] = 0;
52f8369d7dSTobias Sarnowski        $tests[] = array('page/page',false,'page_page');
53f8369d7dSTobias Sarnowski
54f8369d7dSTobias Sarnowski        foreach($tests as $test){
55f8369d7dSTobias Sarnowski            $this->assertEquals(cleanID($test[0],$test[1]),$test[2]);
56f8369d7dSTobias Sarnowski        }
57f8369d7dSTobias Sarnowski
58f8369d7dSTobias Sarnowski        $conf['useslash'] = 1;
59f8369d7dSTobias Sarnowski        $tests = array();
60f8369d7dSTobias Sarnowski        $tests[] = array('page/page',false,'page:page');
61f8369d7dSTobias Sarnowski
62f8369d7dSTobias Sarnowski        $this->teardown();
63f8369d7dSTobias Sarnowski
64f8369d7dSTobias Sarnowski        foreach($tests as $test){
65f8369d7dSTobias Sarnowski            $this->assertEquals(cleanID($test[0],$test[1]),$test[2]);
66f8369d7dSTobias Sarnowski        }
67f8369d7dSTobias Sarnowski    }
68f8369d7dSTobias Sarnowski
69f8369d7dSTobias Sarnowski    function test_sepchar(){
70f8369d7dSTobias Sarnowski        // we test multiple cases here
71f8369d7dSTobias Sarnowski        // format: $id, $ascii, $correct_output
72f8369d7dSTobias Sarnowski        $tests   = array();
73f8369d7dSTobias Sarnowski
74f8369d7dSTobias Sarnowski        global $conf;
75f8369d7dSTobias Sarnowski        $conf['sepchar'] = '-';
76f8369d7dSTobias Sarnowski        $conf['deaccent'] = 1;
77f8369d7dSTobias Sarnowski
78f8369d7dSTobias Sarnowski        $tests[] = array('pa-ge',false,'pa-ge');
79f8369d7dSTobias Sarnowski        $tests[] = array('pa%ge',false,'pa-ge');
80f8369d7dSTobias Sarnowski
81f8369d7dSTobias Sarnowski        foreach($tests as $test){
82f8369d7dSTobias Sarnowski            $this->assertEquals(cleanID($test[0],$test[1]),$test[2]);
83f8369d7dSTobias Sarnowski        }
84f8369d7dSTobias Sarnowski    }
85f8369d7dSTobias Sarnowski
86f8369d7dSTobias Sarnowski    function test_deaccent_keep(){
87f8369d7dSTobias Sarnowski        // we test multiple cases here
88f8369d7dSTobias Sarnowski        // format: $id, $ascii, $correct_output
89f8369d7dSTobias Sarnowski        $tests   = array();
90f8369d7dSTobias Sarnowski
91f8369d7dSTobias Sarnowski        global $conf;
92f8369d7dSTobias Sarnowski        $conf['sepchar'] = '_';
93f8369d7dSTobias Sarnowski        $conf['deaccent'] = 0;
94f8369d7dSTobias Sarnowski
95f8369d7dSTobias Sarnowski        $tests[] = array('pàge',false,'pàge');
96f8369d7dSTobias Sarnowski        $tests[] = array('pagĖ',false,'pagė');
97f8369d7dSTobias Sarnowski        $tests[] = array('pagĒēĔĕĖėĘęĚě',false,'pagēēĕĕėėęęěě');
98f8369d7dSTobias Sarnowski        $tests[] = array('ښ',false,'ښ');
99f8369d7dSTobias Sarnowski        $tests[] = array('ښ侧化并곦ঝഈβ',false,'ښ侧化并곦ঝഈβ');
100f8369d7dSTobias Sarnowski
101f8369d7dSTobias Sarnowski        foreach($tests as $test){
102f8369d7dSTobias Sarnowski            $this->assertEquals(cleanID($test[0],$test[1]),$test[2]);
103f8369d7dSTobias Sarnowski        }
104f8369d7dSTobias Sarnowski    }
105f8369d7dSTobias Sarnowski
106f8369d7dSTobias Sarnowski    function test_deaccent_romanize(){
107f8369d7dSTobias Sarnowski        // we test multiple cases here
108f8369d7dSTobias Sarnowski        // format: $id, $ascii, $correct_output
109f8369d7dSTobias Sarnowski        $tests   = array();
110f8369d7dSTobias Sarnowski
111f8369d7dSTobias Sarnowski        global $conf;
112f8369d7dSTobias Sarnowski        $conf['sepchar'] = '_';
113f8369d7dSTobias Sarnowski        $conf['deaccent'] = 2;
114f8369d7dSTobias Sarnowski
115f8369d7dSTobias Sarnowski        $tests[] = array('pàge',false,'page');
116f8369d7dSTobias Sarnowski        $tests[] = array('pagĖ',false,'page');
117f8369d7dSTobias Sarnowski        $tests[] = array('pagĒēĔĕĖėĘęĚě',false,'pageeeeeeeeee');
118f8369d7dSTobias Sarnowski        $tests[] = array('ښ',false,'ښ');
119f8369d7dSTobias Sarnowski        $tests[] = array('ښ侧化并곦ঝഈβ',false,'ښ侧化并곦ঝഈβ');
120f8369d7dSTobias Sarnowski
121f8369d7dSTobias Sarnowski        foreach($tests as $test){
122f8369d7dSTobias Sarnowski            $this->assertEquals(cleanID($test[0],$test[1]),$test[2]);
123f8369d7dSTobias Sarnowski        }
124f8369d7dSTobias Sarnowski    }
125f8369d7dSTobias Sarnowski
126f8369d7dSTobias Sarnowski    function test_deaccent_ascii(){
127f8369d7dSTobias Sarnowski        // we test multiple cases here
128f8369d7dSTobias Sarnowski        // format: $id, $ascii, $correct_output
129f8369d7dSTobias Sarnowski        $tests   = array();
130f8369d7dSTobias Sarnowski
131f8369d7dSTobias Sarnowski        global $conf;
132f8369d7dSTobias Sarnowski        $conf['sepchar'] = '_';
133f8369d7dSTobias Sarnowski        $conf['deaccent'] = 0;
134f8369d7dSTobias Sarnowski
135f8369d7dSTobias Sarnowski        $tests[] = array('pàge',true,'page');
136f8369d7dSTobias Sarnowski        $tests[] = array('pagĖ',true,'page');
137f8369d7dSTobias Sarnowski        $tests[] = array('pagĒēĔĕĖėĘęĚě',true,'pageeeeeeeeee');
138f8369d7dSTobias Sarnowski        $tests[] = array('ښ',true,'');
139f8369d7dSTobias Sarnowski        $tests[] = array('ښ侧化并곦ঝഈβ',true,'');
140f8369d7dSTobias Sarnowski
141f8369d7dSTobias Sarnowski        foreach($tests as $test){
142f8369d7dSTobias Sarnowski            $this->assertEquals(cleanID($test[0],$test[1]),$test[2]);
143f8369d7dSTobias Sarnowski        }
144f8369d7dSTobias Sarnowski
145f8369d7dSTobias Sarnowski        $conf['deaccent'] = 1;
146f8369d7dSTobias Sarnowski
147f8369d7dSTobias Sarnowski        foreach($tests as $test){
148f8369d7dSTobias Sarnowski            $this->assertEquals(cleanID($test[0],$test[1]),$test[2]);
149f8369d7dSTobias Sarnowski        }
150f8369d7dSTobias Sarnowski
151f8369d7dSTobias Sarnowski        $conf['deaccent'] = 2;
152f8369d7dSTobias Sarnowski
153f8369d7dSTobias Sarnowski        foreach($tests as $test){
154f8369d7dSTobias Sarnowski            $this->assertEquals(cleanID($test[0],$test[1]),$test[2]);
155f8369d7dSTobias Sarnowski        }
156f8369d7dSTobias Sarnowski    }
157f8369d7dSTobias Sarnowski
158f8369d7dSTobias Sarnowski}
159f8369d7dSTobias Sarnowski//Setup VIM: ex: et ts=4 :
160