diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/FileUtilsTest.php | 108 | ||||
-rw-r--r-- | tests/HistoryTest.php | 207 | ||||
-rw-r--r-- | tests/LinkDBTest.php | 2 | ||||
-rw-r--r-- | tests/NetscapeBookmarkUtils/BookmarkImportTest.php | 81 | ||||
-rw-r--r-- | tests/TimeZoneTest.php | 83 | ||||
-rw-r--r-- | tests/UtilsTest.php | 91 | ||||
-rw-r--r-- | tests/plugins/PluginReadityourselfTest.php | 99 |
7 files changed, 522 insertions, 149 deletions
diff --git a/tests/FileUtilsTest.php b/tests/FileUtilsTest.php new file mode 100644 index 00000000..d764e495 --- /dev/null +++ b/tests/FileUtilsTest.php | |||
@@ -0,0 +1,108 @@ | |||
1 | <?php | ||
2 | |||
3 | require_once 'application/FileUtils.php'; | ||
4 | |||
5 | /** | ||
6 | * Class FileUtilsTest | ||
7 | * | ||
8 | * Test file utility class. | ||
9 | */ | ||
10 | class FileUtilsTest extends PHPUnit_Framework_TestCase | ||
11 | { | ||
12 | /** | ||
13 | * @var string Test file path. | ||
14 | */ | ||
15 | protected static $file = 'sandbox/flat.db'; | ||
16 | |||
17 | /** | ||
18 | * Delete test file after every test. | ||
19 | */ | ||
20 | public function tearDown() | ||
21 | { | ||
22 | @unlink(self::$file); | ||
23 | } | ||
24 | |||
25 | /** | ||
26 | * Test writeDB, then readDB with different data. | ||
27 | */ | ||
28 | public function testSimpleWriteRead() | ||
29 | { | ||
30 | $data = ['blue', 'red']; | ||
31 | $this->assertTrue(FileUtils::writeFlatDB(self::$file, $data) > 0); | ||
32 | $this->assertTrue(startsWith(file_get_contents(self::$file), '<?php /*')); | ||
33 | $this->assertEquals($data, FileUtils::readFlatDB(self::$file)); | ||
34 | |||
35 | $data = 0; | ||
36 | $this->assertTrue(FileUtils::writeFlatDB(self::$file, $data) > 0); | ||
37 | $this->assertEquals($data, FileUtils::readFlatDB(self::$file)); | ||
38 | |||
39 | $data = null; | ||
40 | $this->assertTrue(FileUtils::writeFlatDB(self::$file, $data) > 0); | ||
41 | $this->assertEquals($data, FileUtils::readFlatDB(self::$file)); | ||
42 | |||
43 | $data = false; | ||
44 | $this->assertTrue(FileUtils::writeFlatDB(self::$file, $data) > 0); | ||
45 | $this->assertEquals($data, FileUtils::readFlatDB(self::$file)); | ||
46 | } | ||
47 | |||
48 | /** | ||
49 | * File not writable: raise an exception. | ||
50 | * | ||
51 | * @expectedException IOException | ||
52 | * @expectedExceptionMessage Error accessing "sandbox/flat.db" | ||
53 | */ | ||
54 | public function testWriteWithoutPermission() | ||
55 | { | ||
56 | touch(self::$file); | ||
57 | chmod(self::$file, 0440); | ||
58 | FileUtils::writeFlatDB(self::$file, null); | ||
59 | } | ||
60 | |||
61 | /** | ||
62 | * Folder non existent: raise an exception. | ||
63 | * | ||
64 | * @expectedException IOException | ||
65 | * @expectedExceptionMessage Error accessing "nopefolder" | ||
66 | */ | ||
67 | public function testWriteFolderDoesNotExist() | ||
68 | { | ||
69 | FileUtils::writeFlatDB('nopefolder/file', null); | ||
70 | } | ||
71 | |||
72 | /** | ||
73 | * Folder non writable: raise an exception. | ||
74 | * | ||
75 | * @expectedException IOException | ||
76 | * @expectedExceptionMessage Error accessing "sandbox" | ||
77 | */ | ||
78 | public function testWriteFolderPermission() | ||
79 | { | ||
80 | chmod(dirname(self::$file), 0555); | ||
81 | try { | ||
82 | FileUtils::writeFlatDB(self::$file, null); | ||
83 | } catch (Exception $e) { | ||
84 | chmod(dirname(self::$file), 0755); | ||
85 | throw $e; | ||
86 | } | ||
87 | } | ||
88 | |||
89 | /** | ||
90 | * Read non existent file, use default parameter. | ||
91 | */ | ||
92 | public function testReadNotExistentFile() | ||
93 | { | ||
94 | $this->assertEquals(null, FileUtils::readFlatDB(self::$file)); | ||
95 | $this->assertEquals(['test'], FileUtils::readFlatDB(self::$file, ['test'])); | ||
96 | } | ||
97 | |||
98 | /** | ||
99 | * Read non readable file, use default parameter. | ||
100 | */ | ||
101 | public function testReadNotReadable() | ||
102 | { | ||
103 | touch(self::$file); | ||
104 | chmod(self::$file, 0220); | ||
105 | $this->assertEquals(null, FileUtils::readFlatDB(self::$file)); | ||
106 | $this->assertEquals(['test'], FileUtils::readFlatDB(self::$file, ['test'])); | ||
107 | } | ||
108 | } | ||
diff --git a/tests/HistoryTest.php b/tests/HistoryTest.php new file mode 100644 index 00000000..91525845 --- /dev/null +++ b/tests/HistoryTest.php | |||
@@ -0,0 +1,207 @@ | |||
1 | <?php | ||
2 | |||
3 | require_once 'application/History.php'; | ||
4 | |||
5 | |||
6 | class HistoryTest extends PHPUnit_Framework_TestCase | ||
7 | { | ||
8 | /** | ||
9 | * @var string History file path | ||
10 | */ | ||
11 | protected static $historyFilePath = 'sandbox/history.php'; | ||
12 | |||
13 | /** | ||
14 | * Delete history file. | ||
15 | */ | ||
16 | public function tearDown() | ||
17 | { | ||
18 | @unlink(self::$historyFilePath); | ||
19 | } | ||
20 | |||
21 | /** | ||
22 | * Test that the history file is created if it doesn't exist. | ||
23 | */ | ||
24 | public function testConstructLazyLoading() | ||
25 | { | ||
26 | new History(self::$historyFilePath); | ||
27 | $this->assertFileNotExists(self::$historyFilePath); | ||
28 | } | ||
29 | |||
30 | /** | ||
31 | * Test that the history file is created if it doesn't exist. | ||
32 | */ | ||
33 | public function testAddEventCreateFile() | ||
34 | { | ||
35 | $history = new History(self::$historyFilePath); | ||
36 | $history->updateSettings(); | ||
37 | $this->assertFileExists(self::$historyFilePath); | ||
38 | } | ||
39 | |||
40 | /** | ||
41 | * Not writable history file: raise an exception. | ||
42 | * | ||
43 | * @expectedException Exception | ||
44 | * @expectedExceptionMessage History file isn't readable or writable | ||
45 | */ | ||
46 | public function testConstructNotWritable() | ||
47 | { | ||
48 | touch(self::$historyFilePath); | ||
49 | chmod(self::$historyFilePath, 0440); | ||
50 | $history = new History(self::$historyFilePath); | ||
51 | $history->updateSettings(); | ||
52 | } | ||
53 | |||
54 | /** | ||
55 | * Not parsable history file: raise an exception. | ||
56 | * | ||
57 | * @expectedException Exception | ||
58 | * @expectedExceptionMessageRegExp /Could not parse history file/ | ||
59 | */ | ||
60 | public function testConstructNotParsable() | ||
61 | { | ||
62 | file_put_contents(self::$historyFilePath, 'not parsable'); | ||
63 | $history = new History(self::$historyFilePath); | ||
64 | // gzinflate generates a warning | ||
65 | @$history->updateSettings(); | ||
66 | } | ||
67 | |||
68 | /** | ||
69 | * Test add link event | ||
70 | */ | ||
71 | public function testAddLink() | ||
72 | { | ||
73 | $history = new History(self::$historyFilePath); | ||
74 | $history->addLink(['id' => 0]); | ||
75 | $actual = $history->getHistory()[0]; | ||
76 | $this->assertEquals(History::CREATED, $actual['event']); | ||
77 | $this->assertTrue(new DateTime('-2 seconds') < DateTime::createFromFormat(DateTime::ATOM, $actual['datetime'])); | ||
78 | $this->assertEquals(0, $actual['id']); | ||
79 | |||
80 | $history = new History(self::$historyFilePath); | ||
81 | $history->addLink(['id' => 1]); | ||
82 | $actual = $history->getHistory()[0]; | ||
83 | $this->assertEquals(History::CREATED, $actual['event']); | ||
84 | $this->assertTrue(new DateTime('-2 seconds') < DateTime::createFromFormat(DateTime::ATOM, $actual['datetime'])); | ||
85 | $this->assertEquals(1, $actual['id']); | ||
86 | |||
87 | $history = new History(self::$historyFilePath); | ||
88 | $history->addLink(['id' => 'str']); | ||
89 | $actual = $history->getHistory()[0]; | ||
90 | $this->assertEquals(History::CREATED, $actual['event']); | ||
91 | $this->assertTrue(new DateTime('-2 seconds') < DateTime::createFromFormat(DateTime::ATOM, $actual['datetime'])); | ||
92 | $this->assertEquals('str', $actual['id']); | ||
93 | } | ||
94 | |||
95 | /** | ||
96 | * Test updated link event | ||
97 | */ | ||
98 | public function testUpdateLink() | ||
99 | { | ||
100 | $history = new History(self::$historyFilePath); | ||
101 | $history->updateLink(['id' => 1]); | ||
102 | $actual = $history->getHistory()[0]; | ||
103 | $this->assertEquals(History::UPDATED, $actual['event']); | ||
104 | $this->assertTrue(new DateTime('-2 seconds') < DateTime::createFromFormat(DateTime::ATOM, $actual['datetime'])); | ||
105 | $this->assertEquals(1, $actual['id']); | ||
106 | } | ||
107 | |||
108 | /** | ||
109 | * Test delete link event | ||
110 | */ | ||
111 | public function testDeleteLink() | ||
112 | { | ||
113 | $history = new History(self::$historyFilePath); | ||
114 | $history->deleteLink(['id' => 1]); | ||
115 | $actual = $history->getHistory()[0]; | ||
116 | $this->assertEquals(History::DELETED, $actual['event']); | ||
117 | $this->assertTrue(new DateTime('-2 seconds') < DateTime::createFromFormat(DateTime::ATOM, $actual['datetime'])); | ||
118 | $this->assertEquals(1, $actual['id']); | ||
119 | } | ||
120 | |||
121 | /** | ||
122 | * Test updated settings event | ||
123 | */ | ||
124 | public function testUpdateSettings() | ||
125 | { | ||
126 | $history = new History(self::$historyFilePath); | ||
127 | $history->updateSettings(); | ||
128 | $actual = $history->getHistory()[0]; | ||
129 | $this->assertEquals(History::SETTINGS, $actual['event']); | ||
130 | $this->assertTrue(new DateTime('-2 seconds') < DateTime::createFromFormat(DateTime::ATOM, $actual['datetime'])); | ||
131 | $this->assertEmpty($actual['id']); | ||
132 | } | ||
133 | |||
134 | /** | ||
135 | * Make sure that new items are stored at the beginning | ||
136 | */ | ||
137 | public function testHistoryOrder() | ||
138 | { | ||
139 | $history = new History(self::$historyFilePath); | ||
140 | $history->updateLink(['id' => 1]); | ||
141 | $actual = $history->getHistory()[0]; | ||
142 | $this->assertEquals(History::UPDATED, $actual['event']); | ||
143 | $this->assertTrue(new DateTime('-2 seconds') < DateTime::createFromFormat(DateTime::ATOM, $actual['datetime'])); | ||
144 | $this->assertEquals(1, $actual['id']); | ||
145 | |||
146 | $history->addLink(['id' => 1]); | ||
147 | $actual = $history->getHistory()[0]; | ||
148 | $this->assertEquals(History::CREATED, $actual['event']); | ||
149 | $this->assertTrue(new DateTime('-2 seconds') < DateTime::createFromFormat(DateTime::ATOM, $actual['datetime'])); | ||
150 | $this->assertEquals(1, $actual['id']); | ||
151 | } | ||
152 | |||
153 | /** | ||
154 | * Re-read history from file after writing an event | ||
155 | */ | ||
156 | public function testHistoryRead() | ||
157 | { | ||
158 | $history = new History(self::$historyFilePath); | ||
159 | $history->updateLink(['id' => 1]); | ||
160 | $history = new History(self::$historyFilePath); | ||
161 | $actual = $history->getHistory()[0]; | ||
162 | $this->assertEquals(History::UPDATED, $actual['event']); | ||
163 | $this->assertTrue(new DateTime('-2 seconds') < DateTime::createFromFormat(DateTime::ATOM, $actual['datetime'])); | ||
164 | $this->assertEquals(1, $actual['id']); | ||
165 | } | ||
166 | |||
167 | /** | ||
168 | * Re-read history from file after writing an event and make sure that the order is correct | ||
169 | */ | ||
170 | public function testHistoryOrderRead() | ||
171 | { | ||
172 | $history = new History(self::$historyFilePath); | ||
173 | $history->updateLink(['id' => 1]); | ||
174 | $history->addLink(['id' => 1]); | ||
175 | |||
176 | $history = new History(self::$historyFilePath); | ||
177 | $actual = $history->getHistory()[0]; | ||
178 | $this->assertEquals(History::CREATED, $actual['event']); | ||
179 | $this->assertTrue(new DateTime('-2 seconds') < DateTime::createFromFormat(DateTime::ATOM, $actual['datetime'])); | ||
180 | $this->assertEquals(1, $actual['id']); | ||
181 | |||
182 | $actual = $history->getHistory()[1]; | ||
183 | $this->assertEquals(History::UPDATED, $actual['event']); | ||
184 | $this->assertTrue(new DateTime('-2 seconds') < DateTime::createFromFormat(DateTime::ATOM, $actual['datetime'])); | ||
185 | $this->assertEquals(1, $actual['id']); | ||
186 | } | ||
187 | |||
188 | /** | ||
189 | * Test retention time: delete old entries. | ||
190 | */ | ||
191 | public function testHistoryRententionTime() | ||
192 | { | ||
193 | $history = new History(self::$historyFilePath, 5); | ||
194 | $history->updateLink(['id' => 1]); | ||
195 | $this->assertEquals(1, count($history->getHistory())); | ||
196 | $arr = $history->getHistory(); | ||
197 | $arr[0]['datetime'] = (new DateTime('-1 hour'))->format(DateTime::ATOM); | ||
198 | FileUtils::writeFlatDB(self::$historyFilePath, $arr); | ||
199 | |||
200 | $history = new History(self::$historyFilePath, 60); | ||
201 | $this->assertEquals(1, count($history->getHistory())); | ||
202 | $this->assertEquals(1, $history->getHistory()[0]['id']); | ||
203 | $history->updateLink(['id' => 2]); | ||
204 | $this->assertEquals(1, count($history->getHistory())); | ||
205 | $this->assertEquals(2, $history->getHistory()[0]['id']); | ||
206 | } | ||
207 | } | ||
diff --git a/tests/LinkDBTest.php b/tests/LinkDBTest.php index 1f62a34a..7bf98f92 100644 --- a/tests/LinkDBTest.php +++ b/tests/LinkDBTest.php | |||
@@ -101,7 +101,7 @@ class LinkDBTest extends PHPUnit_Framework_TestCase | |||
101 | * Attempt to instantiate a LinkDB whereas the datastore is not writable | 101 | * Attempt to instantiate a LinkDB whereas the datastore is not writable |
102 | * | 102 | * |
103 | * @expectedException IOException | 103 | * @expectedException IOException |
104 | * @expectedExceptionMessageRegExp /Error accessing\nnull/ | 104 | * @expectedExceptionMessageRegExp /Error accessing "null"/ |
105 | */ | 105 | */ |
106 | public function testConstructDatastoreNotWriteable() | 106 | public function testConstructDatastoreNotWriteable() |
107 | { | 107 | { |
diff --git a/tests/NetscapeBookmarkUtils/BookmarkImportTest.php b/tests/NetscapeBookmarkUtils/BookmarkImportTest.php index 5925a8e1..f838f259 100644 --- a/tests/NetscapeBookmarkUtils/BookmarkImportTest.php +++ b/tests/NetscapeBookmarkUtils/BookmarkImportTest.php | |||
@@ -34,6 +34,11 @@ class BookmarkImportTest extends PHPUnit_Framework_TestCase | |||
34 | protected static $testDatastore = 'sandbox/datastore.php'; | 34 | protected static $testDatastore = 'sandbox/datastore.php'; |
35 | 35 | ||
36 | /** | 36 | /** |
37 | * @var string History file path | ||
38 | */ | ||
39 | protected static $historyFilePath = 'sandbox/history.php'; | ||
40 | |||
41 | /** | ||
37 | * @var LinkDB private LinkDB instance | 42 | * @var LinkDB private LinkDB instance |
38 | */ | 43 | */ |
39 | protected $linkDb = null; | 44 | protected $linkDb = null; |
@@ -49,6 +54,11 @@ class BookmarkImportTest extends PHPUnit_Framework_TestCase | |||
49 | protected $conf; | 54 | protected $conf; |
50 | 55 | ||
51 | /** | 56 | /** |
57 | * @var History instance. | ||
58 | */ | ||
59 | protected $history; | ||
60 | |||
61 | /** | ||
52 | * @var string Save the current timezone. | 62 | * @var string Save the current timezone. |
53 | */ | 63 | */ |
54 | protected static $defaultTimeZone; | 64 | protected static $defaultTimeZone; |
@@ -73,6 +83,15 @@ class BookmarkImportTest extends PHPUnit_Framework_TestCase | |||
73 | $this->linkDb = new LinkDB(self::$testDatastore, true, false); | 83 | $this->linkDb = new LinkDB(self::$testDatastore, true, false); |
74 | $this->conf = new ConfigManager('tests/utils/config/configJson'); | 84 | $this->conf = new ConfigManager('tests/utils/config/configJson'); |
75 | $this->conf->set('resource.page_cache', $this->pagecache); | 85 | $this->conf->set('resource.page_cache', $this->pagecache); |
86 | $this->history = new History(self::$historyFilePath); | ||
87 | } | ||
88 | |||
89 | /** | ||
90 | * Delete history file. | ||
91 | */ | ||
92 | public function tearDown() | ||
93 | { | ||
94 | @unlink(self::$historyFilePath); | ||
76 | } | 95 | } |
77 | 96 | ||
78 | public static function tearDownAfterClass() | 97 | public static function tearDownAfterClass() |
@@ -89,7 +108,7 @@ class BookmarkImportTest extends PHPUnit_Framework_TestCase | |||
89 | $this->assertEquals( | 108 | $this->assertEquals( |
90 | 'File empty.htm (0 bytes) has an unknown file format.' | 109 | 'File empty.htm (0 bytes) has an unknown file format.' |
91 | .' Nothing was imported.', | 110 | .' Nothing was imported.', |
92 | NetscapeBookmarkUtils::import(NULL, $files, NULL, $this->conf) | 111 | NetscapeBookmarkUtils::import(null, $files, null, $this->conf, $this->history) |
93 | ); | 112 | ); |
94 | $this->assertEquals(0, count($this->linkDb)); | 113 | $this->assertEquals(0, count($this->linkDb)); |
95 | } | 114 | } |
@@ -102,7 +121,7 @@ class BookmarkImportTest extends PHPUnit_Framework_TestCase | |||
102 | $files = file2array('no_doctype.htm'); | 121 | $files = file2array('no_doctype.htm'); |
103 | $this->assertEquals( | 122 | $this->assertEquals( |
104 | 'File no_doctype.htm (350 bytes) has an unknown file format. Nothing was imported.', | 123 | 'File no_doctype.htm (350 bytes) has an unknown file format. Nothing was imported.', |
105 | NetscapeBookmarkUtils::import(NULL, $files, NULL, $this->conf) | 124 | NetscapeBookmarkUtils::import(null, $files, null, $this->conf, $this->history) |
106 | ); | 125 | ); |
107 | $this->assertEquals(0, count($this->linkDb)); | 126 | $this->assertEquals(0, count($this->linkDb)); |
108 | } | 127 | } |
@@ -116,7 +135,7 @@ class BookmarkImportTest extends PHPUnit_Framework_TestCase | |||
116 | $this->assertEquals( | 135 | $this->assertEquals( |
117 | 'File internet_explorer_encoding.htm (356 bytes) was successfully processed:' | 136 | 'File internet_explorer_encoding.htm (356 bytes) was successfully processed:' |
118 | .' 1 links imported, 0 links overwritten, 0 links skipped.', | 137 | .' 1 links imported, 0 links overwritten, 0 links skipped.', |
119 | NetscapeBookmarkUtils::import(array(), $files, $this->linkDb, $this->conf) | 138 | NetscapeBookmarkUtils::import([], $files, $this->linkDb, $this->conf, $this->history) |
120 | ); | 139 | ); |
121 | $this->assertEquals(1, count($this->linkDb)); | 140 | $this->assertEquals(1, count($this->linkDb)); |
122 | $this->assertEquals(0, count_private($this->linkDb)); | 141 | $this->assertEquals(0, count_private($this->linkDb)); |
@@ -145,7 +164,7 @@ class BookmarkImportTest extends PHPUnit_Framework_TestCase | |||
145 | $this->assertEquals( | 164 | $this->assertEquals( |
146 | 'File netscape_nested.htm (1337 bytes) was successfully processed:' | 165 | 'File netscape_nested.htm (1337 bytes) was successfully processed:' |
147 | .' 8 links imported, 0 links overwritten, 0 links skipped.', | 166 | .' 8 links imported, 0 links overwritten, 0 links skipped.', |
148 | NetscapeBookmarkUtils::import(array(), $files, $this->linkDb, $this->conf) | 167 | NetscapeBookmarkUtils::import([], $files, $this->linkDb, $this->conf, $this->history) |
149 | ); | 168 | ); |
150 | $this->assertEquals(8, count($this->linkDb)); | 169 | $this->assertEquals(8, count($this->linkDb)); |
151 | $this->assertEquals(2, count_private($this->linkDb)); | 170 | $this->assertEquals(2, count_private($this->linkDb)); |
@@ -267,7 +286,7 @@ class BookmarkImportTest extends PHPUnit_Framework_TestCase | |||
267 | $this->assertEquals( | 286 | $this->assertEquals( |
268 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | 287 | 'File netscape_basic.htm (482 bytes) was successfully processed:' |
269 | .' 2 links imported, 0 links overwritten, 0 links skipped.', | 288 | .' 2 links imported, 0 links overwritten, 0 links skipped.', |
270 | NetscapeBookmarkUtils::import(array(), $files, $this->linkDb, $this->conf) | 289 | NetscapeBookmarkUtils::import([], $files, $this->linkDb, $this->conf, $this->history) |
271 | ); | 290 | ); |
272 | 291 | ||
273 | $this->assertEquals(2, count($this->linkDb)); | 292 | $this->assertEquals(2, count($this->linkDb)); |
@@ -312,7 +331,7 @@ class BookmarkImportTest extends PHPUnit_Framework_TestCase | |||
312 | $this->assertEquals( | 331 | $this->assertEquals( |
313 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | 332 | 'File netscape_basic.htm (482 bytes) was successfully processed:' |
314 | .' 2 links imported, 0 links overwritten, 0 links skipped.', | 333 | .' 2 links imported, 0 links overwritten, 0 links skipped.', |
315 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf) | 334 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf, $this->history) |
316 | ); | 335 | ); |
317 | $this->assertEquals(2, count($this->linkDb)); | 336 | $this->assertEquals(2, count($this->linkDb)); |
318 | $this->assertEquals(1, count_private($this->linkDb)); | 337 | $this->assertEquals(1, count_private($this->linkDb)); |
@@ -356,7 +375,7 @@ class BookmarkImportTest extends PHPUnit_Framework_TestCase | |||
356 | $this->assertEquals( | 375 | $this->assertEquals( |
357 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | 376 | 'File netscape_basic.htm (482 bytes) was successfully processed:' |
358 | .' 2 links imported, 0 links overwritten, 0 links skipped.', | 377 | .' 2 links imported, 0 links overwritten, 0 links skipped.', |
359 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf) | 378 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf, $this->history) |
360 | ); | 379 | ); |
361 | $this->assertEquals(2, count($this->linkDb)); | 380 | $this->assertEquals(2, count($this->linkDb)); |
362 | $this->assertEquals(0, count_private($this->linkDb)); | 381 | $this->assertEquals(0, count_private($this->linkDb)); |
@@ -380,7 +399,7 @@ class BookmarkImportTest extends PHPUnit_Framework_TestCase | |||
380 | $this->assertEquals( | 399 | $this->assertEquals( |
381 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | 400 | 'File netscape_basic.htm (482 bytes) was successfully processed:' |
382 | .' 2 links imported, 0 links overwritten, 0 links skipped.', | 401 | .' 2 links imported, 0 links overwritten, 0 links skipped.', |
383 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf) | 402 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf, $this->history) |
384 | ); | 403 | ); |
385 | $this->assertEquals(2, count($this->linkDb)); | 404 | $this->assertEquals(2, count($this->linkDb)); |
386 | $this->assertEquals(2, count_private($this->linkDb)); | 405 | $this->assertEquals(2, count_private($this->linkDb)); |
@@ -406,7 +425,7 @@ class BookmarkImportTest extends PHPUnit_Framework_TestCase | |||
406 | $this->assertEquals( | 425 | $this->assertEquals( |
407 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | 426 | 'File netscape_basic.htm (482 bytes) was successfully processed:' |
408 | .' 2 links imported, 0 links overwritten, 0 links skipped.', | 427 | .' 2 links imported, 0 links overwritten, 0 links skipped.', |
409 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf) | 428 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf, $this->history) |
410 | ); | 429 | ); |
411 | $this->assertEquals(2, count($this->linkDb)); | 430 | $this->assertEquals(2, count($this->linkDb)); |
412 | $this->assertEquals(2, count_private($this->linkDb)); | 431 | $this->assertEquals(2, count_private($this->linkDb)); |
@@ -426,7 +445,7 @@ class BookmarkImportTest extends PHPUnit_Framework_TestCase | |||
426 | $this->assertEquals( | 445 | $this->assertEquals( |
427 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | 446 | 'File netscape_basic.htm (482 bytes) was successfully processed:' |
428 | .' 2 links imported, 2 links overwritten, 0 links skipped.', | 447 | .' 2 links imported, 2 links overwritten, 0 links skipped.', |
429 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf) | 448 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf, $this->history) |
430 | ); | 449 | ); |
431 | $this->assertEquals(2, count($this->linkDb)); | 450 | $this->assertEquals(2, count($this->linkDb)); |
432 | $this->assertEquals(0, count_private($this->linkDb)); | 451 | $this->assertEquals(0, count_private($this->linkDb)); |
@@ -452,7 +471,7 @@ class BookmarkImportTest extends PHPUnit_Framework_TestCase | |||
452 | $this->assertEquals( | 471 | $this->assertEquals( |
453 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | 472 | 'File netscape_basic.htm (482 bytes) was successfully processed:' |
454 | .' 2 links imported, 0 links overwritten, 0 links skipped.', | 473 | .' 2 links imported, 0 links overwritten, 0 links skipped.', |
455 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf) | 474 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf, $this->history) |
456 | ); | 475 | ); |
457 | $this->assertEquals(2, count($this->linkDb)); | 476 | $this->assertEquals(2, count($this->linkDb)); |
458 | $this->assertEquals(0, count_private($this->linkDb)); | 477 | $this->assertEquals(0, count_private($this->linkDb)); |
@@ -473,7 +492,7 @@ class BookmarkImportTest extends PHPUnit_Framework_TestCase | |||
473 | $this->assertEquals( | 492 | $this->assertEquals( |
474 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | 493 | 'File netscape_basic.htm (482 bytes) was successfully processed:' |
475 | .' 2 links imported, 2 links overwritten, 0 links skipped.', | 494 | .' 2 links imported, 2 links overwritten, 0 links skipped.', |
476 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf) | 495 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf, $this->history) |
477 | ); | 496 | ); |
478 | $this->assertEquals(2, count($this->linkDb)); | 497 | $this->assertEquals(2, count($this->linkDb)); |
479 | $this->assertEquals(2, count_private($this->linkDb)); | 498 | $this->assertEquals(2, count_private($this->linkDb)); |
@@ -497,7 +516,7 @@ class BookmarkImportTest extends PHPUnit_Framework_TestCase | |||
497 | $this->assertEquals( | 516 | $this->assertEquals( |
498 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | 517 | 'File netscape_basic.htm (482 bytes) was successfully processed:' |
499 | .' 2 links imported, 0 links overwritten, 0 links skipped.', | 518 | .' 2 links imported, 0 links overwritten, 0 links skipped.', |
500 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf) | 519 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf, $this->history) |
501 | ); | 520 | ); |
502 | $this->assertEquals(2, count($this->linkDb)); | 521 | $this->assertEquals(2, count($this->linkDb)); |
503 | $this->assertEquals(0, count_private($this->linkDb)); | 522 | $this->assertEquals(0, count_private($this->linkDb)); |
@@ -507,7 +526,7 @@ class BookmarkImportTest extends PHPUnit_Framework_TestCase | |||
507 | $this->assertEquals( | 526 | $this->assertEquals( |
508 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | 527 | 'File netscape_basic.htm (482 bytes) was successfully processed:' |
509 | .' 0 links imported, 0 links overwritten, 2 links skipped.', | 528 | .' 0 links imported, 0 links overwritten, 2 links skipped.', |
510 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf) | 529 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf, $this->history) |
511 | ); | 530 | ); |
512 | $this->assertEquals(2, count($this->linkDb)); | 531 | $this->assertEquals(2, count($this->linkDb)); |
513 | $this->assertEquals(0, count_private($this->linkDb)); | 532 | $this->assertEquals(0, count_private($this->linkDb)); |
@@ -526,7 +545,7 @@ class BookmarkImportTest extends PHPUnit_Framework_TestCase | |||
526 | $this->assertEquals( | 545 | $this->assertEquals( |
527 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | 546 | 'File netscape_basic.htm (482 bytes) was successfully processed:' |
528 | .' 2 links imported, 0 links overwritten, 0 links skipped.', | 547 | .' 2 links imported, 0 links overwritten, 0 links skipped.', |
529 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf) | 548 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf, $this->history) |
530 | ); | 549 | ); |
531 | $this->assertEquals(2, count($this->linkDb)); | 550 | $this->assertEquals(2, count($this->linkDb)); |
532 | $this->assertEquals(0, count_private($this->linkDb)); | 551 | $this->assertEquals(0, count_private($this->linkDb)); |
@@ -553,7 +572,7 @@ class BookmarkImportTest extends PHPUnit_Framework_TestCase | |||
553 | $this->assertEquals( | 572 | $this->assertEquals( |
554 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | 573 | 'File netscape_basic.htm (482 bytes) was successfully processed:' |
555 | .' 2 links imported, 0 links overwritten, 0 links skipped.', | 574 | .' 2 links imported, 0 links overwritten, 0 links skipped.', |
556 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf) | 575 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf, $this->history) |
557 | ); | 576 | ); |
558 | $this->assertEquals(2, count($this->linkDb)); | 577 | $this->assertEquals(2, count($this->linkDb)); |
559 | $this->assertEquals(0, count_private($this->linkDb)); | 578 | $this->assertEquals(0, count_private($this->linkDb)); |
@@ -578,7 +597,7 @@ class BookmarkImportTest extends PHPUnit_Framework_TestCase | |||
578 | $this->assertEquals( | 597 | $this->assertEquals( |
579 | 'File same_date.htm (453 bytes) was successfully processed:' | 598 | 'File same_date.htm (453 bytes) was successfully processed:' |
580 | .' 3 links imported, 0 links overwritten, 0 links skipped.', | 599 | .' 3 links imported, 0 links overwritten, 0 links skipped.', |
581 | NetscapeBookmarkUtils::import(array(), $files, $this->linkDb, $this->conf) | 600 | NetscapeBookmarkUtils::import(array(), $files, $this->linkDb, $this->conf, $this->history) |
582 | ); | 601 | ); |
583 | $this->assertEquals(3, count($this->linkDb)); | 602 | $this->assertEquals(3, count($this->linkDb)); |
584 | $this->assertEquals(0, count_private($this->linkDb)); | 603 | $this->assertEquals(0, count_private($this->linkDb)); |
@@ -595,4 +614,32 @@ class BookmarkImportTest extends PHPUnit_Framework_TestCase | |||
595 | $this->linkDb[2]['id'] | 614 | $this->linkDb[2]['id'] |
596 | ); | 615 | ); |
597 | } | 616 | } |
617 | |||
618 | public function testImportCreateUpdateHistory() | ||
619 | { | ||
620 | $post = [ | ||
621 | 'privacy' => 'public', | ||
622 | 'overwrite' => 'true', | ||
623 | ]; | ||
624 | $files = file2array('netscape_basic.htm'); | ||
625 | $nbLinks = 2; | ||
626 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf, $this->history); | ||
627 | $history = $this->history->getHistory(); | ||
628 | $this->assertEquals($nbLinks, count($history)); | ||
629 | foreach ($history as $value) { | ||
630 | $this->assertEquals(History::CREATED, $value['event']); | ||
631 | $this->assertTrue(new DateTime('-5 seconds') < DateTime::createFromFormat(DateTime::ATOM, $value['datetime'])); | ||
632 | $this->assertTrue(is_int($value['id'])); | ||
633 | } | ||
634 | |||
635 | // re-import as private, enable overwriting | ||
636 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->conf, $this->history); | ||
637 | $history = $this->history->getHistory(); | ||
638 | $this->assertEquals($nbLinks * 2, count($history)); | ||
639 | for ($i = 0 ; $i < $nbLinks ; $i++) { | ||
640 | $this->assertEquals(History::UPDATED, $history[$i]['event']); | ||
641 | $this->assertTrue(new DateTime('-5 seconds') < DateTime::createFromFormat(DateTime::ATOM, $history[$i]['datetime'])); | ||
642 | $this->assertTrue(is_int($history[$i]['id'])); | ||
643 | } | ||
644 | } | ||
598 | } | 645 | } |
diff --git a/tests/TimeZoneTest.php b/tests/TimeZoneTest.php index 2976d116..127fdc19 100644 --- a/tests/TimeZoneTest.php +++ b/tests/TimeZoneTest.php | |||
@@ -11,24 +11,45 @@ require_once 'application/TimeZone.php'; | |||
11 | class TimeZoneTest extends PHPUnit_Framework_TestCase | 11 | class TimeZoneTest extends PHPUnit_Framework_TestCase |
12 | { | 12 | { |
13 | /** | 13 | /** |
14 | * @var array of timezones | ||
15 | */ | ||
16 | protected $installedTimezones; | ||
17 | |||
18 | public function setUp() | ||
19 | { | ||
20 | $this->installedTimezones = [ | ||
21 | 'Antarctica/Syowa', | ||
22 | 'Europe/London', | ||
23 | 'Europe/Paris', | ||
24 | 'UTC' | ||
25 | ]; | ||
26 | } | ||
27 | |||
28 | /** | ||
14 | * Generate a timezone selection form | 29 | * Generate a timezone selection form |
15 | */ | 30 | */ |
16 | public function testGenerateTimeZoneForm() | 31 | public function testGenerateTimeZoneForm() |
17 | { | 32 | { |
18 | $generated = generateTimeZoneForm(); | 33 | $expected = [ |
34 | 'continents' => [ | ||
35 | 'Antarctica', | ||
36 | 'Europe', | ||
37 | 'UTC', | ||
38 | 'selected' => '', | ||
39 | ], | ||
40 | 'cities' => [ | ||
41 | ['continent' => 'Antarctica', 'city' => 'Syowa'], | ||
42 | ['continent' => 'Europe', 'city' => 'London'], | ||
43 | ['continent' => 'Europe', 'city' => 'Paris'], | ||
44 | ['continent' => 'UTC', 'city' => 'UTC'], | ||
45 | 'selected' => '', | ||
46 | ] | ||
47 | ]; | ||
19 | 48 | ||
20 | // HTML form | 49 | list($continents, $cities) = generateTimeZoneData($this->installedTimezones); |
21 | $this->assertStringStartsWith('Continent:<select', $generated[0]); | ||
22 | $this->assertContains('selected="selected"', $generated[0]); | ||
23 | $this->assertStringEndsWith('</select><br />', $generated[0]); | ||
24 | 50 | ||
25 | // Javascript handler | 51 | $this->assertEquals($expected['continents'], $continents); |
26 | $this->assertStringStartsWith('<script>', $generated[1]); | 52 | $this->assertEquals($expected['cities'], $cities); |
27 | $this->assertContains( | ||
28 | '<option value=\"Bermuda\">Bermuda<\/option>', | ||
29 | $generated[1] | ||
30 | ); | ||
31 | $this->assertStringEndsWith('</script>', $generated[1]); | ||
32 | } | 53 | } |
33 | 54 | ||
34 | /** | 55 | /** |
@@ -36,28 +57,26 @@ class TimeZoneTest extends PHPUnit_Framework_TestCase | |||
36 | */ | 57 | */ |
37 | public function testGenerateTimeZoneFormPreselected() | 58 | public function testGenerateTimeZoneFormPreselected() |
38 | { | 59 | { |
39 | $generated = generateTimeZoneForm('Antarctica/Syowa'); | 60 | $expected = [ |
40 | 61 | 'continents' => [ | |
41 | // HTML form | 62 | 'Antarctica', |
42 | $this->assertStringStartsWith('Continent:<select', $generated[0]); | 63 | 'Europe', |
43 | $this->assertContains( | 64 | 'UTC', |
44 | 'value="Antarctica" selected="selected"', | 65 | 'selected' => 'Antarctica', |
45 | $generated[0] | 66 | ], |
46 | ); | 67 | 'cities' => [ |
47 | $this->assertContains( | 68 | ['continent' => 'Antarctica', 'city' => 'Syowa'], |
48 | 'value="Syowa" selected="selected"', | 69 | ['continent' => 'Europe', 'city' => 'London'], |
49 | $generated[0] | 70 | ['continent' => 'Europe', 'city' => 'Paris'], |
50 | ); | 71 | ['continent' => 'UTC', 'city' => 'UTC'], |
51 | $this->assertStringEndsWith('</select><br />', $generated[0]); | 72 | 'selected' => 'Syowa', |
73 | ] | ||
74 | ]; | ||
52 | 75 | ||
76 | list($continents, $cities) = generateTimeZoneData($this->installedTimezones, 'Antarctica/Syowa'); | ||
53 | 77 | ||
54 | // Javascript handler | 78 | $this->assertEquals($expected['continents'], $continents); |
55 | $this->assertStringStartsWith('<script>', $generated[1]); | 79 | $this->assertEquals($expected['cities'], $cities); |
56 | $this->assertContains( | ||
57 | '<option value=\"Bermuda\">Bermuda<\/option>', | ||
58 | $generated[1] | ||
59 | ); | ||
60 | $this->assertStringEndsWith('</script>', $generated[1]); | ||
61 | } | 80 | } |
62 | 81 | ||
63 | /** | 82 | /** |
diff --git a/tests/UtilsTest.php b/tests/UtilsTest.php index e70cc1ae..d6a0aad5 100644 --- a/tests/UtilsTest.php +++ b/tests/UtilsTest.php | |||
@@ -4,6 +4,7 @@ | |||
4 | */ | 4 | */ |
5 | 5 | ||
6 | require_once 'application/Utils.php'; | 6 | require_once 'application/Utils.php'; |
7 | require_once 'application/Languages.php'; | ||
7 | require_once 'tests/utils/ReferenceSessionIdHashes.php'; | 8 | require_once 'tests/utils/ReferenceSessionIdHashes.php'; |
8 | 9 | ||
9 | // Initialize reference data before PHPUnit starts a session | 10 | // Initialize reference data before PHPUnit starts a session |
@@ -326,4 +327,94 @@ class UtilsTest extends PHPUnit_Framework_TestCase | |||
326 | $this->assertFalse(format_date([])); | 327 | $this->assertFalse(format_date([])); |
327 | $this->assertFalse(format_date(null)); | 328 | $this->assertFalse(format_date(null)); |
328 | } | 329 | } |
330 | |||
331 | /** | ||
332 | * Test is_integer_mixed with valid values | ||
333 | */ | ||
334 | public function testIsIntegerMixedValid() | ||
335 | { | ||
336 | $this->assertTrue(is_integer_mixed(12)); | ||
337 | $this->assertTrue(is_integer_mixed('12')); | ||
338 | $this->assertTrue(is_integer_mixed(-12)); | ||
339 | $this->assertTrue(is_integer_mixed('-12')); | ||
340 | $this->assertTrue(is_integer_mixed(0)); | ||
341 | $this->assertTrue(is_integer_mixed('0')); | ||
342 | $this->assertTrue(is_integer_mixed(0x0a)); | ||
343 | } | ||
344 | |||
345 | /** | ||
346 | * Test is_integer_mixed with invalid values | ||
347 | */ | ||
348 | public function testIsIntegerMixedInvalid() | ||
349 | { | ||
350 | $this->assertFalse(is_integer_mixed(true)); | ||
351 | $this->assertFalse(is_integer_mixed(false)); | ||
352 | $this->assertFalse(is_integer_mixed([])); | ||
353 | $this->assertFalse(is_integer_mixed(['test'])); | ||
354 | $this->assertFalse(is_integer_mixed([12])); | ||
355 | $this->assertFalse(is_integer_mixed(new DateTime())); | ||
356 | $this->assertFalse(is_integer_mixed('0x0a')); | ||
357 | $this->assertFalse(is_integer_mixed('12k')); | ||
358 | $this->assertFalse(is_integer_mixed('k12')); | ||
359 | $this->assertFalse(is_integer_mixed('')); | ||
360 | } | ||
361 | |||
362 | /** | ||
363 | * Test return_bytes | ||
364 | */ | ||
365 | public function testReturnBytes() | ||
366 | { | ||
367 | $this->assertEquals(2 * 1024, return_bytes('2k')); | ||
368 | $this->assertEquals(2 * 1024, return_bytes('2K')); | ||
369 | $this->assertEquals(2 * (pow(1024, 2)), return_bytes('2m')); | ||
370 | $this->assertEquals(2 * (pow(1024, 2)), return_bytes('2M')); | ||
371 | $this->assertEquals(2 * (pow(1024, 3)), return_bytes('2g')); | ||
372 | $this->assertEquals(2 * (pow(1024, 3)), return_bytes('2G')); | ||
373 | $this->assertEquals(374, return_bytes('374')); | ||
374 | $this->assertEquals(374, return_bytes(374)); | ||
375 | $this->assertEquals(0, return_bytes('0')); | ||
376 | $this->assertEquals(0, return_bytes(0)); | ||
377 | $this->assertEquals(-1, return_bytes('-1')); | ||
378 | $this->assertEquals(-1, return_bytes(-1)); | ||
379 | $this->assertEquals('', return_bytes('')); | ||
380 | } | ||
381 | |||
382 | /** | ||
383 | * Test human_bytes | ||
384 | */ | ||
385 | public function testHumanBytes() | ||
386 | { | ||
387 | $this->assertEquals('2kiB', human_bytes(2 * 1024)); | ||
388 | $this->assertEquals('2kiB', human_bytes(strval(2 * 1024))); | ||
389 | $this->assertEquals('2MiB', human_bytes(2 * (pow(1024, 2)))); | ||
390 | $this->assertEquals('2MiB', human_bytes(strval(2 * (pow(1024, 2))))); | ||
391 | $this->assertEquals('2GiB', human_bytes(2 * (pow(1024, 3)))); | ||
392 | $this->assertEquals('2GiB', human_bytes(strval(2 * (pow(1024, 3))))); | ||
393 | $this->assertEquals('374B', human_bytes(374)); | ||
394 | $this->assertEquals('374B', human_bytes('374')); | ||
395 | $this->assertEquals('232kiB', human_bytes(237481)); | ||
396 | $this->assertEquals('Unlimited', human_bytes('0')); | ||
397 | $this->assertEquals('Unlimited', human_bytes(0)); | ||
398 | $this->assertEquals('Setting not set', human_bytes('')); | ||
399 | } | ||
400 | |||
401 | /** | ||
402 | * Test get_max_upload_size with formatting | ||
403 | */ | ||
404 | public function testGetMaxUploadSize() | ||
405 | { | ||
406 | $this->assertEquals('1MiB', get_max_upload_size(2097152, '1024k')); | ||
407 | $this->assertEquals('1MiB', get_max_upload_size('1m', '2m')); | ||
408 | $this->assertEquals('100B', get_max_upload_size(100, 100)); | ||
409 | } | ||
410 | |||
411 | /** | ||
412 | * Test get_max_upload_size without formatting | ||
413 | */ | ||
414 | public function testGetMaxUploadSizeRaw() | ||
415 | { | ||
416 | $this->assertEquals('1048576', get_max_upload_size(2097152, '1024k', false)); | ||
417 | $this->assertEquals('1048576', get_max_upload_size('1m', '2m', false)); | ||
418 | $this->assertEquals('100', get_max_upload_size(100, 100, false)); | ||
419 | } | ||
329 | } | 420 | } |
diff --git a/tests/plugins/PluginReadityourselfTest.php b/tests/plugins/PluginReadityourselfTest.php deleted file mode 100644 index bbba9676..00000000 --- a/tests/plugins/PluginReadityourselfTest.php +++ /dev/null | |||
@@ -1,99 +0,0 @@ | |||
1 | <?php | ||
2 | use Shaarli\Config\ConfigManager; | ||
3 | |||
4 | /** | ||
5 | * PluginReadityourselfTest.php.php | ||
6 | */ | ||
7 | |||
8 | require_once 'plugins/readityourself/readityourself.php'; | ||
9 | |||
10 | /** | ||
11 | * Class PluginWallabagTest | ||
12 | * Unit test for the Wallabag plugin | ||
13 | */ | ||
14 | class PluginReadityourselfTest extends PHPUnit_Framework_TestCase | ||
15 | { | ||
16 | /** | ||
17 | * Reset plugin path | ||
18 | */ | ||
19 | public function setUp() | ||
20 | { | ||
21 | PluginManager::$PLUGINS_PATH = 'plugins'; | ||
22 | } | ||
23 | |||
24 | /** | ||
25 | * Test Readityourself init without errors. | ||
26 | */ | ||
27 | public function testReadityourselfInitNoError() | ||
28 | { | ||
29 | $conf = new ConfigManager(''); | ||
30 | $conf->set('plugins.READITYOUSELF_URL', 'value'); | ||
31 | $errors = readityourself_init($conf); | ||
32 | $this->assertEmpty($errors); | ||
33 | } | ||
34 | |||
35 | /** | ||
36 | * Test Readityourself init with errors. | ||
37 | */ | ||
38 | public function testReadityourselfInitError() | ||
39 | { | ||
40 | $conf = new ConfigManager(''); | ||
41 | $errors = readityourself_init($conf); | ||
42 | $this->assertNotEmpty($errors); | ||
43 | } | ||
44 | |||
45 | /** | ||
46 | * Test render_linklist hook. | ||
47 | */ | ||
48 | public function testReadityourselfLinklist() | ||
49 | { | ||
50 | $conf = new ConfigManager(''); | ||
51 | $conf->set('plugins.READITYOUSELF_URL', 'value'); | ||
52 | $str = 'http://randomstr.com/test'; | ||
53 | $data = array( | ||
54 | 'title' => $str, | ||
55 | 'links' => array( | ||
56 | array( | ||
57 | 'url' => $str, | ||
58 | ) | ||
59 | ) | ||
60 | ); | ||
61 | |||
62 | $data = hook_readityourself_render_linklist($data, $conf); | ||
63 | $link = $data['links'][0]; | ||
64 | // data shouldn't be altered | ||
65 | $this->assertEquals($str, $data['title']); | ||
66 | $this->assertEquals($str, $link['url']); | ||
67 | |||
68 | // plugin data | ||
69 | $this->assertEquals(1, count($link['link_plugin'])); | ||
70 | $this->assertNotFalse(strpos($link['link_plugin'][0], $str)); | ||
71 | } | ||
72 | |||
73 | /** | ||
74 | * Test without config: nothing should happened. | ||
75 | */ | ||
76 | public function testReadityourselfLinklistWithoutConfig() | ||
77 | { | ||
78 | $conf = new ConfigManager(''); | ||
79 | $conf->set('plugins.READITYOUSELF_URL', null); | ||
80 | $str = 'http://randomstr.com/test'; | ||
81 | $data = array( | ||
82 | 'title' => $str, | ||
83 | 'links' => array( | ||
84 | array( | ||
85 | 'url' => $str, | ||
86 | ) | ||
87 | ) | ||
88 | ); | ||
89 | |||
90 | $data = hook_readityourself_render_linklist($data, $conf); | ||
91 | $link = $data['links'][0]; | ||
92 | // data shouldn't be altered | ||
93 | $this->assertEquals($str, $data['title']); | ||
94 | $this->assertEquals($str, $link['url']); | ||
95 | |||
96 | // plugin data | ||
97 | $this->assertArrayNotHasKey('link_plugin', $link); | ||
98 | } | ||
99 | } | ||