diff --git a/lib/Sieve/SieveUtils.php b/lib/Sieve/SieveUtils.php new file mode 100644 index 0000000000..a6e9b5c652 --- /dev/null +++ b/lib/Sieve/SieveUtils.php @@ -0,0 +1,38 @@ +assertSame($expected, $actual); + } + + public static function providerEscapeString(): array { + return [ + ['foo"bar', 'foo\"bar'], + ['foo\\bar', 'foo\\\\bar'], + ['foo"\\bar', 'foo\"\\\\bar'], + ['foobar', 'foobar'], + ['', ''], + ]; + } + + /** + * @dataProvider providerStringList + */ + public function testStringList(array $values, string $expected): void { + $actual = SieveUtils::stringList($values); + $this->assertSame($expected, $actual); + } + + public static function providerStringList(): array { + return [ + [['Hello', 'World'], '["Hello", "World"]'], + [['foo"bar', 'foo\\bar'], '["foo\"bar", "foo\\\\bar"]'], + [['foo"bar', 'foo\\bar', 'foo"\\bar'], '["foo\"bar", "foo\\\\bar", "foo\"\\\\bar"]'], + [['foobar'], '["foobar"]'], + [[], '[""]'], + ]; + } +}