diff --git a/tests/test_stanza_xep_0308.py b/tests/test_stanza_xep_0308.py
new file mode 100644
index 00000000..d69b2501
--- /dev/null
+++ b/tests/test_stanza_xep_0308.py
@@ -0,0 +1,26 @@
+import unittest
+from slixmpp import Message
+from slixmpp.test import SlixTest
+from slixmpp.plugins.xep_0308 import Replace
+from slixmpp.xmlstream import register_stanza_plugin
+
+
+class TestCorrectStanza(SlixTest):
+
+ def setUp(self):
+ register_stanza_plugin(Message, Replace)
+
+ def testBuild(self):
+ """Test that the element is created correctly."""
+ msg = Message()
+ msg['type'] = 'chat'
+ msg['replace']['id'] = 'toto123'
+
+ self.check(msg, """
+
+
+
+ """)
+
+
+suite = unittest.TestLoader().loadTestsFromTestCase(TestCorrectStanza)
diff --git a/tests/test_stream_xep_0308.py b/tests/test_stream_xep_0308.py
new file mode 100644
index 00000000..7665b1dd
--- /dev/null
+++ b/tests/test_stream_xep_0308.py
@@ -0,0 +1,53 @@
+import unittest
+from slixmpp.jid import JID
+from slixmpp.test import SlixTest
+
+
+class TestStreamCorrect(SlixTest):
+
+ def test_recv_correct(self):
+ self.stream_start(mode='client', plugins=['xep_0308'])
+
+ recv = []
+
+ def recv_correct(msg):
+ recv.append(msg)
+
+ self.xmpp.add_event_handler('message_correction', recv_correct)
+
+ self.recv("""
+
+
+ oucou
+
+ """)
+ received = recv[0]
+ self.assertEqual(received['replace']['id'], "tototo")
+
+
+ def test_send_correct(self):
+ self.stream_start(mode='client', plugins=['xep_0308'])
+
+ corrected = self.xmpp.plugin['xep_0308'].build_correction(
+ id_to_replace="12345",
+ mto=JID('toto@example.com'),
+ mbody="I am replacing",
+ )
+ self.assertEqual(corrected['replace']['id'], '12345')
+ self.assertEqual(corrected['to'], JID('toto@example.com'))
+ self.assertEqual(corrected['body'], 'I am replacing')
+ corrected['id'] = 'my id'
+
+ corrected = self.xmpp.plugin['xep_0308'].correct_message(
+ corrected,
+ 'This is new',
+ )
+ self.send("""
+
+ This is new
+
+
+ """)
+
+
+suite = unittest.TestLoader().loadTestsFromTestCase(TestStreamCorrect)