]>
Commit | Line | Data |
---|---|---|
e26e2060 A |
1 | <?php |
2 | ||
3 | namespace Shaarli\Bookmark; | |
4 | ||
5 | use PHPUnit\Framework\TestCase; | |
e26e2060 A |
6 | use Shaarli\Config\ConfigManager; |
7 | use Shaarli\History; | |
8 | ||
9 | /** | |
10 | * Class BookmarkInitializerTest | |
11 | * @package Shaarli\Bookmark | |
12 | */ | |
13 | class BookmarkInitializerTest extends TestCase | |
14 | { | |
15 | /** @var string Path of test data store */ | |
16 | protected static $testDatastore = 'sandbox/datastore.php'; | |
17 | ||
18 | /** @var string Path of test config file */ | |
19 | protected static $testConf = 'sandbox/config'; | |
20 | ||
21 | /** | |
22 | * @var ConfigManager instance. | |
23 | */ | |
24 | protected $conf; | |
25 | ||
26 | /** | |
27 | * @var History instance. | |
28 | */ | |
29 | protected $history; | |
30 | ||
31 | /** @var BookmarkServiceInterface instance */ | |
32 | protected $bookmarkService; | |
33 | ||
34 | /** @var BookmarkInitializer instance */ | |
35 | protected $initializer; | |
36 | ||
37 | /** | |
38 | * Initialize an empty BookmarkFileService | |
39 | */ | |
40 | public function setUp() | |
41 | { | |
42 | if (file_exists(self::$testDatastore)) { | |
43 | unlink(self::$testDatastore); | |
44 | } | |
45 | ||
46 | copy('tests/utils/config/configJson.json.php', self::$testConf .'.json.php'); | |
47 | $this->conf = new ConfigManager(self::$testConf); | |
48 | $this->conf->set('resource.datastore', self::$testDatastore); | |
49 | $this->history = new History('sandbox/history.php'); | |
50 | $this->bookmarkService = new BookmarkFileService($this->conf, $this->history, true); | |
51 | ||
52 | $this->initializer = new BookmarkInitializer($this->bookmarkService); | |
53 | } | |
54 | ||
55 | /** | |
d6e5f04d | 56 | * Test initialize() with a data store containing bookmarks. |
e26e2060 | 57 | */ |
d6e5f04d | 58 | public function testInitializeNotEmptyDataStore(): void |
e26e2060 A |
59 | { |
60 | $refDB = new \ReferenceLinkDB(); | |
61 | $refDB->write(self::$testDatastore); | |
62 | $this->bookmarkService = new BookmarkFileService($this->conf, $this->history, true); | |
63 | $this->initializer = new BookmarkInitializer($this->bookmarkService); | |
64 | ||
65 | $this->initializer->initialize(); | |
66 | ||
67 | $this->assertEquals($refDB->countLinks() + 2, $this->bookmarkService->count()); | |
68 | $bookmark = $this->bookmarkService->get(43); | |
69 | $this->assertEquals(43, $bookmark->getId()); | |
70 | $this->assertEquals('My secret stuff... - Pastebin.com', $bookmark->getTitle()); | |
71 | $this->assertTrue($bookmark->isPrivate()); | |
72 | ||
73 | $bookmark = $this->bookmarkService->get(44); | |
74 | $this->assertEquals(44, $bookmark->getId()); | |
75 | $this->assertEquals( | |
76 | 'The personal, minimalist, super-fast, database free, bookmarking service', | |
77 | $bookmark->getTitle() | |
78 | ); | |
79 | $this->assertFalse($bookmark->isPrivate()); | |
80 | ||
d6e5f04d A |
81 | $this->bookmarkService->save(); |
82 | ||
e26e2060 A |
83 | // Reload from file |
84 | $this->bookmarkService = new BookmarkFileService($this->conf, $this->history, true); | |
85 | $this->assertEquals($refDB->countLinks() + 2, $this->bookmarkService->count()); | |
86 | $bookmark = $this->bookmarkService->get(43); | |
87 | $this->assertEquals(43, $bookmark->getId()); | |
88 | $this->assertEquals('My secret stuff... - Pastebin.com', $bookmark->getTitle()); | |
89 | $this->assertTrue($bookmark->isPrivate()); | |
90 | ||
91 | $bookmark = $this->bookmarkService->get(44); | |
92 | $this->assertEquals(44, $bookmark->getId()); | |
93 | $this->assertEquals( | |
94 | 'The personal, minimalist, super-fast, database free, bookmarking service', | |
95 | $bookmark->getTitle() | |
96 | ); | |
97 | $this->assertFalse($bookmark->isPrivate()); | |
98 | } | |
99 | ||
100 | /** | |
d6e5f04d | 101 | * Test initialize() with an a non existent datastore file . |
e26e2060 | 102 | */ |
d6e5f04d | 103 | public function testInitializeNonExistentDataStore(): void |
e26e2060 | 104 | { |
d6e5f04d A |
105 | $this->conf->set('resource.datastore', static::$testDatastore . '_empty'); |
106 | $this->bookmarkService = new BookmarkFileService($this->conf, $this->history, true); | |
107 | ||
e26e2060 A |
108 | $this->initializer->initialize(); |
109 | ||
110 | $this->assertEquals(2, $this->bookmarkService->count()); | |
111 | $bookmark = $this->bookmarkService->get(0); | |
112 | $this->assertEquals(0, $bookmark->getId()); | |
113 | $this->assertEquals('My secret stuff... - Pastebin.com', $bookmark->getTitle()); | |
114 | $this->assertTrue($bookmark->isPrivate()); | |
115 | ||
116 | $bookmark = $this->bookmarkService->get(1); | |
117 | $this->assertEquals(1, $bookmark->getId()); | |
118 | $this->assertEquals( | |
119 | 'The personal, minimalist, super-fast, database free, bookmarking service', | |
120 | $bookmark->getTitle() | |
121 | ); | |
122 | $this->assertFalse($bookmark->isPrivate()); | |
123 | } | |
124 | } |