diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/src/UriTests.cpp | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/test/src/UriTests.cpp b/test/src/UriTests.cpp index bb541d0..4242885 100644 --- a/test/src/UriTests.cpp +++ b/test/src/UriTests.cpp @@ -275,6 +275,23 @@ TEST(UriTests, ParseFromStringSchemeBarelyLegal) { } } +TEST(UriTests, ParseFromStringSchemeMixedCase) { + const std::vector< std::string > testVectors{ + {"http://www.example.com/"}, + {"hTtp://www.example.com/"}, + {"HTTP://www.example.com/"}, + {"Http://www.example.com/"}, + {"HttP://www.example.com/"}, + }; + size_t index = 0; + for (const auto& testVector : testVectors) { + Uri::Uri uri; + ASSERT_TRUE(uri.ParseFromString(testVector)) << index; + ASSERT_EQ("http", uri.GetScheme()) << ">>> Failed for test vector element " << index << " <<<"; + ++index; + } +} + TEST(UriTests, ParseFromStringUserInfoIllegalCharacters) { const std::vector< std::string > testVectors{ {"//%X@www.example.com/"}, @@ -331,7 +348,7 @@ TEST(UriTests, ParseFromStringHostBarelyLegal) { std::string host; }; const std::vector< TestVector > testVectors{ - {"//%41/", "A"}, + {"//%41/", "a"}, {"///", ""}, {"//!/", "!"}, {"//'/", "'"}, @@ -339,6 +356,7 @@ TEST(UriTests, ParseFromStringHostBarelyLegal) { {"//;/", ";"}, {"//1.2.3.4/", "1.2.3.4"}, {"//[v7.:]/", "[v7.:]"}, + {"//[v7.aB]/", "[v7.aB]"}, }; size_t index = 0; for (const auto& testVector : testVectors) { @@ -349,6 +367,23 @@ TEST(UriTests, ParseFromStringHostBarelyLegal) { } } +TEST(UriTests, ParseFromStringHostMixedCase) { + const std::vector< std::string > testVectors{ + {"http://www.example.com/"}, + {"http://www.EXAMPLE.com/"}, + {"http://www.exAMple.com/"}, + {"http://www.example.cOM/"}, + {"http://wWw.exampLe.Com/"}, + }; + size_t index = 0; + for (const auto& testVector : testVectors) { + Uri::Uri uri; + ASSERT_TRUE(uri.ParseFromString(testVector)) << index; + ASSERT_EQ("www.example.com", uri.GetHost()) << ">>> Failed for test vector element " << index << " <<<"; + ++index; + } +} + TEST(UriTests, ParseFromStringDontMisinterpretColonInOtherPlacesAsSchemeDelimiter) { const std::vector< std::string > testVectors{ {"//foo:bar@www.example.com/"}, |