summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Swiften/JID/JID.cpp5
-rw-r--r--Swiften/JID/JID.h3
-rw-r--r--Swiften/JID/UnitTest/JIDTest.cpp11
3 files changed, 14 insertions, 5 deletions
diff --git a/Swiften/JID/JID.cpp b/Swiften/JID/JID.cpp
index a0f18d5..37fb755 100644
--- a/Swiften/JID/JID.cpp
+++ b/Swiften/JID/JID.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010-2013 Isode Limited.
+ * Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
@@ -146,6 +146,9 @@ JID::JID(const std::string& node, const std::string& domain) : valid_(true), has
}
JID::JID(const std::string& node, const std::string& domain, const std::string& resource) : valid_(true), hasResource_(true) {
+ if (resource.empty()) {
+ valid_ = false;
+ }
nameprepAndSetComponents(node, domain, resource);
}
diff --git a/Swiften/JID/JID.h b/Swiften/JID/JID.h
index 00ee27f..0fd2f00 100644
--- a/Swiften/JID/JID.h
+++ b/Swiften/JID/JID.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010-2013 Isode Limited.
+ * Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
@@ -195,4 +195,3 @@ namespace Swift {
SWIFTEN_API std::ostream& operator<<(std::ostream& os, const Swift::JID& j);
}
-
diff --git a/Swiften/JID/UnitTest/JIDTest.cpp b/Swiften/JID/UnitTest/JIDTest.cpp
index 307243a..8f43576 100644
--- a/Swiften/JID/UnitTest/JIDTest.cpp
+++ b/Swiften/JID/UnitTest/JIDTest.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010 Isode Limited.
+ * Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
@@ -28,6 +28,7 @@ class JIDTest : public CppUnit::TestFixture
CPPUNIT_TEST(testConstructorWithString_SpacesInNode);
CPPUNIT_TEST(testConstructorWithStrings);
CPPUNIT_TEST(testConstructorWithStrings_EmptyDomain);
+ CPPUNIT_TEST(testConstructorWithStrings_EmptyResource);
CPPUNIT_TEST(testIsBare);
CPPUNIT_TEST(testIsBare_NotBare);
CPPUNIT_TEST(testToBare);
@@ -154,7 +155,7 @@ class JIDTest : public CppUnit::TestFixture
CPPUNIT_ASSERT(!JID(" alice@wonderland.lit").isValid());
CPPUNIT_ASSERT(!JID("alice @wonderland.lit").isValid());
}
-
+
void testConstructorWithStrings() {
JID testling("foo", "bar", "baz");
@@ -170,6 +171,12 @@ class JIDTest : public CppUnit::TestFixture
CPPUNIT_ASSERT(!testling.isValid());
}
+ void testConstructorWithStrings_EmptyResource() {
+ JID testling("foo", "bar", "");
+
+ CPPUNIT_ASSERT(!testling.isValid());
+ }
+
void testIsBare() {
CPPUNIT_ASSERT(JID("foo@bar").isBare());
}