- tweaked IDN test and checked in both Tiger results and Leopard
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Jul 2007 17:51:29 +0000 (17:51 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Jul 2007 17:51:29 +0000 (17:51 +0000)
        * fast/encoding/idn-security.html: Changed test to only test lowercase "a" since the behavior for
        uppercase letters has changed in the new ICU. Also added code to detect the older ICU and expect
        different results.

        * fast/encoding/idn-security-expected.txt: Regenerated results.

        * mac/leopard/fast/encoding/idn-security-expected.txt: Copied from fast/encoding/idn-security-expected.txt.
        The modified.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@24020 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fast/encoding/idn-security-expected.txt
LayoutTests/fast/encoding/idn-security.html
LayoutTests/mac/leopard/fast/encoding/idn-security-expected.txt [new file with mode: 0644]

index 4d7af5ccf4b2d98d71c1f562a2eaffd81734c4db..1a8dfb97d89b0334eb68ec53fbd561fe74ec879c 100644 (file)
@@ -1,3 +1,16 @@
+2007-07-05  Darin Adler  <darin@apple.com>
+
+        - tweaked IDN test and checked in both Tiger results and Leopard
+
+        * fast/encoding/idn-security.html: Changed test to only test lowercase "a" since the behavior for
+        uppercase letters has changed in the new ICU. Also added code to detect the older ICU and expect
+        different results.
+
+        * fast/encoding/idn-security-expected.txt: Regenerated results.
+
+        * mac/leopard/fast/encoding/idn-security-expected.txt: Copied from fast/encoding/idn-security-expected.txt.
+        The modified.
+
 2007-07-05  Adam Roben  <aroben@apple.com>
 
         Add a Skipped file for Leopard.
index 08e977d40721332b9a47433b9db392ba536ad70d..d08d6b5eca3c13f42a743c035f10a688a6b6f4ae 100644 (file)
@@ -2,8 +2,8 @@ PASS testIDNRoundTrip(0x2e) is '.'
 PASS testIDNRoundTripNotFirstCharacter(0x2e) is '.'
 PASS testIDNRoundTrip(0x2f) is '/'
 PASS testIDNRoundTripNotFirstCharacter(0x2f) is '/'
-PASS testIDNRoundTrip(0x41) is 'A'
-PASS testIDNRoundTripNotFirstCharacter(0x41) is 'A'
+PASS testIDNRoundTrip(0x61) is 'a'
+PASS testIDNRoundTripNotFirstCharacter(0x61) is 'a'
 PASS testIDNRoundTrip(0x633) is '%u0633'
 PASS testIDNRoundTripNotFirstCharacter(0x633) is '%u0633'
 PASS testIDNRoundTrip(0x561) is '%u0561'
@@ -216,14 +216,14 @@ PASS testIDNRoundTrip(0x6d4) is 'punycode'
 PASS testIDNEncodeNotFirstCharacter(0x6d4) is '%u06D4'
 PASS testIDNRoundTrip(0x702) is 'punycode'
 PASS testIDNEncodeNotFirstCharacter(0x702) is '%u0702'
-PASS testIDNEncode(0x200b) is '%u200B'
+PASS testIDNRoundTrip(0x200b) is ''
 PASS testIDNRoundTripNotFirstCharacter(0x200b) is ''
-PASS testIDNEncode(0x3002) is '%u3002'
+PASS testIDNRoundTrip(0x3002) is '.'
 PASS testIDNRoundTripNotFirstCharacter(0x3002) is '.'
-PASS testIDNEncode(0xff0e) is '%uFF0E'
+PASS testIDNRoundTrip(0xff0e) is '.'
 PASS testIDNRoundTripNotFirstCharacter(0xff0e) is '.'
-PASS testIDNEncode(0xff61) is '%uFF61'
+PASS testIDNRoundTrip(0xff61) is '.'
 PASS testIDNRoundTripNotFirstCharacter(0xff61) is '.'
-PASS testIDNEncode(0xfeff) is '%uFEFF'
+PASS testIDNRoundTrip(0xfeff) is ''
 PASS testIDNRoundTripNotFirstCharacter(0xfeff) is ''
 
index 4408376d56a90d2fcdfe0e094aacf0bf37b1ab8a..2191fbcac52f66f18336ca395b86c8ab6246b1a8 100644 (file)
@@ -112,12 +112,14 @@ function testDoesNotEncodeIDNCharacter(charCode)
     shouldBe("testIDNEncodeTripFirstCharacter(0x" + charCode.toString(16) + ")", "'" + expected + "'");
 }
 
+var isOlderICU = testIDNEncode(0x3002) == ".";
+
 /* Allowed Characters - dot and slash */
 testIDNCharacter(".".charCodeAt(0), "allowed");
 testIDNCharacter("/".charCodeAt(0), "allowed");
 
 /* Allowed Characters - one character for each script in the default IDN whitelist*/
-testIDNCharacter(0x0041, "allowed");
+testIDNCharacter(0x0061, "allowed");
 testIDNCharacter(0x0633, "allowed");
 testIDNCharacter(0x0561, "allowed");
 testIDNCharacter(0x3105, "allowed");
@@ -242,11 +244,19 @@ testIDNCharacter(0x0702, "disallowed", "does not encode");
 /* ICU won't encode these characters if they're the first character in the host name.  
    If the character does get encoded as the first character, then ICU converts it to another allowed character */
 
-testIDNCharacter(0x200B, "does not encode", "");
-testIDNCharacter(0x3002, "does not encode", ".");
-testIDNCharacter(0xFF0E, "does not encode", ".");
-testIDNCharacter(0xFF61, "does not encode", ".");
-testIDNCharacter(0xFEFF, "does not encode", "");
+if (isOlderICU) {
+    testIDNCharacter(0x200B, "");
+    testIDNCharacter(0x3002, ".");
+    testIDNCharacter(0xFF0E, ".");
+    testIDNCharacter(0xFF61, ".");
+    testIDNCharacter(0xFEFF, "");
+} else {
+    testIDNCharacter(0x200B, "does not encode", "");
+    testIDNCharacter(0x3002, "does not encode", ".");
+    testIDNCharacter(0xFF0E, "does not encode", ".");
+    testIDNCharacter(0xFF61, "does not encode", ".");
+    testIDNCharacter(0xFEFF, "does not encode", "");
+}
 
 successfullyParsed = true;
 
diff --git a/LayoutTests/mac/leopard/fast/encoding/idn-security-expected.txt b/LayoutTests/mac/leopard/fast/encoding/idn-security-expected.txt
new file mode 100644 (file)
index 0000000..40c4afd
--- /dev/null
@@ -0,0 +1,229 @@
+PASS testIDNRoundTrip(0x2e) is '.'
+PASS testIDNRoundTripNotFirstCharacter(0x2e) is '.'
+PASS testIDNRoundTrip(0x2f) is '/'
+PASS testIDNRoundTripNotFirstCharacter(0x2f) is '/'
+PASS testIDNRoundTrip(0x61) is 'a'
+PASS testIDNRoundTripNotFirstCharacter(0x61) is 'a'
+PASS testIDNRoundTrip(0x633) is '%u0633'
+PASS testIDNRoundTripNotFirstCharacter(0x633) is '%u0633'
+PASS testIDNRoundTrip(0x561) is '%u0561'
+PASS testIDNRoundTripNotFirstCharacter(0x561) is '%u0561'
+PASS testIDNRoundTrip(0x3105) is '%u3105'
+PASS testIDNRoundTripNotFirstCharacter(0x3105) is '%u3105'
+PASS testIDNRoundTrip(0x1613) is '%u1613'
+PASS testIDNRoundTripNotFirstCharacter(0x1613) is '%u1613'
+PASS testIDNRoundTrip(0x905) is '%u0905'
+PASS testIDNRoundTripNotFirstCharacter(0x905) is '%u0905'
+PASS testIDNRoundTrip(0xa85) is '%u0A85'
+PASS testIDNRoundTripNotFirstCharacter(0xa85) is '%u0A85'
+PASS testIDNRoundTrip(0xa05) is '%u0A05'
+PASS testIDNRoundTripNotFirstCharacter(0xa05) is '%u0A05'
+PASS testIDNRoundTrip(0x1115) is '%u1115'
+PASS testIDNRoundTripNotFirstCharacter(0x1115) is '%u1115'
+PASS testIDNRoundTrip(0x4e2d) is '%u4E2D'
+PASS testIDNRoundTripNotFirstCharacter(0x4e2d) is '%u4E2D'
+PASS testIDNRoundTrip(0x5d0) is '%u05D0'
+PASS testIDNRoundTripNotFirstCharacter(0x5d0) is '%u05D0'
+PASS testIDNRoundTrip(0x3041) is '%u3041'
+PASS testIDNRoundTripNotFirstCharacter(0x3041) is '%u3041'
+PASS testIDNRoundTrip(0x30a1) is '%u30A1'
+PASS testIDNRoundTripNotFirstCharacter(0x30a1) is '%u30A1'
+PASS testIDNRoundTrip(0xb94) is '%u0B94'
+PASS testIDNRoundTripNotFirstCharacter(0xb94) is '%u0B94'
+PASS testIDNRoundTrip(0xe01) is '%u0E01'
+PASS testIDNRoundTripNotFirstCharacter(0xe01) is '%u0E01'
+PASS testIDNRoundTrip(0xa000) is '%uA000'
+PASS testIDNRoundTripNotFirstCharacter(0xa000) is '%uA000'
+PASS testIDNRoundTrip(0x2024) is '.'
+PASS testIDNRoundTripNotFirstCharacter(0x2024) is '.'
+PASS testIDNRoundTrip(0xfe52) is '.'
+PASS testIDNRoundTripNotFirstCharacter(0xfe52) is '.'
+PASS testIDNRoundTrip(0xff0f) is '/'
+PASS testIDNRoundTripNotFirstCharacter(0xff0f) is '/'
+PASS testIDNRoundTrip(0xa0) is '%20'
+PASS testIDNRoundTripNotFirstCharacter(0xa0) is '%20'
+PASS testIDNRoundTrip(0x2000) is '%20'
+PASS testIDNRoundTripNotFirstCharacter(0x2000) is '%20'
+PASS testIDNRoundTrip(0x2001) is '%20'
+PASS testIDNRoundTripNotFirstCharacter(0x2001) is '%20'
+PASS testIDNRoundTrip(0x2002) is '%20'
+PASS testIDNRoundTripNotFirstCharacter(0x2002) is '%20'
+PASS testIDNRoundTrip(0x2003) is '%20'
+PASS testIDNRoundTripNotFirstCharacter(0x2003) is '%20'
+PASS testIDNRoundTrip(0x2004) is '%20'
+PASS testIDNRoundTripNotFirstCharacter(0x2004) is '%20'
+PASS testIDNRoundTrip(0x2005) is '%20'
+PASS testIDNRoundTripNotFirstCharacter(0x2005) is '%20'
+PASS testIDNRoundTrip(0x2006) is '%20'
+PASS testIDNRoundTripNotFirstCharacter(0x2006) is '%20'
+PASS testIDNRoundTrip(0x2007) is '%20'
+PASS testIDNRoundTripNotFirstCharacter(0x2007) is '%20'
+PASS testIDNRoundTrip(0x2008) is '%20'
+PASS testIDNRoundTripNotFirstCharacter(0x2008) is '%20'
+PASS testIDNRoundTrip(0x2009) is '%20'
+PASS testIDNRoundTripNotFirstCharacter(0x2009) is '%20'
+PASS testIDNRoundTrip(0x200a) is '%20'
+PASS testIDNRoundTripNotFirstCharacter(0x200a) is '%20'
+PASS testIDNRoundTrip(0x202f) is '%20'
+PASS testIDNRoundTripNotFirstCharacter(0x202f) is '%20'
+PASS testIDNRoundTrip(0x205f) is '%20'
+PASS testIDNRoundTripNotFirstCharacter(0x205f) is '%20'
+PASS testIDNRoundTrip(0x3000) is '%20'
+PASS testIDNRoundTripNotFirstCharacter(0x3000) is '%20'
+PASS testIDNRoundTrip(0xbc) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0xbc) is 'punycode'
+PASS testIDNRoundTrip(0xbd) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0xbd) is 'punycode'
+PASS testIDNRoundTrip(0x1c3) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x1c3) is 'punycode'
+PASS testIDNRoundTrip(0x337) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x337) is 'punycode'
+PASS testIDNRoundTrip(0x337) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x337) is 'punycode'
+PASS testIDNRoundTrip(0x338) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x338) is 'punycode'
+PASS testIDNRoundTrip(0x338) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x338) is 'punycode'
+PASS testIDNRoundTrip(0x5b4) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x5b4) is 'punycode'
+PASS testIDNRoundTrip(0x5bc) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x5bc) is 'punycode'
+PASS testIDNRoundTrip(0x660) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x660) is 'punycode'
+PASS testIDNRoundTrip(0x6f0) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x6f0) is 'punycode'
+PASS testIDNRoundTrip(0x115f) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x115f) is 'punycode'
+PASS testIDNRoundTrip(0x1160) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x1160) is 'punycode'
+PASS testIDNRoundTrip(0x2027) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x2027) is 'punycode'
+PASS testIDNRoundTrip(0x2039) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x2039) is 'punycode'
+PASS testIDNRoundTrip(0x203a) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x203a) is 'punycode'
+PASS testIDNRoundTrip(0x2044) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x2044) is 'punycode'
+PASS testIDNRoundTrip(0x2044) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x2044) is 'punycode'
+PASS testIDNRoundTrip(0x2154) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x2154) is 'punycode'
+PASS testIDNRoundTrip(0x2155) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x2155) is 'punycode'
+PASS testIDNRoundTrip(0x2156) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x2156) is 'punycode'
+PASS testIDNRoundTrip(0x2159) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x2159) is 'punycode'
+PASS testIDNRoundTrip(0x215a) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x215a) is 'punycode'
+PASS testIDNRoundTrip(0x215b) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x215b) is 'punycode'
+PASS testIDNRoundTrip(0x215f) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x215f) is 'punycode'
+PASS testIDNRoundTrip(0x2215) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x2215) is 'punycode'
+PASS testIDNRoundTrip(0x2215) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x2215) is 'punycode'
+PASS testIDNRoundTrip(0x23ae) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x23ae) is 'punycode'
+PASS testIDNRoundTrip(0x2571) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x2571) is 'punycode'
+PASS testIDNRoundTrip(0x29f6) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x29f6) is 'punycode'
+PASS testIDNRoundTrip(0x29f8) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x29f8) is 'punycode'
+PASS testIDNRoundTrip(0x29f8) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x29f8) is 'punycode'
+PASS testIDNRoundTrip(0x2afb) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x2afb) is 'punycode'
+PASS testIDNRoundTrip(0x2afd) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x2afd) is 'punycode'
+PASS testIDNRoundTrip(0x3014) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x3014) is 'punycode'
+PASS testIDNRoundTrip(0x3015) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x3015) is 'punycode'
+PASS testIDNRoundTrip(0x3033) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x3033) is 'punycode'
+PASS testIDNRoundTrip(0x3164) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x3164) is 'punycode'
+PASS testIDNRoundTrip(0x321d) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x321d) is 'punycode'
+PASS testIDNRoundTrip(0x321e) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x321e) is 'punycode'
+PASS testIDNRoundTrip(0x33ae) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x33ae) is 'punycode'
+PASS testIDNRoundTrip(0x33af) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x33af) is 'punycode'
+PASS testIDNRoundTrip(0x33c6) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x33c6) is 'punycode'
+PASS testIDNRoundTrip(0x33df) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0x33df) is 'punycode'
+PASS testIDNRoundTrip(0xfe14) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0xfe14) is 'punycode'
+PASS testIDNRoundTrip(0xfe15) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0xfe15) is 'punycode'
+PASS testIDNRoundTrip(0xfe3f) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0xfe3f) is 'punycode'
+PASS testIDNRoundTrip(0xfe5d) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0xfe5d) is 'punycode'
+PASS testIDNRoundTrip(0xfe5e) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0xfe5e) is 'punycode'
+PASS testIDNRoundTrip(0xffa0) is 'punycode'
+PASS testIDNRoundTripNotFirstCharacter(0xffa0) is 'punycode'
+PASS testIDNEncode(0x2028) is '%u2028'
+PASS testIDNEncodeNotFirstCharacter(0x2028) is '%u2028'
+PASS testIDNEncode(0x2029) is '%u2029'
+PASS testIDNEncodeNotFirstCharacter(0x2029) is '%u2029'
+PASS testIDNEncode(0x2ff0) is '%u2FF0'
+PASS testIDNEncodeNotFirstCharacter(0x2ff0) is '%u2FF0'
+PASS testIDNEncode(0x2ff1) is '%u2FF1'
+PASS testIDNEncodeNotFirstCharacter(0x2ff1) is '%u2FF1'
+PASS testIDNEncode(0x2ff2) is '%u2FF2'
+PASS testIDNEncodeNotFirstCharacter(0x2ff2) is '%u2FF2'
+PASS testIDNEncode(0x2ff3) is '%u2FF3'
+PASS testIDNEncodeNotFirstCharacter(0x2ff3) is '%u2FF3'
+PASS testIDNEncode(0x2ff4) is '%u2FF4'
+PASS testIDNEncodeNotFirstCharacter(0x2ff4) is '%u2FF4'
+PASS testIDNEncode(0x2ff5) is '%u2FF5'
+PASS testIDNEncodeNotFirstCharacter(0x2ff5) is '%u2FF5'
+PASS testIDNEncode(0x2ff6) is '%u2FF6'
+PASS testIDNEncodeNotFirstCharacter(0x2ff6) is '%u2FF6'
+PASS testIDNEncode(0x2ff7) is '%u2FF7'
+PASS testIDNEncodeNotFirstCharacter(0x2ff7) is '%u2FF7'
+PASS testIDNEncode(0x2ff8) is '%u2FF8'
+PASS testIDNEncodeNotFirstCharacter(0x2ff8) is '%u2FF8'
+PASS testIDNEncode(0x2ff9) is '%u2FF9'
+PASS testIDNEncodeNotFirstCharacter(0x2ff9) is '%u2FF9'
+PASS testIDNEncode(0x2ffa) is '%u2FFA'
+PASS testIDNEncodeNotFirstCharacter(0x2ffa) is '%u2FFA'
+PASS testIDNEncode(0x2ffb) is '%u2FFB'
+PASS testIDNEncodeNotFirstCharacter(0x2ffb) is '%u2FFB'
+PASS testIDNEncode(0xfff9) is '%uFFF9'
+PASS testIDNEncodeNotFirstCharacter(0xfff9) is '%uFFF9'
+PASS testIDNEncode(0xfffa) is '%uFFFA'
+PASS testIDNEncodeNotFirstCharacter(0xfffa) is '%uFFFA'
+PASS testIDNEncode(0xfffb) is '%uFFFB'
+PASS testIDNEncodeNotFirstCharacter(0xfffb) is '%uFFFB'
+PASS testIDNEncode(0xfffc) is '%uFFFC'
+PASS testIDNEncodeNotFirstCharacter(0xfffc) is '%uFFFC'
+PASS testIDNEncode(0xfffd) is '%uFFFD'
+PASS testIDNEncodeNotFirstCharacter(0xfffd) is '%uFFFD'
+PASS testIDNRoundTrip(0x5c3) is 'punycode'
+PASS testIDNEncodeNotFirstCharacter(0x5c3) is '%u05C3'
+PASS testIDNRoundTrip(0x5f4) is 'punycode'
+PASS testIDNEncodeNotFirstCharacter(0x5f4) is '%u05F4'
+PASS testIDNRoundTrip(0x6d4) is 'punycode'
+PASS testIDNEncodeNotFirstCharacter(0x6d4) is '%u06D4'
+PASS testIDNRoundTrip(0x702) is 'punycode'
+PASS testIDNEncodeNotFirstCharacter(0x702) is '%u0702'
+PASS testIDNEncode(0x200b) is '%u200B'
+PASS testIDNRoundTripNotFirstCharacter(0x200b) is ''
+PASS testIDNEncode(0x3002) is '%u3002'
+PASS testIDNRoundTripNotFirstCharacter(0x3002) is '.'
+PASS testIDNEncode(0xff0e) is '%uFF0E'
+PASS testIDNRoundTripNotFirstCharacter(0xff0e) is '.'
+PASS testIDNEncode(0xff61) is '%uFF61'
+PASS testIDNRoundTripNotFirstCharacter(0xff61) is '.'
+PASS testIDNEncode(0xfeff) is '%uFEFF'
+PASS testIDNRoundTripNotFirstCharacter(0xfeff) is ''
+