summaryrefslogtreecommitdiff
path: root/_test/tests/inc/auth_nameencode.test.php
blob: 86db843d647bf53ca40a7b01f8ad312597fa715e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php

class auth_nameencode_test extends DokuWikiTest {

    function tearDown() {
        global $cache_authname;
        $cache_authname = array();
    }

    function test_simple(){
        $in  = 'hey$you';
        $out = 'hey%24you';
        $this->assertEquals(auth_nameencode($in),$out);
    }

    function test_quote(){
        $in  = 'hey"you';
        $out = 'hey%22you';
        $this->assertEquals(auth_nameencode($in),$out);
    }

    function test_apostrophe(){
        $in  = 'hey\'you';
        $out = 'hey%27you';
        $this->assertEquals(auth_nameencode($in),$out);
    }

    function test_backslash(){
        $in  = 'hey\\you';
        $out = 'hey%5cyou';
        $this->assertEquals(auth_nameencode($in),$out);
    }

    function test_complex(){
        $in  = 'hey $ you !$%! foo ';
        $out = 'hey%20%24%20you%20%21%24%25%21%20foo%20';
        $this->assertEquals(auth_nameencode($in),$out);
    }

    function test_complexutf8(){
        $in  = 'häü $ yü !$%! foo ';
        $out = 'häü%20%24%20yü%20%21%24%25%21%20foo%20';
        $this->assertEquals(auth_nameencode($in),$out);
    }

    function test_groupskipon(){
        $in  = '@hey$you';
        $out = '@hey%24you';
        $this->assertEquals(auth_nameencode($in,true),$out);
    }

    function test_groupskipoff(){
        $in  = '@hey$you';
        $out = '%40hey%24you';
        $this->assertEquals(auth_nameencode($in),$out);
    }

    // include a two byte utf8 character which shouldn't be encoded
    function test_hebrew(){
        $in = 'nun-נ8';
        $expect = 'nun%2dנ8';

        $this->assertEquals($expect, auth_nameencode($in));
    }

    // include a three byte utf8 character which shouldn't be encoded
    function test_devanagiri(){
        $in = 'ut-fठ8';
        $expect = 'ut%2dfठ8';

        $this->assertEquals($expect, auth_nameencode($in));
    }
}

//Setup VIM: ex: et ts=4 :