From a76693ef4c57a12e2d09a48948840627f5543817 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Thu, 28 May 2015 04:27:49 -0400
Subject: [PATCH] Fix replacing :$, :-$, O:) and O:-) with emoticons (#1490408, #1490409)

---
 plugins/emoticons/tests/Emoticons.php |   42 +++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 41 insertions(+), 1 deletions(-)

diff --git a/plugins/emoticons/tests/Emoticons.php b/plugins/emoticons/tests/Emoticons.php
index e045022..14c7fd0 100644
--- a/plugins/emoticons/tests/Emoticons.php
+++ b/plugins/emoticons/tests/Emoticons.php
@@ -19,5 +19,45 @@
         $this->assertInstanceOf('emoticons', $plugin);
         $this->assertInstanceOf('rcube_plugin', $plugin);
     }
-}
 
+    /**
+     * replace() method tests
+     */
+    function test_replace()
+    {
+        $rcube  = rcube::get_instance();
+        $plugin = new emoticons($rcube->api);
+
+        $map = array(
+            ':D'  => array('smiley-laughing.gif',    ':D'    ),
+            ':-D' => array('smiley-laughing.gif',    ':-D'   ),
+            ':('  => array('smiley-frown.gif',       ':('    ),
+            ':-(' => array('smiley-frown.gif',       ':-('   ),
+            '8)'  => array('smiley-cool.gif',        '8)'    ),
+            '8-)' => array('smiley-cool.gif',        '8-)'   ),
+            ':O'  => array('smiley-surprised.gif',   ':O'    ),
+            ':-O' => array('smiley-surprised.gif',   ':-O'   ),
+            ':P'  => array('smiley-tongue-out.gif',  ':P'    ),
+            ':-P' => array('smiley-tongue-out.gif',  ':-P'   ),
+            ':@'  => array('smiley-yell.gif',        ':@'    ),
+            ':-@' => array('smiley-yell.gif',        ':-@'   ),
+            'O:)' => array('smiley-innocent.gif',    'O:)'   ),
+            'O:-)' => array('smiley-innocent.gif',    'O:-)' ),
+            ':)'  => array('smiley-smile.gif',       ':)'    ),
+            ':-)' => array('smiley-smile.gif',       ':-)'   ),
+            ':$'  => array('smiley-embarassed.gif',  ':$'    ),
+            ':-$' => array('smiley-embarassed.gif',  ':-$'   ),
+            ':*'  => array('smiley-kiss.gif',       ':*'     ),
+            ':-*' => array('smiley-kiss.gif',       ':-*'    ),
+            ':S'  => array('smiley-undecided.gif',   ':S'    ),
+            ':-S' => array('smiley-undecided.gif',   ':-S'   ),
+        );
+
+        foreach ($map as $body => $expected) {
+            $args = array('type' => 'plain', 'body' => $body);
+            $args = $plugin->replace($args);
+            $this->assertRegExp('/' . preg_quote($expected[0], '/') . '/', $args['body']);
+            $this->assertRegExp('/title="' . preg_quote($expected[1], '/') . '"/', $args['body']);
+        }
+    }
+}

--
Gitblit v1.9.1