summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Swiften/JID/UnitTest/JIDTest.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/Swiften/JID/UnitTest/JIDTest.cpp b/Swiften/JID/UnitTest/JIDTest.cpp
index 2b6f2a8..307243a 100644
--- a/Swiften/JID/UnitTest/JIDTest.cpp
+++ b/Swiften/JID/UnitTest/JIDTest.cpp
@@ -45,172 +45,181 @@ class JIDTest : public CppUnit::TestFixture
CPPUNIT_TEST(testCompare_LargerResource);
CPPUNIT_TEST(testCompare_Equal);
CPPUNIT_TEST(testCompare_EqualWithoutResource);
CPPUNIT_TEST(testCompare_NoResourceAndEmptyResource);
CPPUNIT_TEST(testCompare_EmptyResourceAndNoResource);
CPPUNIT_TEST(testEquals);
CPPUNIT_TEST(testEquals_NotEqual);
CPPUNIT_TEST(testEquals_WithoutResource);
CPPUNIT_TEST(testSmallerThan);
CPPUNIT_TEST(testSmallerThan_Equal);
CPPUNIT_TEST(testSmallerThan_Larger);
CPPUNIT_TEST(testHasResource);
CPPUNIT_TEST(testHasResource_NoResource);
CPPUNIT_TEST(testGetEscapedNode);
CPPUNIT_TEST(testGetEscapedNode_XEP106Examples);
CPPUNIT_TEST(testGetEscapedNode_BackslashAtEnd);
CPPUNIT_TEST(testGetUnescapedNode);
CPPUNIT_TEST(testGetUnescapedNode_XEP106Examples);
CPPUNIT_TEST_SUITE_END();
public:
JIDTest() {}
void testConstructorWithString() {
JID testling("foo@bar/baz");
CPPUNIT_ASSERT_EQUAL(std::string("foo"), testling.getNode());
CPPUNIT_ASSERT_EQUAL(std::string("bar"), testling.getDomain());
CPPUNIT_ASSERT_EQUAL(std::string("baz"), testling.getResource());
CPPUNIT_ASSERT(!testling.isBare());
+ CPPUNIT_ASSERT(testling.isValid());
}
void testConstructorWithString_NoResource() {
JID testling("foo@bar");
CPPUNIT_ASSERT_EQUAL(std::string("foo"), testling.getNode());
CPPUNIT_ASSERT_EQUAL(std::string("bar"), testling.getDomain());
CPPUNIT_ASSERT_EQUAL(std::string(""), testling.getResource());
CPPUNIT_ASSERT(testling.isBare());
+ CPPUNIT_ASSERT(testling.isValid());
}
void testConstructorWithString_EmptyResource() {
JID testling("bar/");
CPPUNIT_ASSERT(testling.isValid());
CPPUNIT_ASSERT(!testling.isBare());
}
void testConstructorWithString_NoNode() {
JID testling("bar/baz");
CPPUNIT_ASSERT_EQUAL(std::string(""), testling.getNode());
CPPUNIT_ASSERT_EQUAL(std::string("bar"), testling.getDomain());
CPPUNIT_ASSERT_EQUAL(std::string("baz"), testling.getResource());
CPPUNIT_ASSERT(!testling.isBare());
+ CPPUNIT_ASSERT(testling.isValid());
}
void testConstructorWithString_OnlyDomain() {
JID testling("bar");
CPPUNIT_ASSERT_EQUAL(std::string(""), testling.getNode());
CPPUNIT_ASSERT_EQUAL(std::string("bar"), testling.getDomain());
CPPUNIT_ASSERT_EQUAL(std::string(""), testling.getResource());
CPPUNIT_ASSERT(testling.isBare());
+ CPPUNIT_ASSERT(testling.isValid());
}
void testConstructorWithString_InvalidDomain() {
CPPUNIT_ASSERT(!JID("foo@bar,baz").isValid());
}
void testConstructorWithString_UpperCaseNode() {
JID testling("Fo\xCE\xA9@bar");
CPPUNIT_ASSERT_EQUAL(std::string("fo\xCF\x89"), testling.getNode());
CPPUNIT_ASSERT_EQUAL(std::string("bar"), testling.getDomain());
+ CPPUNIT_ASSERT(testling.isValid());
}
void testConstructorWithString_UpperCaseDomain() {
JID testling("Fo\xCE\xA9");
CPPUNIT_ASSERT_EQUAL(std::string("fo\xCF\x89"), testling.getDomain());
+ CPPUNIT_ASSERT(testling.isValid());
}
void testConstructorWithString_UpperCaseResource() {
JID testling("bar/Fo\xCE\xA9");
CPPUNIT_ASSERT_EQUAL(testling.getResource(), std::string("Fo\xCE\xA9"));
+ CPPUNIT_ASSERT(testling.isValid());
}
void testConstructorWithString_EmptyNode() {
JID testling("@bar");
CPPUNIT_ASSERT(!testling.isValid());
}
void testConstructorWithString_IllegalResource() {
JID testling("foo@bar.com/\xd8\xb1\xd9\x85\xd9\x82\xd9\x87\x20\xd8\xaa\xd8\xb1\xd9\x86\xd8\xb3\x20");
CPPUNIT_ASSERT(!testling.isValid());
}
void testConstructorWithString_SpacesInNode() {
CPPUNIT_ASSERT(!JID(" alice@wonderland.lit").isValid());
CPPUNIT_ASSERT(!JID("alice @wonderland.lit").isValid());
}
void testConstructorWithStrings() {
JID testling("foo", "bar", "baz");
CPPUNIT_ASSERT_EQUAL(std::string("foo"), testling.getNode());
CPPUNIT_ASSERT_EQUAL(std::string("bar"), testling.getDomain());
CPPUNIT_ASSERT_EQUAL(std::string("baz"), testling.getResource());
+ CPPUNIT_ASSERT(testling.isValid());
}
void testConstructorWithStrings_EmptyDomain() {
JID testling("foo", "", "baz");
CPPUNIT_ASSERT(!testling.isValid());
}
void testIsBare() {
CPPUNIT_ASSERT(JID("foo@bar").isBare());
}
void testIsBare_NotBare() {
CPPUNIT_ASSERT(!JID("foo@bar/baz").isBare());
}
void testToBare() {
JID testling("foo@bar/baz");
CPPUNIT_ASSERT_EQUAL(std::string("foo"), testling.toBare().getNode());
CPPUNIT_ASSERT_EQUAL(std::string("bar"), testling.toBare().getDomain());
CPPUNIT_ASSERT(testling.toBare().isBare());
}
void testToBare_EmptyNode() {
JID testling("bar/baz");
CPPUNIT_ASSERT_EQUAL(std::string(""), testling.toBare().getNode());
CPPUNIT_ASSERT_EQUAL(std::string("bar"), testling.toBare().getDomain());
CPPUNIT_ASSERT(testling.toBare().isBare());
+ CPPUNIT_ASSERT(testling.isValid());
}
void testToBare_EmptyResource() {
JID testling("bar/");
CPPUNIT_ASSERT_EQUAL(std::string(""), testling.toBare().getNode());
CPPUNIT_ASSERT_EQUAL(std::string("bar"), testling.toBare().getDomain());
CPPUNIT_ASSERT(testling.toBare().isBare());
}
void testToString() {
JID testling("foo@bar/baz");
CPPUNIT_ASSERT_EQUAL(std::string("foo@bar/baz"), testling.toString());
}
void testToString_EmptyNode() {
JID testling("bar/baz");
CPPUNIT_ASSERT_EQUAL(std::string("bar/baz"), testling.toString());
}
void testToString_NoResource() {
JID testling("foo@bar");
CPPUNIT_ASSERT_EQUAL(std::string("foo@bar"), testling.toString());
}
void testToString_EmptyResource() {
JID testling("foo@bar/");