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