UrlTest: cleanup IDN tests.

This commit is contained in:
Adrien Destugues
2014-10-21 11:31:47 +02:00
parent 7284564eab
commit 6da9451eba
+35 -28
View File
@@ -534,41 +534,33 @@ UrlTest::RelativeUriTest()
} }
void void
UrlTest::IDNTest() UrlTest::IDNTest()
{ {
// http://www.w3.org/2004/04/uri-rel-test.html // http://www.w3.org/2004/04/uri-rel-test.html
// TODO these need to be manually UrlDecoded with our API. // TODO We need to decide wether to store them as UTF-8 or IDNA/punycode.
// We also need to decide wether to store them as UTF-8 or IDNA/punycode.
NextSubTest(); struct Test {
CPPUNIT_ASSERT_EQUAL(BUrl("http://www.w3.org").UrlString(), const char* escaped;
BUrl("http://www.w%33.org").UrlString()); const char* decoded;
NextSubTest(); };
CPPUNIT_ASSERT_EQUAL(
BUrl("http://xn--rksmrgs-5wao1o.josefsson.org").UrlString(), Test tests[] = {
BUrl("http://r%C3%A4ksm%C3%B6rg%C3%A5s.josefsson.org").UrlString()); { "http://www.w%33.org", "http://www.w3.org" },
NextSubTest(); { "http://r%C3%A4ksm%C3%B6rg%C3%A5s.josefsson.org",
CPPUNIT_ASSERT_EQUAL( "http://xn--rksmrgs-5wao1o.josefsson.org" },
BUrl("http://xn--rksmrgs-5wao1o.josefsson.org").UrlString(), { "http://%E7%B4%8D%E8%B1%86.w3.mag.keio.ac.jp",
BUrl("http://%E7%B4%8D%E8%B1%86.w3.mag.keio.ac.jp").UrlString()); "http://xn--99zt52a.w3.mag.keio.ac.jp" },
NextSubTest(); { "http://www.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA"
CPPUNIT_ASSERT_EQUAL(
BUrl("http://www.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9b"
"ya3kc6lra.w3.mag.keio.ac.jp/").UrlString(),
BUrl("http://www.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA"
"%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3" "%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3"
"%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82" "%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82"
"%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0" "%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0"
"%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3" "%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3"
"%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/").UrlString()); "%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/",
NextSubTest(); "http://www.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9b"
CPPUNIT_ASSERT_EQUAL( "ya3kc6lra.w3.mag.keio.ac.jp/" },
BUrl("http://xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3k"
"c6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6" { "http://%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3"
"lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lr"
"a.w3.mag.keio.ac.jp/").UrlString(),
BUrl("http://%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3"
"%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82" "%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82"
"%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81" "%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81"
"%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3" "%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3"
@@ -584,7 +576,22 @@ UrlTest::IDNTest()
"%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE" "%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE"
"%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3" "%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3"
"%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81" "%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81"
"%AA%E3%81%84.w3.mag.keio.ac.jp/").UrlString()); "%AA%E3%81%84.w3.mag.keio.ac.jp/",
"http://xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3k"
"c6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6"
"lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lr"
"a.w3.mag.keio.ac.jp/" },
{ NULL, NULL }
};
for (int i = 0; tests[i].escaped != NULL; i++)
{
NextSubTest();
BUrl url(tests[i].escaped);
url.UrlDecode();
CPPUNIT_ASSERT_EQUAL(BUrl(tests[i].decoded).UrlString(),
url.UrlString());
}
} }