diff options
author | Kevin Smith <git@kismith.co.uk> | 2016-02-09 12:23:23 (GMT) |
---|---|---|
committer | Kevin Smith <kevin.smith@isode.com> | 2016-02-10 09:25:43 (GMT) |
commit | 59c64a11e0bceca4876ba69ef2f30519629b108c (patch) | |
tree | 391c4bf8ed5bdc3a31a01c0d0d0489352dd7b239 /Swiften | |
parent | 062ba3f8d7e99008863499c02224c1aae7b31d8d (diff) | |
download | swift-59c64a11e0bceca4876ba69ef2f30519629b108c.zip swift-59c64a11e0bceca4876ba69ef2f30519629b108c.tar.bz2 |
Add more tests for JID validity
Test-Information:
Tests pass locally (OS/X 10.11.3)
Change-Id: I223cdf213f87a4efd574bdd917556aec23e4fd4c
Diffstat (limited to 'Swiften')
-rw-r--r-- | Swiften/JID/UnitTest/JIDTest.cpp | 9 |
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/"); |