summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/IDN/UnitTest/IDNConverterTest.cpp')
-rw-r--r--Swiften/IDN/UnitTest/IDNConverterTest.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/Swiften/IDN/UnitTest/IDNConverterTest.cpp b/Swiften/IDN/UnitTest/IDNConverterTest.cpp
index c5f94d0..77a1ece 100644
--- a/Swiften/IDN/UnitTest/IDNConverterTest.cpp
+++ b/Swiften/IDN/UnitTest/IDNConverterTest.cpp
@@ -78,3 +78,21 @@ TEST_F(IDNConverterTest, testGetEncoded_Invalid) {
78 boost::optional<std::string> result = testling_->getIDNAEncoded("www.foo,bar.com"); 78 boost::optional<std::string> result = testling_->getIDNAEncoded("www.foo,bar.com");
79 ASSERT_FALSE(result); 79 ASSERT_FALSE(result);
80} 80}
81
82TEST_F(IDNConverterTest, testRFC1035LengthRestrictions) {
83 // label size check, 63 octets or less
84 ASSERT_TRUE(testling_->getIDNAEncoded(std::string(63, 'a') + ".example"));
85 ASSERT_TRUE(testling_->getIDNAEncoded(std::string(63, 'a') + "." + std::string(63, 'a') + ".example"));
86 ASSERT_FALSE(testling_->getIDNAEncoded(std::string(64, 'a') + "." + std::string(63, 'a') + ".example"));
87 ASSERT_FALSE(testling_->getIDNAEncoded(std::string(63, 'a') + "." + std::string(64, 'a') + ".example"));
88 ASSERT_FALSE(testling_->getIDNAEncoded(std::string(0, 'a') + "." + std::string(63, 'a') + ".example"));
89 ASSERT_FALSE(testling_->getIDNAEncoded(std::string(63, 'a') + "." + std::string(0, 'a') + ".example"));
90
91 // domain name 255 octets or less
92 ASSERT_TRUE(testling_->getIDNAEncoded(std::string(63, 'a') + ".example"));
93 ASSERT_TRUE(testling_->getIDNAEncoded(std::string(63, 'a') + "." + std::string(63, 'a') + ".example"));
94 ASSERT_TRUE(testling_->getIDNAEncoded(std::string(63, 'a') + "." + std::string(63, 'a') + "." + std::string(63, 'a') + ".example"));
95 ASSERT_TRUE(testling_->getIDNAEncoded(std::string(63, 'a') + "." + std::string(63, 'a') + "." + std::string(63, 'a') + "." + std::string(55, 'a') + ".example"));
96 ASSERT_FALSE(testling_->getIDNAEncoded(std::string(63, 'a') + "." + std::string(63, 'a') + "." + std::string(63, 'a') + "." + std::string(56, 'a') + ".example"));
97 ASSERT_FALSE(testling_->getIDNAEncoded(std::string(63, 'a') + "." + std::string(56, 'a') + "." + std::string(63, 'a') + "." + std::string(63, 'a') + ".example"));
98}