diff options
Diffstat (limited to 'tests/utils')
-rw-r--r-- | tests/utils/FakeConfigManager.php | 12 | ||||
-rw-r--r-- | tests/utils/ReferenceHistory.php | 82 | ||||
-rw-r--r-- | tests/utils/ReferenceLinkDB.php | 51 | ||||
-rw-r--r-- | tests/utils/config/configJson.json.php | 3 | ||||
-rw-r--r-- | tests/utils/config/emptyConfigPhp.php | 1 | ||||
-rw-r--r-- | tests/utils/languages/fr/LC_MESSAGES/test.mo | bin | 0 -> 456 bytes | |||
-rw-r--r-- | tests/utils/languages/fr/LC_MESSAGES/test.po | 19 |
7 files changed, 165 insertions, 3 deletions
diff --git a/tests/utils/FakeConfigManager.php b/tests/utils/FakeConfigManager.php new file mode 100644 index 00000000..f29760cb --- /dev/null +++ b/tests/utils/FakeConfigManager.php | |||
@@ -0,0 +1,12 @@ | |||
1 | <?php | ||
2 | |||
3 | /** | ||
4 | * Fake ConfigManager | ||
5 | */ | ||
6 | class FakeConfigManager | ||
7 | { | ||
8 | public static function get($key) | ||
9 | { | ||
10 | return $key; | ||
11 | } | ||
12 | } | ||
diff --git a/tests/utils/ReferenceHistory.php b/tests/utils/ReferenceHistory.php new file mode 100644 index 00000000..75cbb326 --- /dev/null +++ b/tests/utils/ReferenceHistory.php | |||
@@ -0,0 +1,82 @@ | |||
1 | <?php | ||
2 | |||
3 | /** | ||
4 | * Populates a reference history | ||
5 | */ | ||
6 | class ReferenceHistory | ||
7 | { | ||
8 | private $count; | ||
9 | |||
10 | private $history = []; | ||
11 | |||
12 | /** | ||
13 | * Populates the test DB with reference data | ||
14 | */ | ||
15 | public function __construct() | ||
16 | { | ||
17 | $this->addEntry( | ||
18 | History::DELETED, | ||
19 | DateTime::createFromFormat('Ymd_His', '20170303_121216'), | ||
20 | 124 | ||
21 | ); | ||
22 | |||
23 | $this->addEntry( | ||
24 | History::SETTINGS, | ||
25 | DateTime::createFromFormat('Ymd_His', '20170302_121215') | ||
26 | ); | ||
27 | |||
28 | $this->addEntry( | ||
29 | History::UPDATED, | ||
30 | DateTime::createFromFormat('Ymd_His', '20170301_121214'), | ||
31 | 123 | ||
32 | ); | ||
33 | |||
34 | $this->addEntry( | ||
35 | History::CREATED, | ||
36 | DateTime::createFromFormat('Ymd_His', '20170201_121214'), | ||
37 | 124 | ||
38 | ); | ||
39 | |||
40 | $this->addEntry( | ||
41 | History::CREATED, | ||
42 | DateTime::createFromFormat('Ymd_His', '20170101_121212'), | ||
43 | 123 | ||
44 | ); | ||
45 | } | ||
46 | |||
47 | /** | ||
48 | * Adds a new history entry | ||
49 | * | ||
50 | * @param string $event Event identifier | ||
51 | * @param DateTime $datetime creation date | ||
52 | * @param int $id optional: related link ID | ||
53 | */ | ||
54 | protected function addEntry($event, $datetime, $id = null) | ||
55 | { | ||
56 | $link = [ | ||
57 | 'event' => $event, | ||
58 | 'datetime' => $datetime, | ||
59 | 'id' => $id, | ||
60 | ]; | ||
61 | $this->history[] = $link; | ||
62 | $this->count++; | ||
63 | } | ||
64 | |||
65 | /** | ||
66 | * Writes data to the datastore | ||
67 | * | ||
68 | * @param string $filename write history content to. | ||
69 | */ | ||
70 | public function write($filename) | ||
71 | { | ||
72 | FileUtils::writeFlatDB($filename, $this->history); | ||
73 | } | ||
74 | |||
75 | /** | ||
76 | * Returns the number of links in the reference data | ||
77 | */ | ||
78 | public function count() | ||
79 | { | ||
80 | return $this->count; | ||
81 | } | ||
82 | } | ||
diff --git a/tests/utils/ReferenceLinkDB.php b/tests/utils/ReferenceLinkDB.php index 36d58c68..e887aa78 100644 --- a/tests/utils/ReferenceLinkDB.php +++ b/tests/utils/ReferenceLinkDB.php | |||
@@ -4,7 +4,7 @@ | |||
4 | */ | 4 | */ |
5 | class ReferenceLinkDB | 5 | class ReferenceLinkDB |
6 | { | 6 | { |
7 | public static $NB_LINKS_TOTAL = 8; | 7 | public static $NB_LINKS_TOTAL = 9; |
8 | 8 | ||
9 | private $_links = array(); | 9 | private $_links = array(); |
10 | private $_publicCount = 0; | 10 | private $_publicCount = 0; |
@@ -38,6 +38,16 @@ class ReferenceLinkDB | |||
38 | ); | 38 | ); |
39 | 39 | ||
40 | $this->addLink( | 40 | $this->addLink( |
41 | 9, | ||
42 | 'PSR-2: Coding Style Guide', | ||
43 | 'http://www.php-fig.org/psr/psr-2/', | ||
44 | 'This guide extends and expands on PSR-1, the basic coding standard.', | ||
45 | 0, | ||
46 | DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, '20121206_152312'), | ||
47 | '' | ||
48 | ); | ||
49 | |||
50 | $this->addLink( | ||
41 | 8, | 51 | 8, |
42 | 'Free as in Freedom 2.0 @website', | 52 | 'Free as in Freedom 2.0 @website', |
43 | 'https://static.fsf.org/nosvn/faif-2.0.pdf', | 53 | 'https://static.fsf.org/nosvn/faif-2.0.pdf', |
@@ -56,7 +66,7 @@ class ReferenceLinkDB | |||
56 | 0, | 66 | 0, |
57 | DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, '20130614_184135'), | 67 | DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, '20130614_184135'), |
58 | 'gnu media web .hidden hashtag', | 68 | 'gnu media web .hidden hashtag', |
59 | null, | 69 | DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, '20130615_184230'), |
60 | 'IuWvgA' | 70 | 'IuWvgA' |
61 | ); | 71 | ); |
62 | 72 | ||
@@ -131,6 +141,7 @@ class ReferenceLinkDB | |||
131 | */ | 141 | */ |
132 | public function write($filename) | 142 | public function write($filename) |
133 | { | 143 | { |
144 | $this->reorder(); | ||
134 | file_put_contents( | 145 | file_put_contents( |
135 | $filename, | 146 | $filename, |
136 | '<?php /* '.base64_encode(gzdeflate(serialize($this->_links))).' */ ?>' | 147 | '<?php /* '.base64_encode(gzdeflate(serialize($this->_links))).' */ ?>' |
@@ -138,6 +149,27 @@ class ReferenceLinkDB | |||
138 | } | 149 | } |
139 | 150 | ||
140 | /** | 151 | /** |
152 | * Reorder links by creation date (newest first). | ||
153 | * | ||
154 | * Also update the urls and ids mapping arrays. | ||
155 | * | ||
156 | * @param string $order ASC|DESC | ||
157 | */ | ||
158 | public function reorder($order = 'DESC') | ||
159 | { | ||
160 | // backward compatibility: ignore reorder if the the `created` field doesn't exist | ||
161 | if (! isset(array_values($this->_links)[0]['created'])) { | ||
162 | return; | ||
163 | } | ||
164 | |||
165 | $order = $order === 'ASC' ? -1 : 1; | ||
166 | // Reorder array by dates. | ||
167 | usort($this->_links, function($a, $b) use ($order) { | ||
168 | return $a['created'] < $b['created'] ? 1 * $order : -1 * $order; | ||
169 | }); | ||
170 | } | ||
171 | |||
172 | /** | ||
141 | * Returns the number of links in the reference data | 173 | * Returns the number of links in the reference data |
142 | */ | 174 | */ |
143 | public function countLinks() | 175 | public function countLinks() |
@@ -161,8 +193,23 @@ class ReferenceLinkDB | |||
161 | return $this->_privateCount; | 193 | return $this->_privateCount; |
162 | } | 194 | } |
163 | 195 | ||
196 | /** | ||
197 | * Returns the number of links without tag | ||
198 | */ | ||
199 | public function countUntaggedLinks() | ||
200 | { | ||
201 | $cpt = 0; | ||
202 | foreach ($this->_links as $link) { | ||
203 | if (empty($link['tags'])) { | ||
204 | ++$cpt; | ||
205 | } | ||
206 | } | ||
207 | return $cpt; | ||
208 | } | ||
209 | |||
164 | public function getLinks() | 210 | public function getLinks() |
165 | { | 211 | { |
212 | $this->reorder(); | ||
166 | return $this->_links; | 213 | return $this->_links; |
167 | } | 214 | } |
168 | 215 | ||
diff --git a/tests/utils/config/configJson.json.php b/tests/utils/config/configJson.json.php index 06a302e8..9c9288f3 100644 --- a/tests/utils/config/configJson.json.php +++ b/tests/utils/config/configJson.json.php | |||
@@ -24,7 +24,8 @@ | |||
24 | }, | 24 | }, |
25 | "resource": { | 25 | "resource": { |
26 | "datastore": "tests\/utils\/config\/datastore.php", | 26 | "datastore": "tests\/utils\/config\/datastore.php", |
27 | "data_dir": "tests\/utils\/config" | 27 | "data_dir": "sandbox/", |
28 | "raintpl_tpl": "tpl/" | ||
28 | }, | 29 | }, |
29 | "plugins": { | 30 | "plugins": { |
30 | "WALLABAG_VERSION": 1 | 31 | "WALLABAG_VERSION": 1 |
diff --git a/tests/utils/config/emptyConfigPhp.php b/tests/utils/config/emptyConfigPhp.php new file mode 100644 index 00000000..b3d9bbc7 --- /dev/null +++ b/tests/utils/config/emptyConfigPhp.php | |||
@@ -0,0 +1 @@ | |||
<?php | |||
diff --git a/tests/utils/languages/fr/LC_MESSAGES/test.mo b/tests/utils/languages/fr/LC_MESSAGES/test.mo new file mode 100644 index 00000000..416c7831 --- /dev/null +++ b/tests/utils/languages/fr/LC_MESSAGES/test.mo | |||
Binary files differ | |||
diff --git a/tests/utils/languages/fr/LC_MESSAGES/test.po b/tests/utils/languages/fr/LC_MESSAGES/test.po new file mode 100644 index 00000000..89a4fd9b --- /dev/null +++ b/tests/utils/languages/fr/LC_MESSAGES/test.po | |||
@@ -0,0 +1,19 @@ | |||
1 | msgid "" | ||
2 | msgstr "" | ||
3 | "Project-Id-Version: Extension test\n" | ||
4 | "POT-Creation-Date: 2017-05-20 13:54+0200\n" | ||
5 | "PO-Revision-Date: 2017-05-20 14:16+0200\n" | ||
6 | "Last-Translator: \n" | ||
7 | "Language-Team: Shaarli\n" | ||
8 | "Language: fr_FR\n" | ||
9 | "MIME-Version: 1.0\n" | ||
10 | "Content-Type: text/plain; charset=UTF-8\n" | ||
11 | "Content-Transfer-Encoding: 8bit\n" | ||
12 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" | ||
13 | "X-Generator: Poedit 2.0.1\n" | ||
14 | |||
15 | msgid "car" | ||
16 | msgstr "voiture" | ||
17 | |||
18 | msgid "Search" | ||
19 | msgstr "Fouille" | ||