-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEncoding.php
115 lines (93 loc) · 3.56 KB
/
Encoding.php
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php
declare(strict_types=1);
/*
* This file is part of the QuidPHP package <https://quidphp.com>
* Author: Pierre-Philippe Emond <emondpph@gmail.com>
* License: https://github.com/quidphp/base/blob/master/LICENSE
*/
namespace Quid\Test\Base;
use Quid\Base;
// encoding
// class for testing Quid\Base\Encoding
class Encoding extends Base\Test
{
// trigger
final public static function trigger(array $data):bool
{
// is
assert(Base\Encoding::is("lala'"));
assert(Base\Encoding::is("lalaé'"));
assert(!Base\Encoding::is("lalaé'",'7bit'));
$nonUtf8 = "\xF0";
assert(!Base\Encoding::is($nonUtf8));
// isMb
assert(!Base\Encoding::isMb(null));
assert(!Base\Encoding::isMb("lala'"));
assert(Base\Encoding::isMb('lalaé'));
assert(Base\Encoding::isMb('👦🏼👦🏼👦🏼👦🏼 zz'));
// isMbs
assert(!Base\Encoding::isMbs("lala'",'okok?'));
assert(Base\Encoding::isMbs("lala'",'okok?','é'));
// isCharsetMb
assert(Base\Encoding::isCharsetMb('UTF-8'));
assert(Base\Encoding::isCharsetMb('utf-8'));
assert(!Base\Encoding::isCharsetMb('utf-16'));
// exists
assert(Base\Encoding::exists('UTF-8'));
// get
assert(Base\Encoding::get('lalaé') === 'UTF-8');
assert(Base\Encoding::get('lala') === 'ASCII');
// set
assert(Base\Encoding::set('lalaé','ISO-8859-1','UTF-8') !== 'lalaé');
assert(Base\Encoding::set('lalaé','ISO-8859-1') !== 'lalaé');
// scrub
assert(Base\Encoding::scrub('lalaé') === 'lalaé');
assert(Base\Encoding::scrub('Uncidoe ❄❄❄') === 'Uncidoe ❄❄❄');
assert(Base\Encoding::scrub(substr('lalaé',0,5)) === 'lala?');
// getInternal
assert(Base\Encoding::getInternal() === Base\Encoding::getCharset());
// setInternal
assert(Base\Encoding::setInternal('UTF-16'));
assert(Base\Encoding::getCharset() === 'UTF-16');
assert(Base\Encoding::getInternal() === 'UTF-16');
assert(Base\Encoding::setInternal('UTF-8'));
// getCharset
assert(Base\Encoding::getCharset() === 'UTF-8');
assert(Base\Encoding::getCharset('latin1') === 'latin1');
// setCharset
Base\Encoding::setCharset('UTF-8');
// getMb
assert(Base\Encoding::getMb(true));
assert(!Base\Encoding::getMb(false));
Base\Encoding::setMb(null);
assert(!Base\Encoding::getMb(null,'lala'));
assert(Base\Encoding::getMb(null,'lalaé'));
Base\Encoding::setMb(false);
// getMbs
assert(Base\Encoding::getMbs(true));
assert(!Base\Encoding::getMbs(false));
assert(!Base\Encoding::getMbs(null,'lala','lala'));
Base\Encoding::setMb(null);
assert(Base\Encoding::getMbs(null,'lala','laé'));
Base\Encoding::setMb(false);
// setMb
Base\Encoding::setMb(true);
assert(Base\Encoding::getMb(null));
Base\Encoding::setMb(false);
assert(!Base\Encoding::getMb(null));
Base\Encoding::setMb('alalaé');
assert(Base\Encoding::getMb(null));
Base\Encoding::setMb('alala');
assert(!Base\Encoding::getMb(null));
// toUtf8
assert(strlen(Base\Encoding::toUtf8('testé')) === 8);
// fromUtf8
assert(strlen(Base\Encoding::fromUtf8('testé')) === 5);
// info
assert(count(Base\Encoding::info()) >= 12);
// all
assert(count(Base\Encoding::all()) > 70);
return true;
}
}
?>