]>
Commit | Line | Data |
---|---|---|
1 | <?php | |
2 | /** | |
3 | * Utilities' tests | |
4 | */ | |
5 | ||
6 | require_once 'application/Utils.php'; | |
7 | ||
8 | /** | |
9 | * Unitary tests for Shaarli utilities | |
10 | */ | |
11 | class UtilsTest extends PHPUnit_Framework_TestCase | |
12 | { | |
13 | /** | |
14 | * Represent a link by its hash | |
15 | */ | |
16 | public function testSmallHash() | |
17 | { | |
18 | $this->assertEquals('CyAAJw', smallHash('http://test.io')); | |
19 | $this->assertEquals(6, strlen(smallHash('https://github.com'))); | |
20 | } | |
21 | ||
22 | /** | |
23 | * Look for a substring at the beginning of a string | |
24 | */ | |
25 | public function testStartsWithCaseInsensitive() | |
26 | { | |
27 | $this->assertTrue(startsWith('Lorem ipsum', 'lorem', false)); | |
28 | $this->assertTrue(startsWith('Lorem ipsum', 'LoReM i', false)); | |
29 | } | |
30 | ||
31 | /** | |
32 | * Look for a substring at the beginning of a string (case-sensitive) | |
33 | */ | |
34 | public function testStartsWithCaseSensitive() | |
35 | { | |
36 | $this->assertTrue(startsWith('Lorem ipsum', 'Lorem', true)); | |
37 | $this->assertFalse(startsWith('Lorem ipsum', 'lorem', true)); | |
38 | $this->assertFalse(startsWith('Lorem ipsum', 'LoReM i', true)); | |
39 | } | |
40 | ||
41 | /** | |
42 | * Look for a substring at the beginning of a string (Unicode) | |
43 | */ | |
44 | public function testStartsWithSpecialChars() | |
45 | { | |
46 | $this->assertTrue(startsWith('å!ùµ', 'å!', false)); | |
47 | $this->assertTrue(startsWith('µ$åù', 'µ$', true)); | |
48 | } | |
49 | ||
50 | /** | |
51 | * Look for a substring at the end of a string | |
52 | */ | |
53 | public function testEndsWithCaseInsensitive() | |
54 | { | |
55 | $this->assertTrue(endsWith('Lorem ipsum', 'ipsum', false)); | |
56 | $this->assertTrue(endsWith('Lorem ipsum', 'm IpsUM', false)); | |
57 | } | |
58 | ||
59 | /** | |
60 | * Look for a substring at the end of a string (case-sensitive) | |
61 | */ | |
62 | public function testEndsWithCaseSensitive() | |
63 | { | |
64 | $this->assertTrue(endsWith('lorem Ipsum', 'Ipsum', true)); | |
65 | $this->assertFalse(endsWith('lorem Ipsum', 'ipsum', true)); | |
66 | $this->assertFalse(endsWith('lorem Ipsum', 'M IPsuM', true)); | |
67 | } | |
68 | ||
69 | /** | |
70 | * Look for a substring at the end of a string (Unicode) | |
71 | */ | |
72 | public function testEndsWithSpecialChars() | |
73 | { | |
74 | $this->assertTrue(endsWith('å!ùµ', 'ùµ', false)); | |
75 | $this->assertTrue(endsWith('µ$åù', 'åù', true)); | |
76 | } | |
77 | ||
78 | /** | |
79 | * Check valid date strings, according to a DateTime format | |
80 | */ | |
81 | public function testCheckValidDateFormat() | |
82 | { | |
83 | $this->assertTrue(checkDateFormat('Ymd', '20150627')); | |
84 | $this->assertTrue(checkDateFormat('Y-m-d', '2015-06-27')); | |
85 | } | |
86 | ||
87 | /** | |
88 | * Check erroneous date strings, according to a DateTime format | |
89 | */ | |
90 | public function testCheckInvalidDateFormat() | |
91 | { | |
92 | $this->assertFalse(checkDateFormat('Ymd', '2015')); | |
93 | $this->assertFalse(checkDateFormat('Y-m-d', '2015-06')); | |
94 | $this->assertFalse(checkDateFormat('Ymd', 'DeLorean')); | |
95 | } | |
96 | } | |
97 | ?> |