From bd0551b22076b82a6d49e9f7a2b2e0c90a1b2326 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Fri, 05 Feb 2016 07:25:27 -0500
Subject: [PATCH] Secure also downloads of addressbook exports, managesieve script exports and Enigma keys exports

---
 plugins/managesieve/tests/Parser.php |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/plugins/managesieve/tests/Parser.php b/plugins/managesieve/tests/Parser.php
index 06b644b..33edce0 100644
--- a/plugins/managesieve/tests/Parser.php
+++ b/plugins/managesieve/tests/Parser.php
@@ -5,7 +5,7 @@
 
     function setUp()
     {
-        include_once dirname(__FILE__) . '/../lib/rcube_sieve_script.php';
+        include_once __DIR__ . '/../lib/Roundcube/rcube_sieve_script.php';
     }
 
     /**
@@ -15,7 +15,15 @@
      */
     function test_parser($input, $output, $message)
     {
-        $script = new rcube_sieve_script($input);
+        // get capabilities list from the script
+        $caps = array();
+        if (preg_match('/require \[([a-z0-9", ]+)\]/', $input, $m)) {
+            foreach (explode(',', $m[1]) as $cap) {
+                $caps[] = trim($cap, '" ');
+            }
+        }
+
+        $script = new rcube_sieve_script($input, $caps);
         $result = $script->as_text();
 
         $this->assertEquals(trim($result), trim($output), $message);
@@ -26,12 +34,12 @@
      */
     function data_parser()
     {
-        $dir_path = realpath(dirname(__FILE__) . '/src');
+        $dir_path = realpath(__DIR__ . '/src');
         $dir      = opendir($dir_path);
         $result   = array();
 
         while ($file = readdir($dir)) {
-            if (preg_match('/^[a-z_]+$/', $file)) {
+            if (preg_match('/^[a-z0-9_]+$/', $file)) {
                 $input = file_get_contents($dir_path . '/' . $file);
 
                 if (file_exists($dir_path . '/' . $file . '.out')) {

--
Gitblit v1.9.1