Forráskód Böngészése

Test carbons of user's own sent messages.

Found and fixed a bug in the process.
JC Brand 10 éve
szülő
commit
6736a5bce4
2 módosított fájl, 40 hozzáadás és 0 törlés
  1. 1 0
      converse.js
  2. 39 0
      spec/chatbox.js

+ 1 - 0
converse.js

@@ -3319,6 +3319,7 @@
                 } else if ($sent.length) {
                 } else if ($sent.length) {
                     $message = $sent.children('forwarded').children('message');
                     $message = $sent.children('forwarded').children('message');
                     from_jid = $message.attr('from');
                     from_jid = $message.attr('from');
+                    to_jid = $message.attr('to');
                 }
                 }
                 from_bare_jid = Strophe.getBareJidFromJid(from_jid);
                 from_bare_jid = Strophe.getBareJidFromJid(from_jid);
                 from_resource = Strophe.getResourceFromJid(from_jid);
                 from_resource = Strophe.getResourceFromJid(from_jid);

+ 39 - 0
spec/chatbox.js

@@ -514,6 +514,45 @@
                     expect(sender_txt.match(/^[0-9][0-9]:[0-9][0-9] /)).toBeTruthy();
                     expect(sender_txt.match(/^[0-9][0-9]:[0-9][0-9] /)).toBeTruthy();
                 });
                 });
 
 
+                it("can be a carbon message that this user sent from a different client, as defined in XEP-0280", function () {
+                    // Send a message from a different resource
+                    spyOn(converse, 'log');
+                    var msgtext = 'This is a sent carbon message';
+                    var recipient_jid = mock.cur_names[5].replace(/ /g,'.').toLowerCase() + '@localhost';
+                    var msg = $msg({
+                            'from': converse.bare_jid,
+                            'id': (new Date()).getTime(),
+                            'to': converse.connection.jid,
+                            'type': 'chat',
+                            'xmlns': 'jabber:client'
+                        }).c('sent', {'xmlns': 'urn:xmpp:carbons:2'})
+                          .c('forwarded', {'xmlns': 'urn:xmpp:forward:0'})
+                          .c('message', {
+                                'xmlns': 'jabber:client',
+                                'from': converse.bare_jid+'/another-resource',
+                                'to': recipient_jid,
+                                'type': 'chat'
+                        }).c('body').t(msgtext).tree();
+                    converse.chatboxes.onMessage(msg);
+
+                    // Check that the chatbox and its view now exist
+                    var chatbox = converse.chatboxes.get(recipient_jid);
+                    var chatboxview = converse.chatboxviews.get(recipient_jid);
+                    expect(chatbox).toBeDefined();
+                    expect(chatboxview).toBeDefined();
+                    // Check that the message was received and check the message parameters
+                    expect(chatbox.messages.length).toEqual(1);
+                    var msg_obj = chatbox.messages.models[0];
+                    expect(msg_obj.get('message')).toEqual(msgtext);
+                    expect(msg_obj.get('fullname')).toEqual(mock.cur_names[5].split(' ')[0]);
+                    expect(msg_obj.get('sender')).toEqual('me');
+                    expect(msg_obj.get('delayed')).toEqual(false);
+                    // Now check that the message appears inside the chatbox in the DOM
+                    var $chat_content = chatboxview.$el.find('.chat-content');
+                    var msg_txt = $chat_content.find('.chat-message').find('.chat-message-content').text();
+                    expect(msg_txt).toEqual(msgtext);
+                });
+
                 it("received for a minimized chat box will increment a counter on its header", $.proxy(function () {
                 it("received for a minimized chat box will increment a counter on its header", $.proxy(function () {
                     var contact_name = mock.cur_names[0];
                     var contact_name = mock.cur_names[0];
                     var contact_jid = contact_name.replace(/ /g,'.').toLowerCase() + '@localhost';
                     var contact_jid = contact_name.replace(/ /g,'.').toLowerCase() + '@localhost';