#include #include namespace scwx { namespace qt { namespace util { const std::vector> testUrls = { {" https://example.com/path/to+a+test/file.txt ", "https://example.com/path/to+a+test/file.txt"}, {"\thttps://example.com/path/to+a+test/file.txt\t", "https://example.com/path/to+a+test/file.txt"}, {"\nhttps://example.com/path/to+a+test/file.txt\n", "https://example.com/path/to+a+test/file.txt"}, {"\rhttps://example.com/path/to+a+test/file.txt\r", "https://example.com/path/to+a+test/file.txt"}, {"\r\nhttps://example.com/path/to+a+test/file.txt\r\n", "https://example.com/path/to+a+test/file.txt"}, {" https://example.com/path/to+a+test/file.txt ", "https://example.com/path/to+a+test/file.txt"}, {" \nhttps://example.com/path/to+a+test/file.txt \n ", "https://example.com/path/to+a+test/file.txt"}, // Only tested for this OS because NormalizeUrl uses native separators #ifdef _WIN32 {" C:\\path\\to a test\\file.txt ", "C:\\path\\to a test\\file.txt"}, {"\tC:\\path\\to a test\\file.txt\t", "C:\\path\\to a test\\file.txt"}, {"\nC:\\path\\to a test\\file.txt\n", "C:\\path\\to a test\\file.txt"}, {"\rC:\\path\\to a test\\file.txt\r", "C:\\path\\to a test\\file.txt"}, {"\r\nC:\\path\\to a test\\file.txt\r\n", "C:\\path\\to a test\\file.txt"}, {" C:\\path\\to a test\\file.txt ", "C:\\path\\to a test\\file.txt"}, {" \nC:\\path\\to a test\\file.txt \n ", "C:\\path\\to a test\\file.txt"}, {" C:/path/to a test/file.txt ", "C:\\path\\to a test\\file.txt"}, {"\tC:/path/to a test/file.txt\t", "C:\\path\\to a test\\file.txt"}, {"\nC:/path/to a test/file.txt\n", "C:\\path\\to a test\\file.txt"}, {"\rC:/path/to a test/file.txt\r", "C:\\path\\to a test\\file.txt"}, {"\r\nC:/path/to a test/file.txt\r\n", "C:\\path\\to a test\\file.txt"}, {" C:/path/to a test/file.txt ", "C:\\path\\to a test\\file.txt"}, {" \nC:/path/to a test/file.txt \n ", "C:\\path\\to a test\\file.txt"}, #else {" /path/to a test/file.txt ", "/path/to a test/file.txt"}, {"\t/path/to a test/file.txt\t", "/path/to a test/file.txt"}, {"\n/path/to a test/file.txt\n", "/path/to a test/file.txt"}, {"\r/path/to a test/file.txt\r", "/path/to a test/file.txt"}, {"\r\n/path/to a test/file.txt\r\n", "/path/to a test/file.txt"}, {" /path/to a test/file.txt ", "/path/to a test/file.txt"}, {" \n/path/to a test/file.txt \n ", "/path/to a test/file.txt"}, #endif }; TEST(network, NormalizeUrl) { for (auto& pair : testUrls) { const std::string& preNormalized = pair.first; const std::string& expNormalized = pair.second; std::string normalized = network::NormalizeUrl(preNormalized); EXPECT_EQ(normalized, expNormalized); } } } // namespace util } // namespace qt } // namespace scwx