Annotation of embedaddon/php/ext/mbstring/tests/mb_strripos_basic.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Test mb_strripos() function : basic functionality
                      3: --SKIPIF--
                      4: <?php
                      5: extension_loaded('mbstring') or die('skip');
                      6: function_exists('mb_strripos') or die("skip mb_strripos() is not available in this build");
                      7: ?>
                      8: --FILE--
                      9: <?php
                     10: /* Prototype  : int mb_strripos(string haystack, string needle [, int offset [, string encoding]])
                     11:  * Description: Finds position of last occurrence of a string within another, case insensitive 
                     12:  * Source code: ext/mbstring/mbstring.c
                     13:  * Alias to functions: 
                     14:  */
                     15: 
                     16: /*
                     17:  * Test basic functionality of mb_strripos with ASCII and multibyte characters
                     18:  */
                     19: 
                     20: echo "*** Testing mb_strripos() : basic functionality***\n";
                     21: 
                     22: mb_internal_encoding('UTF-8');
                     23: 
                     24: //ascii strings
                     25: $ascii_haystacks = array(
                     26:    b'abc defabc   def',
                     27:    b'ABC DEFABC   DEF',
                     28:    b'Abc dEFaBC   Def',
                     29: );
                     30: 
                     31: $ascii_needles = array(
                     32:    // 4 good ones
                     33:    b'DE',
                     34:    b'de',
                     35:    b'De',
                     36:    b'dE',
                     37:    
                     38:    //flag a swap between good and bad
                     39:    '!', 
                     40:    
                     41:    // 4 bad ones
                     42:    b'df',
                     43:    b'Df',
                     44:    b'dF', 
                     45:    b'DF'
                     46: );
                     47: 
                     48: //greek strings in UTF-8
                     49: $greek_lower = base64_decode('zrHOss6zzrTOtc62zrfOuM65zrrOu868zr3Ovs6/z4DPgc+Dz4TPhc+Gz4fPiM+J');
                     50: $greek_upper = base64_decode('zpHOks6TzpTOlc6WzpfOmM6ZzprOm86czp3Ons6fzqDOoc6jzqTOpc6mzqfOqM6p');
                     51: $greek_mixed = base64_decode('zrHOss6TzpTOlc6WzpfOmM65zrrOu868zr3Ovs6fzqDOoc6jzqTOpc+Gz4fPiM+J');
                     52: $greek_haystacks = array($greek_lower, $greek_upper, $greek_mixed);
                     53: 
                     54: $greek_nlower = base64_decode('zrzOvc6+zr8=');
                     55: $greek_nupper = base64_decode('zpzOnc6ezp8=');
                     56: $greek_nmixed1 = base64_decode('zpzOnc6+zr8=');
                     57: $greek_nmixed2 = base64_decode('zrzOvc6+zp8=');
                     58: 
                     59: $greek_blower = base64_decode('zpzOns6f');
                     60: $greek_bupper = base64_decode('zrzOvs6/');
                     61: $greek_bmixed1 = base64_decode('zpzOvs6/');
                     62: $greek_bmixed2 = base64_decode('zrzOvs6f');
                     63: $greek_needles = array(
                     64:    // 4 good ones
                     65:    $greek_nlower, $greek_nupper, $greek_nmixed1, $greek_nmixed2,
                     66:    
                     67:    '!', // used to flag a swap between good and bad
                     68:    
                     69:    // 4 bad ones
                     70:    $greek_blower, $greek_bupper, $greek_bmixed1, $greek_bmixed2,   
                     71: );
                     72: 
                     73: // try the basic options
                     74: echo "\n -- ASCII Strings, needle should be found --\n";
                     75: foreach ($ascii_needles as $needle) {
                     76:    if ($needle == '!') {
                     77:       echo "\n -- ASCII Strings, needle should not be found --\n";
                     78:    }
                     79:    else {
                     80:       foreach ($ascii_haystacks as $haystack) {
                     81:          var_dump(mb_strripos($haystack, $needle));
                     82:       }
                     83:    }   
                     84: }
                     85: 
                     86: echo "\n -- Greek Strings, needle should be found --\n";
                     87: foreach ($greek_needles as $needle) {
                     88:    if ($needle == '!') {
                     89:       echo "\n -- ASCII Strings, needle should not be found --\n";
                     90:    }
                     91:    else {
                     92:       foreach ($greek_haystacks as $haystack) {
                     93:          var_dump(mb_strripos($haystack, $needle));
                     94:       }
                     95:    }   
                     96: }
                     97: 
                     98: echo "Done";
                     99: ?>
                    100: --EXPECTF--
                    101: *** Testing mb_strripos() : basic functionality***
                    102: 
                    103:  -- ASCII Strings, needle should be found --
                    104: int(13)
                    105: int(13)
                    106: int(13)
                    107: int(13)
                    108: int(13)
                    109: int(13)
                    110: int(13)
                    111: int(13)
                    112: int(13)
                    113: int(13)
                    114: int(13)
                    115: int(13)
                    116: 
                    117:  -- ASCII Strings, needle should not be found --
                    118: bool(false)
                    119: bool(false)
                    120: bool(false)
                    121: bool(false)
                    122: bool(false)
                    123: bool(false)
                    124: bool(false)
                    125: bool(false)
                    126: bool(false)
                    127: bool(false)
                    128: bool(false)
                    129: bool(false)
                    130: 
                    131:  -- Greek Strings, needle should be found --
                    132: int(11)
                    133: int(11)
                    134: int(11)
                    135: int(11)
                    136: int(11)
                    137: int(11)
                    138: int(11)
                    139: int(11)
                    140: int(11)
                    141: int(11)
                    142: int(11)
                    143: int(11)
                    144: 
                    145:  -- ASCII Strings, needle should not be found --
                    146: bool(false)
                    147: bool(false)
                    148: bool(false)
                    149: bool(false)
                    150: bool(false)
                    151: bool(false)
                    152: bool(false)
                    153: bool(false)
                    154: bool(false)
                    155: bool(false)
                    156: bool(false)
                    157: bool(false)
                    158: Done

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>