JC Brand před 5 měsíci
rodič
revize
c739d31ab2

+ 2 - 2
src/plugins/chatview/tests/deprecated-retractions.js

@@ -47,8 +47,8 @@ describe('A received chat message', function () {
             const message = view.model.messages.at(0);
             expect(message.get('retracted')).toBeTruthy();
             expect(view.querySelectorAll('.chat-msg--retracted').length).toBe(1);
-            const msg_el = view.querySelector('.chat-msg--retracted .chat-msg__message');
-            expect(msg_el.textContent.trim()).toBe('Mercutio has removed this message');
+            const msg_el = view.querySelector('.chat-msg--retracted .chat-msg__message .retraction');
+            expect(msg_el.firstElementChild.textContent.trim()).toBe('Mercutio has removed a message');
         })
     );
 });

+ 6 - 55
src/plugins/chatview/tests/retractions.js

@@ -47,8 +47,8 @@ describe('A sent chat message', function () {
             expect(message.get('retracted')).toBeTruthy();
             expect(message.get('editable')).toBeFalsy();
             expect(view.querySelectorAll('.chat-msg--retracted').length).toBe(1);
-            const el = view.querySelector('.chat-msg--retracted .chat-msg__message');
-            expect(el.textContent.trim()).toBe('You have removed this message');
+            const el = view.querySelector('.chat-msg--retracted .chat-msg__message .retraction');
+            expect(el.firstElementChild.textContent.trim()).toBe('You have removed a message');
         })
     );
 });
@@ -96,8 +96,8 @@ describe('A received chat message', function () {
             const message = view.model.messages.at(0);
             expect(message.get('retracted')).toBeTruthy();
             expect(view.querySelectorAll('.chat-msg--retracted').length).toBe(1);
-            const msg_el = view.querySelector('.chat-msg--retracted .chat-msg__message');
-            expect(msg_el.textContent.trim()).toBe('Mercutio has removed this message');
+            const msg_el = view.querySelector('.chat-msg--retracted .chat-msg__message .retraction');
+            expect(msg_el.firstElementChild.textContent.trim()).toBe('Mercutio has removed a message');
         })
     );
 
@@ -142,8 +142,8 @@ describe('A received chat message', function () {
             const message = view.model.messages.at(0);
             expect(message.get('retracted')).toBeTruthy();
             expect(view.querySelectorAll('.chat-msg--retracted').length).toBe(1);
-            const msg_el = view.querySelector('.chat-msg--retracted .chat-msg__message');
-            expect(msg_el.textContent.trim()).toBe('Mercutio has removed this message');
+            const msg_el = view.querySelector('.chat-msg--retracted .chat-msg__message .retraction');
+            expect(msg_el.firstElementChild.textContent.trim()).toBe('Mercutio has removed a message');
         })
     );
 });
@@ -357,52 +357,3 @@ describe('A Received Chat Message', function () {
         })
     );
 });
-
-describe('A Sent Chat Message', function () {
-    it(
-        'can be retracted by its author',
-        mock.initConverse(['chatBoxesFetched'], { vcard: { nickname: '' } }, async function (_converse) {
-            await mock.waitForRoster(_converse, 'current', 1);
-            const contact_jid = mock.cur_names[0].replace(/ /g, '.').toLowerCase() + '@montague.lit';
-            const view = await mock.openChatBoxFor(_converse, contact_jid);
-
-            view.model.sendMessage({ 'body': 'hello world' });
-            await u.waitUntil(() => view.querySelectorAll('.chat-msg').length === 1);
-
-            const message = view.model.messages.at(0);
-            expect(view.model.messages.length).toBe(1);
-            expect(message.get('retracted')).toBeFalsy();
-            expect(message.get('editable')).toBeTruthy();
-
-            const retract_button = await u.waitUntil(() =>
-                view.querySelector('.chat-msg__content .chat-msg__action-retract')
-            );
-            retract_button.click();
-            await u.waitUntil(() => u.isVisible(document.querySelector('#converse-modals .modal')));
-            const submit_button = document.querySelector('#converse-modals .modal button[type="submit"]');
-            submit_button.click();
-
-            const sent_stanzas = _converse.api.connection.get().sent_stanzas;
-            await u.waitUntil(() => view.querySelectorAll('.chat-msg--retracted').length === 1);
-
-            const msg_obj = view.model.messages.at(0);
-            const retraction_stanza = await u.waitUntil(() =>
-                sent_stanzas.filter((s) => s.querySelector('message retract')).pop()
-            );
-            expect(retraction_stanza).toEqualStanza(stx`
-            <message id="${retraction_stanza.getAttribute('id')}" to="${contact_jid}" type="chat" xmlns="jabber:client">
-                <retract id="${msg_obj.get('origin_id')}" xmlns="urn:xmpp:message-retract:1"/>
-                <body>/me retracted a message</body>
-                <store xmlns="urn:xmpp:hints"/>
-                <fallback xmlns="urn:xmpp:fallback:0" for="urn:xmpp:message-retract:1" />
-            </message>`);
-
-            expect(view.model.messages.length).toBe(1);
-            expect(message.get('retracted')).toBeTruthy();
-            expect(message.get('editable')).toBeFalsy();
-            expect(view.querySelectorAll('.chat-msg--retracted').length).toBe(1);
-            const el = view.querySelector('.chat-msg--retracted .chat-msg__message');
-            expect(el.textContent.trim()).toBe('You have removed this message');
-        })
-    );
-});

+ 10 - 11
src/plugins/muc-views/tests/deprecated-retractions.js

@@ -286,9 +286,8 @@ describe("Deprecated Message Retractions", function () {
             const message = view.model.messages.at(1);
             expect(message.get('retracted')).toBeTruthy();
             expect(view.querySelectorAll('.chat-msg--retracted').length).toBe(1);
-            const msg_el = view.querySelector('.chat-msg--retracted .chat-msg__message');
-            expect(msg_el.textContent.trim()).toBe('Mercutio has removed this message');
-            expect(u.hasClass('chat-msg--followup', view.querySelector('.chat-msg--retracted'))).toBe(true);
+            const msg_el = view.querySelector('.chat-msg--retracted .chat-msg__message .retraction');
+            expect(msg_el.firstElementChild.textContent.trim()).toBe('Mercutio has removed a message');
         }));
     });
 
@@ -333,8 +332,8 @@ describe("Deprecated Message Retractions", function () {
             expect(view.model.messages.at(0).get('retracted')).toBeTruthy();
             expect(view.model.messages.at(0).get('editable')).toBe(false);
             expect(view.querySelectorAll('.chat-msg--retracted').length).toBe(1);
-            const msg_el = view.querySelector('.chat-msg--retracted .chat-msg__message');
-            expect(msg_el.textContent.trim()).toBe('eve has removed this message');
+            const msg_el = view.querySelector('.chat-msg--retracted .chat-msg__message .retraction');
+            expect(msg_el.firstElementChild.textContent.trim()).toBe('eve has removed a message');
             expect(msg_el.querySelector('.chat-msg--retracted q')).toBe(null);
         }));
 
@@ -450,8 +449,8 @@ describe("Deprecated Message Retractions", function () {
             expect(await view.model.handleRetraction.calls.all()[2].returnValue).toBe(true);
             await u.waitUntil(() => view.querySelectorAll('.chat-msg').length === 2);
             expect(view.querySelectorAll('.chat-msg--retracted').length).toBe(1);
-            const el = view.querySelector('.chat-msg--retracted .chat-msg__message div');
-            expect(el.textContent.trim()).toBe('Mercutio has removed this message');
+            const el = view.querySelector('.chat-msg--retracted .chat-msg__message .retraction');
+            expect(el.firstElementChild.textContent.trim()).toBe('Mercutio has removed a message');
             expect(u.hasClass('chat-msg--followup', el.parentElement)).toBe(false);
         }));
 
@@ -528,8 +527,8 @@ describe("Deprecated Message Retractions", function () {
             await u.waitUntil(() => view.querySelectorAll('.chat-msg').length);
             expect(view.querySelectorAll('.chat-msg').length).toBe(1);
             expect(view.querySelectorAll('.chat-msg--retracted').length).toBe(1);
-            const el = view.querySelector('.chat-msg--retracted .chat-msg__message div');
-            expect(el.textContent.trim()).toBe('eve has removed this message');
+            const el = view.querySelector('.chat-msg--retracted .chat-msg__message .retraction');
+            expect(el.firstElementChild.textContent.trim()).toBe('eve has removed a message');
         }));
 
         it("may be returned as a tombstone moderated groupchat message",
@@ -615,8 +614,8 @@ describe("Deprecated Message Retractions", function () {
             expect(view.querySelectorAll('.chat-msg').length).toBe(1);
 
             expect(view.querySelectorAll('.chat-msg--retracted').length).toBe(1);
-            const el = view.querySelector('.chat-msg--retracted .chat-msg__message div');
-            expect(el.textContent.trim()).toBe('A moderator has removed this message');
+            const el = view.querySelector('.chat-msg--retracted .chat-msg__message .retraction');
+            expect(el.firstElementChild.textContent.trim()).toBe('A moderator has removed a message');
             const qel = view.querySelector('.chat-msg--retracted .chat-msg__message q');
             expect(qel.textContent.trim()).toBe('This message contains inappropriate content');
         }));

+ 16 - 20
src/plugins/muc-views/tests/retractions.js

@@ -616,12 +616,11 @@ describe("Message Retractions", function () {
                         from="${muc_jid}"
                         to="${muc_jid}/romeo"
                         xmlns="jabber:client">
-                    <apply-to id="${stanza_id}" xmlns="urn:xmpp:fasten:0">
-                        <moderated by="${_converse.bare_jid}" xmlns="urn:xmpp:message-moderate:0">
-                        <retract xmlns="urn:xmpp:message-retract:0" />
+
+                    <retract id="${stanza_id}" xmlns='urn:xmpp:message-retract:1'>
+                        <moderated by="${_converse.bare_jid}" xmlns="urn:xmpp:message-moderate:1"/>
                         <reason>${reason}</reason>
-                        </moderated>
-                    </apply-to>
+                    </retract>
                 </message>`;
             await view.model.handleMessageStanza(retraction);
             expect(view.model.messages.length).toBe(1);
@@ -749,8 +748,7 @@ describe("Message Retractions", function () {
                         <forwarded xmlns="urn:xmpp:forward:0">
                             <delay xmlns="urn:xmpp:delay" stamp="2019-09-20T23:08:25Z"/>
                             <message type="groupchat" from="${muc_jid}/eve" to="${_converse.bare_jid}" id="message-id-1">
-                                <origin-id xmlns='urn:xmpp:sid:0' id="origin-id-1"/>
-                                <retracted stamp="2019-09-20T23:09:32Z" xmlns="urn:xmpp:message-retract:0"/>
+                                <retracted stamp='2019-09-20T23:09:32Z' xmlns='urn:xmpp:message-retract:1' id='retract-message-1'/>
                             </message>
                         </forwarded>
                     </result>
@@ -765,9 +763,9 @@ describe("Message Retractions", function () {
                         <forwarded xmlns="urn:xmpp:forward:0">
                             <delay xmlns="urn:xmpp:delay" stamp="2019-09-20T23:08:25Z"/>
                             <message type="groupchat" from="${muc_jid}/eve" to="${_converse.bare_jid}" id="retract-message-1">
-                                <apply-to id="origin-id-1" xmlns="urn:xmpp:fasten:0">
-                                    <retract xmlns="urn:xmpp:message-retract:0"/>
-                                </apply-to>
+                                <retract id="message-id-1" xmlns='urn:xmpp:message-retract:1'/>
+                                <fallback xmlns="urn:xmpp:fallback:0" for='urn:xmpp:message-retract:1'/>
+                                <body>/me retracted a previous message, but it's unsupported by your client.</body>
                             </message>
                         </forwarded>
                     </result>
@@ -826,10 +824,10 @@ describe("Message Retractions", function () {
                         <forwarded xmlns="urn:xmpp:forward:0">
                             <delay xmlns="urn:xmpp:delay" stamp="2019-09-20T23:08:25Z"/>
                             <message type="groupchat" from="${muc_jid}/eve" to="${_converse.bare_jid}" id="message-id-1">
-                                <moderated by="${muc_jid}/bob" stamp="2019-09-20T23:09:32Z" xmlns='urn:xmpp:message-moderate:0'>
-                                    <retracted xmlns="urn:xmpp:message-retract:0"/>
-                                    <reason>This message contains inappropriate content</reason>
-                                </moderated>
+                                <retracted stamp='2019-09-20T23:19:12Z' xmlns='urn:xmpp:message-retract:1'>
+                                    <moderated by="${muc_jid}/bob" xmlns="urn:xmpp:message-moderate:1"/>
+                                    <reason>This message contains inappropriate content for this forum</reason>
+                                </retracted>
                             </message>
                         </forwarded>
                     </result>
@@ -844,12 +842,10 @@ describe("Message Retractions", function () {
                         <forwarded xmlns="urn:xmpp:forward:0">
                             <delay xmlns="urn:xmpp:delay" stamp="2019-09-20T23:08:25Z"/>
                             <message type="groupchat" from="${muc_jid}" to="${_converse.bare_jid}" id="retract-message-1">
-                                <apply-to id="stanza-id" xmlns="urn:xmpp:fasten:0">
-                                    <moderated by="${muc_jid}/bob" xmlns='urn:xmpp:message-moderate:0'>
-                                        <retract xmlns="urn:xmpp:message-retract:0"/>
-                                        <reason>This message contains inappropriate content</reason>
-                                    </moderated>
-                                </apply-to>
+                                <retract id="stanza-id" xmlns='urn:xmpp:message-retract:1'>
+                                    <moderated by='room@muc.example.com/macbeth' xmlns='urn:xmpp:message-moderate:1'/>
+                                    <reason>This message contains inappropriate content</reason>
+                                </retract>
                             </message>
                         </forwarded>
                     </result>