/** * text2icons() method tests */ function test_text2icons() { $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) { $result = emoticons_engine::text2icons($body); $this->assertRegExp('/' . preg_quote($expected[0], '/') . '/', $result); $this->assertRegExp('/title="' . preg_quote($expected[1], '/') . '"/', $result); } }
/** * 'html2text' hook handler to replace image emoticons from TinyMCE * editor with plain text emoticons. * * This is executed on html2text action, i.e. when switching from HTML to text * in compose window (or similiar place). Also when generating alternative * text/plain part. */ function html2text($args) { $rcube = rcube::get_instance(); if ($rcube->action == 'html2text' || $rcube->action == 'send') { $this->load_config(); if (!$rcube->config->get('emoticons_compose', true)) { return $args; } require_once __DIR__ . '/emoticons_engine.php'; $args['body'] = emoticons_engine::icons2text($args['body']); } return $args; }