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*8ef75711SGerrit Uitslag $tests[] = array('page---page','false','page---page'); 47*8ef75711SGerrit Uitslag $tests[] = array('page___page','false','page_page'); 48*8ef75711SGerrit Uitslag $tests[] = array('page_-.page','false','page_-.page'); 49dcb2204bSKlap-in $tests[] = array(':page',false,'page'); 50dcb2204bSKlap-in $tests[] = array(':ns:page',false,'ns:page'); 51dcb2204bSKlap-in $tests[] = array('page:',false,'page'); 52dcb2204bSKlap-in $tests[] = array('ns:page:',false,'ns:page'); 53f8369d7dSTobias Sarnowski 54f8369d7dSTobias Sarnowski $conf['useslash'] = 0; 55f8369d7dSTobias Sarnowski $tests[] = array('page/page',false,'page_page'); 56f8369d7dSTobias Sarnowski 57f8369d7dSTobias Sarnowski foreach($tests as $test){ 58f8369d7dSTobias Sarnowski $this->assertEquals(cleanID($test[0],$test[1]),$test[2]); 59f8369d7dSTobias Sarnowski } 60f8369d7dSTobias Sarnowski 61f8369d7dSTobias Sarnowski $conf['useslash'] = 1; 62f8369d7dSTobias Sarnowski $tests = array(); 63f8369d7dSTobias Sarnowski $tests[] = array('page/page',false,'page:page'); 64f8369d7dSTobias Sarnowski 65f8369d7dSTobias Sarnowski $this->teardown(); 66f8369d7dSTobias Sarnowski 67f8369d7dSTobias Sarnowski foreach($tests as $test){ 68f8369d7dSTobias Sarnowski $this->assertEquals(cleanID($test[0],$test[1]),$test[2]); 69f8369d7dSTobias Sarnowski } 70f8369d7dSTobias Sarnowski } 71f8369d7dSTobias Sarnowski 72f8369d7dSTobias Sarnowski function test_sepchar(){ 73f8369d7dSTobias Sarnowski // we test multiple cases here 74f8369d7dSTobias Sarnowski // format: $id, $ascii, $correct_output 75f8369d7dSTobias Sarnowski $tests = array(); 76f8369d7dSTobias Sarnowski 77f8369d7dSTobias Sarnowski global $conf; 78f8369d7dSTobias Sarnowski $conf['sepchar'] = '-'; 79f8369d7dSTobias Sarnowski $conf['deaccent'] = 1; 80f8369d7dSTobias Sarnowski 81f8369d7dSTobias Sarnowski $tests[] = array('pa-ge',false,'pa-ge'); 82f8369d7dSTobias Sarnowski $tests[] = array('pa%ge',false,'pa-ge'); 83f8369d7dSTobias Sarnowski 84f8369d7dSTobias Sarnowski foreach($tests as $test){ 85f8369d7dSTobias Sarnowski $this->assertEquals(cleanID($test[0],$test[1]),$test[2]); 86f8369d7dSTobias Sarnowski } 87f8369d7dSTobias Sarnowski } 88f8369d7dSTobias Sarnowski 89f8369d7dSTobias Sarnowski function test_deaccent_keep(){ 90f8369d7dSTobias Sarnowski // we test multiple cases here 91f8369d7dSTobias Sarnowski // format: $id, $ascii, $correct_output 92f8369d7dSTobias Sarnowski $tests = array(); 93f8369d7dSTobias Sarnowski 94f8369d7dSTobias Sarnowski global $conf; 95f8369d7dSTobias Sarnowski $conf['sepchar'] = '_'; 96f8369d7dSTobias Sarnowski $conf['deaccent'] = 0; 97f8369d7dSTobias Sarnowski 98f8369d7dSTobias Sarnowski $tests[] = array('pàge',false,'pàge'); 99f8369d7dSTobias Sarnowski $tests[] = array('pagĖ',false,'pagė'); 100f8369d7dSTobias Sarnowski $tests[] = array('pagĒēĔĕĖėĘęĚě',false,'pagēēĕĕėėęęěě'); 101f8369d7dSTobias Sarnowski $tests[] = array('ښ',false,'ښ'); 102f8369d7dSTobias Sarnowski $tests[] = array('ښ侧化并곦ঝഈβ',false,'ښ侧化并곦ঝഈβ'); 103f8369d7dSTobias Sarnowski 104f8369d7dSTobias Sarnowski foreach($tests as $test){ 105f8369d7dSTobias Sarnowski $this->assertEquals(cleanID($test[0],$test[1]),$test[2]); 106f8369d7dSTobias Sarnowski } 107f8369d7dSTobias Sarnowski } 108f8369d7dSTobias Sarnowski 109f8369d7dSTobias Sarnowski function test_deaccent_romanize(){ 110f8369d7dSTobias Sarnowski // we test multiple cases here 111f8369d7dSTobias Sarnowski // format: $id, $ascii, $correct_output 112f8369d7dSTobias Sarnowski $tests = array(); 113f8369d7dSTobias Sarnowski 114f8369d7dSTobias Sarnowski global $conf; 115f8369d7dSTobias Sarnowski $conf['sepchar'] = '_'; 116f8369d7dSTobias Sarnowski $conf['deaccent'] = 2; 117f8369d7dSTobias Sarnowski 118f8369d7dSTobias Sarnowski $tests[] = array('pàge',false,'page'); 119f8369d7dSTobias Sarnowski $tests[] = array('pagĖ',false,'page'); 120f8369d7dSTobias Sarnowski $tests[] = array('pagĒēĔĕĖėĘęĚě',false,'pageeeeeeeeee'); 121f8369d7dSTobias Sarnowski $tests[] = array('ښ',false,'ښ'); 122f8369d7dSTobias Sarnowski $tests[] = array('ښ侧化并곦ঝഈβ',false,'ښ侧化并곦ঝഈβ'); 123f8369d7dSTobias Sarnowski 124f8369d7dSTobias Sarnowski foreach($tests as $test){ 125f8369d7dSTobias Sarnowski $this->assertEquals(cleanID($test[0],$test[1]),$test[2]); 126f8369d7dSTobias Sarnowski } 127f8369d7dSTobias Sarnowski } 128f8369d7dSTobias Sarnowski 129f8369d7dSTobias Sarnowski function test_deaccent_ascii(){ 130f8369d7dSTobias Sarnowski // we test multiple cases here 131f8369d7dSTobias Sarnowski // format: $id, $ascii, $correct_output 132f8369d7dSTobias Sarnowski $tests = array(); 133f8369d7dSTobias Sarnowski 134f8369d7dSTobias Sarnowski global $conf; 135f8369d7dSTobias Sarnowski $conf['sepchar'] = '_'; 136f8369d7dSTobias Sarnowski $conf['deaccent'] = 0; 137f8369d7dSTobias Sarnowski 138f8369d7dSTobias Sarnowski $tests[] = array('pàge',true,'page'); 139f8369d7dSTobias Sarnowski $tests[] = array('pagĖ',true,'page'); 140f8369d7dSTobias Sarnowski $tests[] = array('pagĒēĔĕĖėĘęĚě',true,'pageeeeeeeeee'); 141f8369d7dSTobias Sarnowski $tests[] = array('ښ',true,''); 142f8369d7dSTobias Sarnowski $tests[] = array('ښ侧化并곦ঝഈβ',true,''); 143f8369d7dSTobias Sarnowski 144f8369d7dSTobias Sarnowski foreach($tests as $test){ 145f8369d7dSTobias Sarnowski $this->assertEquals(cleanID($test[0],$test[1]),$test[2]); 146f8369d7dSTobias Sarnowski } 147f8369d7dSTobias Sarnowski 148f8369d7dSTobias Sarnowski $conf['deaccent'] = 1; 149f8369d7dSTobias Sarnowski 150f8369d7dSTobias Sarnowski foreach($tests as $test){ 151f8369d7dSTobias Sarnowski $this->assertEquals(cleanID($test[0],$test[1]),$test[2]); 152f8369d7dSTobias Sarnowski } 153f8369d7dSTobias Sarnowski 154f8369d7dSTobias Sarnowski $conf['deaccent'] = 2; 155f8369d7dSTobias Sarnowski 156f8369d7dSTobias Sarnowski foreach($tests as $test){ 157f8369d7dSTobias Sarnowski $this->assertEquals(cleanID($test[0],$test[1]),$test[2]); 158f8369d7dSTobias Sarnowski } 159f8369d7dSTobias Sarnowski } 160f8369d7dSTobias Sarnowski 161f8369d7dSTobias Sarnowski} 162f8369d7dSTobias Sarnowski//Setup VIM: ex: et ts=4 : 163