diff options
author | Paweł Słowik <pawel.slowik@iq.pl> | 2012-09-03 15:10:26 +0200 |
---|---|---|
committer | Paweł Słowik <pawel.slowik@iq.pl> | 2012-09-03 15:10:26 +0200 |
commit | 197a3e6faf9258c3cc78810081f3368325045d57 (patch) | |
tree | a51ad6b2b2701e7746b53f4507fded64821a0ba5 /plugins/managesieve/tests/Parser.php | |
parent | ffb160147a324f4b8744d13c97e1ca4177a8167a (diff) | |
parent | 4bb0bffefe3d0772f10bfd4acc3e8ccb1193211d (diff) |
Merge branch 'master' of https://github.com/roundcube/roundcubemail
Diffstat (limited to 'plugins/managesieve/tests/Parser.php')
-rw-r--r-- | plugins/managesieve/tests/Parser.php | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/plugins/managesieve/tests/Parser.php b/plugins/managesieve/tests/Parser.php new file mode 100644 index 000000000..06b644b34 --- /dev/null +++ b/plugins/managesieve/tests/Parser.php @@ -0,0 +1,54 @@ +<?php + +class Parser extends PHPUnit_Framework_TestCase +{ + + function setUp() + { + include_once dirname(__FILE__) . '/../lib/rcube_sieve_script.php'; + } + + /** + * Sieve script parsing + * + * @dataProvider data_parser + */ + function test_parser($input, $output, $message) + { + $script = new rcube_sieve_script($input); + $result = $script->as_text(); + + $this->assertEquals(trim($result), trim($output), $message); + } + + /** + * Data provider for test_parser() + */ + function data_parser() + { + $dir_path = realpath(dirname(__FILE__) . '/src'); + $dir = opendir($dir_path); + $result = array(); + + while ($file = readdir($dir)) { + if (preg_match('/^[a-z_]+$/', $file)) { + $input = file_get_contents($dir_path . '/' . $file); + + if (file_exists($dir_path . '/' . $file . '.out')) { + $output = file_get_contents($dir_path . '/' . $file . '.out'); + } + else { + $output = $input; + } + + $result[] = array( + 'input' => $input, + 'output' => $output, + 'message' => "Error in parsing '$file' file", + ); + } + } + + return $result; + } +} |