,string,string}> */ public static function provideJsonDots(): Traversable { $json = << $array */ #[DataProvider('provideJsonDots')] public static function testJsonDots(array $array, string $key, string $expected): void { $value = FreshRSS_dotNotation_Util::get($array, $key); self::assertSame($expected, $value); } public static function testConvertJsonToRssEscapesCategories(): void { FreshRSS_Context::initSystem(); Minz_Translate::init('en'); $json = << 'items', 'itemTitle' => 'title', 'itemUri' => 'url', 'itemCategories' => 'categories', ], 'Test'); self::assertIsString($rss); self::assertStringContainsString('News & Politics', $rss); self::assertStringContainsString('Arts & Culture', $rss); self::assertStringContainsString('Science & Tech', $rss); self::assertNotFalse(simplexml_load_string($rss), 'Output must be valid XML'); } }