aboutsummaryrefslogtreecommitdiff
path: root/tests/app/Utils/dotNotationUtilTest.php
diff options
context:
space:
mode:
authorGravatar maTh <1645099+math-GH@users.noreply.github.com> 2024-04-18 14:00:17 +0200
committerGravatar GitHub <noreply@github.com> 2024-04-18 14:00:17 +0200
commit3261b7bafbb8e7cd0003c0cfbf26e4d4a4b65def (patch)
treea9b4dcb39a969df011923151263e29f215db4c40 /tests/app/Utils/dotNotationUtilTest.php
parent0ffcf41f9371b9321856d2c709cf7bcb4f7c3c60 (diff)
i18n improved: dotted path -> dot-notation (#6317)
* dotted path -> dot-notation * dot-notation -> dot notation * rename json_dotpath => json_dotnotation * Update app/i18n/fr/sub.php Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> * Update app/i18n/fr/sub.php Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> * Update app/i18n/fr/sub.php Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> * Update app/i18n/nl/sub.php Co-authored-by: Frans de Jonge <fransdejonge@gmail.com> * Update app/i18n/nl/sub.php Co-authored-by: Frans de Jonge <fransdejonge@gmail.com> * Update app/i18n/nl/sub.php Co-authored-by: Frans de Jonge <fransdejonge@gmail.com> * Update app/i18n/nl/sub.php Co-authored-by: Frans de Jonge <fransdejonge@gmail.com> * Rename corresponding class --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
Diffstat (limited to 'tests/app/Utils/dotNotationUtilTest.php')
-rw-r--r--tests/app/Utils/dotNotationUtilTest.php44
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/app/Utils/dotNotationUtilTest.php b/tests/app/Utils/dotNotationUtilTest.php
new file mode 100644
index 000000000..a04ddba4f
--- /dev/null
+++ b/tests/app/Utils/dotNotationUtilTest.php
@@ -0,0 +1,44 @@
+<?php
+declare(strict_types=1);
+
+class dotNotationUtilTest extends PHPUnit\Framework\TestCase {
+
+ /**
+ * @return Traversable<array{array<string,mixed>,string,string}>
+ */
+ public function provideJsonDots(): Traversable {
+ $json = <<<json
+ {
+ "hello": "world",
+ "deeper": {
+ "hello": "again"
+ },
+ "items": [
+ {
+ "meta": {"title": "first"}
+ },
+ {
+ "meta": {"title": "second"}
+ }
+ ]
+ }
+ json;
+ $array = json_decode($json, true);
+
+ yield [$array, 'hello', 'world'];
+ yield [$array, 'deeper.hello', 'again'];
+ yield [$array, 'items.0.meta.title', 'first'];
+ yield [$array, 'items[0].meta.title', 'first'];
+ yield [$array, 'items.1.meta.title', 'second'];
+ yield [$array, 'items[1].meta.title', 'second'];
+ }
+
+ /**
+ * @dataProvider provideJsonDots
+ * @param array<string,mixed> $array
+ */
+ public function testJsonDots(array $array, string $key, string $expected): void {
+ $value = FreshRSS_dotNotation_Util::get($array, $key);
+ self::assertEquals($expected, $value);
+ }
+}