about summary refs log tree commit diff stats
path: root/tests/functionaltests/test_carbons.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functionaltests/test_carbons.c')
-rw-r--r--tests/functionaltests/test_carbons.c70
1 files changed, 70 insertions, 0 deletions
diff --git a/tests/functionaltests/test_carbons.c b/tests/functionaltests/test_carbons.c
index f0a8214b..96639d60 100644
--- a/tests/functionaltests/test_carbons.c
+++ b/tests/functionaltests/test_carbons.c
@@ -48,3 +48,73 @@ send_disable_carbons(void **state)
         "<iq id=\"*\" type=\"set\"><disable xmlns=\"urn:xmpp:carbons:2\"/></iq>"
     ));
 }
+
+void
+receive_carbon(void **state)
+{
+    prof_input("/carbons on");
+
+    prof_connect();
+    assert_true(stbbr_received(
+        "<iq id=\"*\" type=\"set\"><enable xmlns=\"urn:xmpp:carbons:2\"/></iq>"
+    ));
+
+    stbbr_send(
+        "<presence to=\"stabber@localhost\" from=\"buddy1@localhost/mobile\">"
+            "<priority>10</priority>"
+            "<status>On my mobile</status>"
+        "</presence>"
+    );
+    assert_true(prof_output_exact("Buddy1 (mobile) is online, \"On my mobile\""));
+    prof_input("/msg Buddy1");
+    prof_output_exact("unencrypted");
+
+    stbbr_send(
+        "<message type=\"chat\" to=\"stabber@localhost/profanity\" from=\"buddy1@localhost\">"
+            "<received xmlns=\"urn:xmpp:carbons:2\">"
+                "<forwarded xmlns=\"urn:xmpp:forward:0\">"
+                    "<message id=\"prof_msg_7\" xmlns=\"jabber:client\" type=\"chat\" lang=\"en\" to=\"stabber@localhost/profanity\" from=\"buddy1@localhost/mobile\">"
+                        "<body>test carbon from recipient</body>"
+                    "</message>"
+                "</forwarded>"
+            "</received>"
+        "</message>"
+    );
+
+    assert_true(prof_output_regex("Buddy1/mobile: .+test carbon from recipient"));
+}
+
+void
+receive_self_carbon(void **state)
+{
+    prof_input("/carbons on");
+
+    prof_connect();
+    assert_true(stbbr_received(
+        "<iq id=\"*\" type=\"set\"><enable xmlns=\"urn:xmpp:carbons:2\"/></iq>"
+    ));
+
+    stbbr_send(
+        "<presence to=\"stabber@localhost\" from=\"buddy1@localhost/mobile\">"
+            "<priority>10</priority>"
+            "<status>On my mobile</status>"
+        "</presence>"
+    );
+    assert_true(prof_output_exact("Buddy1 (mobile) is online, \"On my mobile\""));
+    prof_input("/msg Buddy1");
+    prof_output_exact("unencrypted");
+
+    stbbr_send(
+        "<message type=\"chat\" to=\"stabber@localhost/profanity\" from=\"stabber@localhost\">"
+            "<sent xmlns=\"urn:xmpp:carbons:2\">"
+                "<forwarded xmlns=\"urn:xmpp:forward:0\">"
+                    "<message id=\"59\" xmlns=\"jabber:client\" type=\"chat\" to=\"buddy1@localhost/mobile\" lang=\"en\" from=\"stabber@localhost/profanity\">"
+                        "<body>self sent carbon</body>"
+                    "</message>"
+                "</forwarded>"
+            "</sent>"
+        "</message>"
+    );
+
+    assert_true(prof_output_regex("me: .+self sent carbon"));
+}