File: 07valid_docu.t

package info (click to toggle)
libtest-utf8-perl 1.00-1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 208 kB
  • sloc: perl: 1,658; makefile: 2
file content (40 lines) | stat: -rw-r--r-- 1,073 bytes parent folder | download | duplicates (5)
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
#!/usr/bin/env perl

use strict;
use warnings;

use Test::More tests => 5;
use Test::Builder::Tester;
use Test::utf8;
use Encode;

my $mark = "Mark";
my $leon = "L\x{e9}on";

test_out("ok 1 - valid string test");
is_valid_string($mark);  # passes, not utf-8
test_test("ascii");

test_out("ok 1 - valid string test");
is_valid_string($leon);  # passes, not utf-8
test_test("latin1");

my $iloveny = "I \x{2665} NY";

test_out("ok 1 - valid string test");
is_valid_string($iloveny);      # passes, proper utf-8
test_test("valid utf-8");

my $acme = "L\x{c3}\x{a9}on";
Encode::_utf8_on($acme);      # (please don't do things like this)

test_out("ok 1 - valid string test");
is_valid_string($acme);       # passes, proper utf-8
test_test("valid _utf8_on shenanigans");

Encode::_utf8_on($leon);      # (this is why you don't do things like this)
test_out("not ok 1 - valid string test");
test_fail(+2);
test_diag("malformed byte sequence starting at byte 1");
is_valid_string($leon);       # fails! the byte \x{e9} isn't valid utf-8
test_test("invalid _utf8_on shenanigans");