%PDF- %PDF-
Direktori : /home/opti/optisoftcom/.cpanm/work/1544535425.21555/Unicode-Stringprep-1.105/t/ |
Current File : /home/opti/optisoftcom/.cpanm/work/1544535425.21555/Unicode-Stringprep-1.105/t/saslprep.t |
use strict; use utf8; use Test::More; use Test::NoWarnings; use Unicode::Stringprep; our @strprep = ( # test vectors from RFC 4013, section 3. # [ "I\x{00AD}X", 'IX', 'SOFT HYPHEN mapped to nothing' ], [ 'user', 'user', 'no transformation' ], [ 'USER', 'USER', 'case preserved, will not match #2' ], [ "\x{00AA}", 'a', 'output is NFKC, input in ISO 8859-1' ], [ "\x{2168}", 'IX', 'output is NFKC, will match #1' ], [ "\x{0007}", undef, 'Error - prohibited character' ], [ "\x{0627}\x{0031}", undef, 'Error - bidirectional check' ], # some more tests # [ 'ÄÖÜß', 'ÄÖÜß', 'German umlaut case preserved' ], [ 'äöüß', 'äöüß', 'German umlaut case preserved' ], [ "\x{A0}", ' ', 'no-break space mapped to ASCII space' ], [ "\x{2009}", ' ', 'thin space mapped to ASCII space' ], [ "\x{3000}", ' ', 'ideographic space mapped to ASCII space' ], [ "\x{A0}\x{2009}\x{3000}", ' ', 'no space collapsing' ], ); plan tests => ($#strprep+1) + 1; my %C12_to_SPACE = (); for(my $pos=0; $pos <= $#Unicode::Stringprep::Prohibited::C12; $pos+=2) { for(my $char = $Unicode::Stringprep::Prohibited::C12[$pos]; defined $Unicode::Stringprep::Prohibited::C12[$pos] && $char <= $Unicode::Stringprep::Prohibited::C12[$pos]; $char++) { $C12_to_SPACE{$char} = ' '; } }; *saslprep = Unicode::Stringprep->new( 3.2, [ \@Unicode::Stringprep::Mapping::B1, \%C12_to_SPACE ], 'KC', [ \@Unicode::Stringprep::Prohibited::C12, \@Unicode::Stringprep::Prohibited::C21, \@Unicode::Stringprep::Prohibited::C22, \@Unicode::Stringprep::Prohibited::C3, \@Unicode::Stringprep::Prohibited::C4, \@Unicode::Stringprep::Prohibited::C5, \@Unicode::Stringprep::Prohibited::C6, \@Unicode::Stringprep::Prohibited::C7, \@Unicode::Stringprep::Prohibited::C8, \@Unicode::Stringprep::Prohibited::C9, ], 1 ); foreach my $test (@strprep) { my ($in,$out,$comment) = @{$test}; is(eval{saslprep($in)}, $out, $comment); }