From 5143c47e0feeff92ac3dabf9277e23c13a6379f0 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Wed, 18 Nov 2015 07:28:40 -0500
Subject: [PATCH] Fix rcube_utils::words_match() to work with mixed/invalid/binary content (T844)

---
 tests/Framework/Utils.php |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/tests/Framework/Utils.php b/tests/Framework/Utils.php
index b9b99ff..572a19c 100644
--- a/tests/Framework/Utils.php
+++ b/tests/Framework/Utils.php
@@ -395,6 +395,29 @@
     }
 
     /**
+     * rcube:utils::words_match()
+     */
+    function test_words_match()
+    {
+        $test = array(
+            array('', 'test', false),
+            array('test', 'test', true),
+            array('test', 'none', false),
+            array('test', 'test xyz', false),
+            array('test xyz', 'test xyz', true),
+            array('this is test', 'test', true),
+            // try some binary content
+            array('this is test ' . base64_decode('R0lGODlhDwAPAIAAAMDAwAAAACH5BAEAAAAALAAAAAAPAA8AQAINhI+py+0Po5y02otnAQA7'), 'test', true),
+            array('this is test ' . base64_decode('R0lGODlhDwAPAIAAAMDAwAAAACH5BAEAAAAALAAAAAAPAA8AQAINhI+py+0Po5y02otnAQA7'), 'none', false),
+        );
+
+        foreach ($test as $idx => $params) {
+            $result = rcube_utils::words_match($params[0], $params[1]);
+            $this->assertSame($params[2], $result, "words_match() at index $idx");
+        }
+    }
+
+    /**
      * rcube:utils::is_absolute_path()
      */
     function test_is_absolute_path()

--
Gitblit v1.9.1