Browse Source

Merge branch 'master' of https://github.com/derek-wangpch/converse.js into derek-wangpch-master

JC Brand 11 năm trước cách đây
mục cha
commit
75a94fb2b7
2 tập tin đã thay đổi với 26 bổ sung2 xóa
  1. 2 2
      converse.js
  2. 24 0
      spec/chatbox.js

+ 2 - 2
converse.js

@@ -60,6 +60,7 @@
             if (this.length > 0) {
             if (this.length > 0) {
                 this.each(function(i, obj) {
                 this.each(function(i, obj) {
                     var text = $(obj).html();
                     var text = $(obj).html();
+                    text = text.replace(/&gt;:\)/g, '<span class="emoticon icon-evil"></span>');
                     text = text.replace(/:\)/g, '<span class="emoticon icon-smiley"></span>');
                     text = text.replace(/:\)/g, '<span class="emoticon icon-smiley"></span>');
                     text = text.replace(/:\-\)/g, '<span class="emoticon icon-smiley"></span>');
                     text = text.replace(/:\-\)/g, '<span class="emoticon icon-smiley"></span>');
                     text = text.replace(/;\)/g, '<span class="emoticon icon-wink"></span>');
                     text = text.replace(/;\)/g, '<span class="emoticon icon-wink"></span>');
@@ -71,7 +72,6 @@
                     text = text.replace(/:p/g, '<span class="emoticon icon-tongue"></span>');
                     text = text.replace(/:p/g, '<span class="emoticon icon-tongue"></span>');
                     text = text.replace(/:\-p/g, '<span class="emoticon icon-tongue"></span>');
                     text = text.replace(/:\-p/g, '<span class="emoticon icon-tongue"></span>');
                     text = text.replace(/8\)/g, '<span class="emoticon icon-cool"></span>');
                     text = text.replace(/8\)/g, '<span class="emoticon icon-cool"></span>');
-                    text = text.replace(/&gt;:\)/g, '<span class="emoticon icon-evil"></span>');
                     text = text.replace(/:S/g, '<span class="emoticon icon-confused"></span>');
                     text = text.replace(/:S/g, '<span class="emoticon icon-confused"></span>');
                     text = text.replace(/:\\/g, '<span class="emoticon icon-wondering"></span>');
                     text = text.replace(/:\\/g, '<span class="emoticon icon-wondering"></span>');
                     text = text.replace(/:\/ /g, '<span class="emoticon icon-wondering"></span>');
                     text = text.replace(/:\/ /g, '<span class="emoticon icon-wondering"></span>');
@@ -82,7 +82,7 @@
                     text = text.replace(/:\-O/g, '<span class="emoticon icon-shocked"></span>');
                     text = text.replace(/:\-O/g, '<span class="emoticon icon-shocked"></span>');
                     text = text.replace(/\=\-O/g, '<span class="emoticon icon-shocked"></span>');
                     text = text.replace(/\=\-O/g, '<span class="emoticon icon-shocked"></span>');
                     text = text.replace(/\(\^.\^\)b/g, '<span class="emoticon icon-thumbs-up"></span>');
                     text = text.replace(/\(\^.\^\)b/g, '<span class="emoticon icon-thumbs-up"></span>');
-                    text = text.replace(/<3/g, '<span class="emoticon icon-heart"></span>');
+                    text = text.replace(/&lt;3/g, '<span class="emoticon icon-heart"></span>');
                     $(obj).html(text);
                     $(obj).html(text);
                 });
                 });
             }
             }

+ 24 - 0
spec/chatbox.js

@@ -626,6 +626,30 @@
                     expect(msg.html()).toEqual('This message contains a hyperlink: <a target="_blank" href="http://www.opkode.com">www.opkode.com</a>');
                     expect(msg.html()).toEqual('This message contains a hyperlink: <a target="_blank" href="http://www.opkode.com">www.opkode.com</a>');
                 }, converse));
                 }, converse));
 
 
+                it("should display emoticons correctly", $.proxy(function () {
+                    var contact_jid = mock.cur_names[0].replace(' ','.').toLowerCase() + '@localhost';
+                    utils.openChatBoxFor(contact_jid);
+                    var view = this.chatboxviews.get(contact_jid);
+                    var messages = [':)', ';)', ':D', ':P', '8)', '>:)', ':S', ':\\', '>:(', ':(', ':O', '(^.^)b', '<3'];
+                    var emoticons = [
+                        '<span class="emoticon icon-smiley"></span>', '<span class="emoticon icon-wink"></span>',
+                        '<span class="emoticon icon-grin"></span>', '<span class="emoticon icon-tongue"></span>',
+                        '<span class="emoticon icon-cool"></span>', '<span class="emoticon icon-evil"></span>',
+                        '<span class="emoticon icon-confused"></span>', '<span class="emoticon icon-wondering"></span>',
+                        '<span class="emoticon icon-angry"></span>', '<span class="emoticon icon-sad"></span>',
+                        '<span class="emoticon icon-shocked"></span>', '<span class="emoticon icon-thumbs-up"></span>',
+                        '<span class="emoticon icon-heart"></span>'
+                        ];
+                    spyOn(view, 'sendMessage').andCallThrough();
+                    for (var i = 0; i < messages.length; i++) {
+                        var message = messages[i];
+                        utils.sendMessage(view, message);
+                        expect(view.sendMessage).toHaveBeenCalled();
+                        var msg = view.$el.find('.chat-content').find('.chat-message').last().find('.chat-message-content');
+                        expect(msg.html()).toEqual(emoticons[i]);
+                    }
+                }, converse));
+
                 it("will have properly escaped URLs", $.proxy(function () {
                 it("will have properly escaped URLs", $.proxy(function () {
                     var contact_jid = mock.cur_names[0].replace(' ','.').toLowerCase() + '@localhost';
                     var contact_jid = mock.cur_names[0].replace(' ','.').toLowerCase() + '@localhost';
                     utils.openChatBoxFor(contact_jid);
                     utils.openChatBoxFor(contact_jid);