diff options
author | defa <defa@so36.net> | 2012-09-05 14:48:55 +0200 |
---|---|---|
committer | defa <defa@so36.net> | 2012-09-05 14:48:55 +0200 |
commit | 921408eba600a7dc51271c35480e9114cac5ecec (patch) | |
tree | 8728fecce574a1a70f623311b315360564708360 /plugins/managesieve/tests/Parser.php | |
parent | 5c603c4032bf71792e7accd80e2b7d0e78d445f8 (diff) | |
parent | e263994adc3f8f331c6167da1665c1920a5142f9 (diff) |
Merge https://github.com/roundcube/roundcubemail into crypt_hash_branch
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..00915cc20 --- /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-z0-9_]+$/', $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; + } +} |