diff options
author | ArthurHoaro <arthur@hoa.ro> | 2017-01-16 12:31:08 +0100 |
---|---|---|
committer | ArthurHoaro <arthur@hoa.ro> | 2017-03-21 20:29:20 +0100 |
commit | 4306b184c4471825f916d895b047ed03fdf58985 (patch) | |
tree | ae4ffd760d74e58bf469f743076aecf838f634f2 /tests/NetscapeBookmarkUtils/BookmarkImportTest.php | |
parent | b2306b0c783365e3f8110ae25bc93f2630b8b2c8 (diff) | |
download | Shaarli-4306b184c4471825f916d895b047ed03fdf58985.tar.gz Shaarli-4306b184c4471825f916d895b047ed03fdf58985.tar.zst Shaarli-4306b184c4471825f916d895b047ed03fdf58985.zip |
History mechanism
Use case: rest API service
* saved by default in data/history
* same format as datastore.php
* traced events:
* save/edit/delete link
* change settings or plugins settings
* rename tag
Diffstat (limited to 'tests/NetscapeBookmarkUtils/BookmarkImportTest.php')
-rw-r--r-- | tests/NetscapeBookmarkUtils/BookmarkImportTest.php | 81 |
1 files changed, 64 insertions, 17 deletions
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 | } |