summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2009-06-01 08:48:42 (GMT)
committerRemko Tronçon <git@el-tramo.be>2009-06-01 09:24:28 (GMT)
commit2812bddd81f8a1b804c7460f4e14cd0aa393d129 (patch)
treed46294f35150c4f0f43deaf2d31fceaf945ae715 /Swiften/SASL
downloadswift-contrib-2812bddd81f8a1b804c7460f4e14cd0aa393d129.zip
swift-contrib-2812bddd81f8a1b804c7460f4e14cd0aa393d129.tar.bz2
Import.
Diffstat (limited to 'Swiften/SASL')
-rw-r--r--Swiften/SASL/Makefile.inc4
-rw-r--r--Swiften/SASL/PLAINMessage.cpp10
-rw-r--r--Swiften/SASL/PLAINMessage.h22
-rw-r--r--Swiften/SASL/UnitTest/Makefile.inc2
-rw-r--r--Swiften/SASL/UnitTest/PLAINMessageTest.cpp29
5 files changed, 67 insertions, 0 deletions
diff --git a/Swiften/SASL/Makefile.inc b/Swiften/SASL/Makefile.inc
new file mode 100644
index 0000000..e6c658f
--- /dev/null
+++ b/Swiften/SASL/Makefile.inc
@@ -0,0 +1,4 @@
+SWIFTEN_SOURCES += \
+ Swiften/SASL/PLAINMessage.cpp
+
+include Swiften/SASL/UnitTest/Makefile.inc
diff --git a/Swiften/SASL/PLAINMessage.cpp b/Swiften/SASL/PLAINMessage.cpp
new file mode 100644
index 0000000..c88d6cf
--- /dev/null
+++ b/Swiften/SASL/PLAINMessage.cpp
@@ -0,0 +1,10 @@
+#include "Swiften/SASL/PLAINMessage.h"
+
+namespace Swift {
+
+PLAINMessage::PLAINMessage(const String& authcid, const String& password, const String& authzid) {
+ String s = authzid + '\0' + authcid + '\0' + password;
+ value_ = ByteArray(s.getUTF8Data(), s.getUTF8Size());
+}
+
+}
diff --git a/Swiften/SASL/PLAINMessage.h b/Swiften/SASL/PLAINMessage.h
new file mode 100644
index 0000000..14a51f2
--- /dev/null
+++ b/Swiften/SASL/PLAINMessage.h
@@ -0,0 +1,22 @@
+#ifndef SASL_PLAINMESSAGE_H
+#define SASL_PLAINMESSAGE_H
+
+#include "Swiften/Base/String.h"
+#include "Swiften/Base/ByteArray.h"
+
+namespace Swift {
+ class PLAINMessage
+ {
+ public:
+ PLAINMessage(const String& authcid, const String& password, const String& authzid = "");
+
+ const ByteArray& getValue() {
+ return value_;
+ }
+
+ private:
+ ByteArray value_;
+ };
+}
+
+#endif
diff --git a/Swiften/SASL/UnitTest/Makefile.inc b/Swiften/SASL/UnitTest/Makefile.inc
new file mode 100644
index 0000000..e985898
--- /dev/null
+++ b/Swiften/SASL/UnitTest/Makefile.inc
@@ -0,0 +1,2 @@
+UNITTEST_SOURCES += \
+ Swiften/SASL/UnitTest/PLAINMessageTest.cpp
diff --git a/Swiften/SASL/UnitTest/PLAINMessageTest.cpp b/Swiften/SASL/UnitTest/PLAINMessageTest.cpp
new file mode 100644
index 0000000..da9287a
--- /dev/null
+++ b/Swiften/SASL/UnitTest/PLAINMessageTest.cpp
@@ -0,0 +1,29 @@
+#include <cppunit/extensions/HelperMacros.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+
+#include "Swiften/SASL/PLAINMessage.h"
+
+using namespace Swift;
+
+class PLAINMessageTest : public CppUnit::TestFixture
+{
+ CPPUNIT_TEST_SUITE(PLAINMessageTest);
+ CPPUNIT_TEST(testConstructor_WithoutAuthzID);
+ CPPUNIT_TEST(testConstructor_WithAuthzID);
+ CPPUNIT_TEST_SUITE_END();
+
+ public:
+ PLAINMessageTest() {}
+
+ void testConstructor_WithoutAuthzID() {
+ PLAINMessage message("user", "pass");
+ CPPUNIT_ASSERT_EQUAL(message.getValue(), ByteArray("\0user\0pass", 10));
+ }
+
+ void testConstructor_WithAuthzID() {
+ PLAINMessage message("user", "pass", "authz");
+ CPPUNIT_ASSERT_EQUAL(message.getValue(), ByteArray("authz\0user\0pass", 15));
+ }
+};
+
+CPPUNIT_TEST_SUITE_REGISTRATION(PLAINMessageTest);