aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/bookmark
diff options
context:
space:
mode:
authorArthurHoaro <arthur@hoa.ro>2019-08-10 12:07:55 +0200
committerGitHub <noreply@github.com>2019-08-10 12:07:55 +0200
commit14a7d73c2d65de496ef270f784de82c5f584cb3a (patch)
treeed4c86aafc3cfdf8c5402af3103124a5f8a3f22b /tests/bookmark
parentedcfe54c45aedd186cf5092295767d85bf37b780 (diff)
parent9f9627059a0b17de45a90e3c5fad9c1a49318151 (diff)
downloadShaarli-14a7d73c2d65de496ef270f784de82c5f584cb3a.tar.gz
Shaarli-14a7d73c2d65de496ef270f784de82c5f584cb3a.tar.zst
Shaarli-14a7d73c2d65de496ef270f784de82c5f584cb3a.zip
Merge pull request #1350 from ArthurHoaro/hotfix/sort-consistency
Make sure that bookmark sort is consistent, even with equal timestamps
Diffstat (limited to 'tests/bookmark')
-rw-r--r--tests/bookmark/LinkDBTest.php35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/bookmark/LinkDBTest.php b/tests/bookmark/LinkDBTest.php
index 2990a6b5..5bbdcea1 100644
--- a/tests/bookmark/LinkDBTest.php
+++ b/tests/bookmark/LinkDBTest.php
@@ -619,4 +619,39 @@ class LinkDBTest extends \PHPUnit\Framework\TestCase
619 619
620 $this->assertEquals($expected, $tags, var_export($tags, true)); 620 $this->assertEquals($expected, $tags, var_export($tags, true));
621 } 621 }
622
623 /**
624 * Make sure that bookmarks with the same timestamp have a consistent order:
625 * if their creation date is equal, bookmarks are sorted by ID DESC.
626 */
627 public function testConsistentOrder()
628 {
629 $nextId = 42;
630 $creation = DateTime::createFromFormat('Ymd_His', '20190807_130444');
631 $linkDB = new LinkDB(self::$testDatastore, true, false);
632 for ($i = 0; $i < 4; ++$i) {
633 $linkDB[$nextId + $i] = [
634 'id' => $nextId + $i,
635 'url' => 'http://'. $i,
636 'created' => $creation,
637 'title' => true,
638 'description' => true,
639 'tags' => true,
640 ];
641 }
642
643 // Check 4 new links 4 times
644 for ($i = 0; $i < 4; ++$i) {
645 $linkDB->save('tests');
646 $linkDB = new LinkDB(self::$testDatastore, true, false);
647 $count = 3;
648 foreach ($linkDB as $link) {
649 $this->assertEquals($nextId + $count, $link['id']);
650 $this->assertEquals('http://'. $count, $link['url']);
651 if (--$count < 0) {
652 break;
653 }
654 }
655 }
656 }
622} 657}