Changeset 207803 in webkit


Ignore:
Timestamp:
Oct 24, 2016 8:46:32 PM (8 years ago)
Author:
Ryan Haddad
Message:

Unreviewed, rolling out r207795.

Introduced API test failures on iOS and macOS.

Reverted changeset:

"URLParser should match old URL::parse with %2E in path"
https://bugs.webkit.org/show_bug.cgi?id=163929
http://trac.webkit.org/changeset/207795

Location:
trunk
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r207798 r207803  
     12016-10-24  Ryan Haddad  <ryanhaddad@apple.com>
     2
     3        Unreviewed, rolling out r207795.
     4
     5        Introduced API test failures on iOS and macOS.
     6
     7        Reverted changeset:
     8
     9        "URLParser should match old URL::parse with %2E in path"
     10        https://bugs.webkit.org/show_bug.cgi?id=163929
     11        http://trac.webkit.org/changeset/207795
     12
    1132016-10-24  Yusuke Suzuki  <utatane.tea@gmail.com>
    214
  • trunk/LayoutTests/fast/url/path-expected.txt

    r207795 r207803  
    1515PASS canonicalize('http://example.com/foo/../../..') is 'http://example.com/'
    1616PASS canonicalize('http://example.com/foo/../../../ton') is 'http://example.com/ton'
    17 FAIL canonicalize('http://example.com/foo/%2e') should be http://example.com/foo/. Was http://example.com/foo/%2e.
    18 FAIL canonicalize('http://example.com/foo/%2e%2') should be http://example.com/foo/.%2. Was http://example.com/foo/%2e%2.
    19 FAIL canonicalize('http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar') should be http://example.com/..bar. Was http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar.
     17PASS canonicalize('http://example.com/foo/%2e') is 'http://example.com/foo/'
     18PASS canonicalize('http://example.com/foo/%2e%2') is 'http://example.com/foo/.%2'
     19PASS canonicalize('http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar') is 'http://example.com/..bar'
    2020PASS canonicalize('http://example.com////../..') is 'http://example.com//'
    2121PASS canonicalize('http://example.com/foo/bar//../..') is 'http://example.com/foo/'
  • trunk/LayoutTests/fast/url/standard-url-expected.txt

    r207795 r207803  
    1010PASS canonicalize('http:////////user:@google.com:99?foo') is 'http://user@google.com:99/?foo'
    1111PASS canonicalize('http://192.0x00A80001') is 'http://192.168.0.1/'
    12 FAIL canonicalize('http://www/foo%2Ehtml') should be http://www/foo.html. Was http://www/foo%2Ehtml.
     12PASS canonicalize('http://www/foo%2Ehtml') is 'http://www/foo.html'
    1313PASS canonicalize('http://user:pass@/') is 'http://user:pass@/'
    1414PASS canonicalize('http://%25DOMAIN:foobar@foodomain.com/') is 'http://%25DOMAIN:foobar@foodomain.com/'
  • trunk/LayoutTests/fetch/fetch-url-serialization-expected.txt

    r207795 r207803  
    124124PASS Testing Request url 'http://example.com/foo/../../..' with base 'about:blank'
    125125PASS Testing Request url 'http://example.com/foo/../../../ton' with base 'about:blank'
    126 FAIL Testing Request url 'http://example.com/foo/%2e' with base 'about:blank' assert_equals: expected "http://example.com/foo/" but got "http://example.com/foo/%2e"
    127 FAIL Testing Request url 'http://example.com/foo/%2e%2' with base 'about:blank' assert_equals: expected "http://example.com/foo/.%2" but got "http://example.com/foo/%2e%2"
    128 FAIL Testing Request url 'http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar' with base 'about:blank' assert_equals: expected "http://example.com/..bar" but got "http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar"
     126PASS Testing Request url 'http://example.com/foo/%2e' with base 'about:blank'
     127PASS Testing Request url 'http://example.com/foo/%2e%2' with base 'about:blank'
     128PASS Testing Request url 'http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar' with base 'about:blank'
    129129PASS Testing Request url 'http://example.com////../..' with base 'about:blank'
    130130PASS Testing Request url 'http://example.com/foo/bar//../..' with base 'about:blank'
     
    155155PASS Testing Request url 'http://www.google.com' with base 'about:blank'
    156156PASS Testing Request url 'http://192.0x00A80001' with base 'about:blank'
    157 FAIL Testing Request url 'http://www/foo%2Ehtml' with base 'about:blank' assert_equals: expected "http://www/foo.html" but got "http://www/foo%2Ehtml"
    158 FAIL Testing Request url 'http://www/foo/%2E/html' with base 'about:blank' assert_equals: expected "http://www/foo/html" but got "http://www/foo/%2E/html"
     157PASS Testing Request url 'http://www/foo%2Ehtml' with base 'about:blank'
     158PASS Testing Request url 'http://www/foo/%2E/html' with base 'about:blank'
    159159PASS Testing Request url 'http://user:pass@/' with base 'about:blank'
    160160PASS Testing Request url 'http://%25DOMAIN:foobar@foodomain.com/' with base 'about:blank'
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r207795 r207803  
     12016-10-24  Ryan Haddad  <ryanhaddad@apple.com>
     2
     3        Unreviewed, rolling out r207795.
     4
     5        Introduced API test failures on iOS and macOS.
     6
     7        Reverted changeset:
     8
     9        "URLParser should match old URL::parse with %2E in path"
     10        https://bugs.webkit.org/show_bug.cgi?id=163929
     11        http://trac.webkit.org/changeset/207795
     12
    1132016-10-24  Alex Christensen  <achristensen@webkit.org>
    214
  • trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-expected.txt

    r207795 r207803  
    127127PASS Parsing: <http://example.com/foo/../../..> against <about:blank>
    128128PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank>
    129 FAIL Parsing: <http://example.com/foo/%2e> against <about:blank> assert_equals: href expected "http://example.com/foo/" but got "http://example.com/foo/%2e"
    130 FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/.%2" but got "http://example.com/foo/%2e%2"
    131 FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/..bar" but got "http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar"
     129PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
     130PASS Parsing: <http://example.com/foo/%2e%2> against <about:blank>
     131PASS Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank>
    132132PASS Parsing: <http://example.com////../..> against <about:blank>
    133133PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank>
     
    158158PASS Parsing: <http://www.google.com> against <about:blank>
    159159PASS Parsing: <http://192.0x00A80001> against <about:blank>
    160 FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo.html" but got "http://www/foo%2Ehtml"
    161 FAIL Parsing: <http://www/foo/%2E/html> against <about:blank> assert_equals: href expected "http://www/foo/html" but got "http://www/foo/%2E/html"
     160PASS Parsing: <http://www/foo%2Ehtml> against <about:blank>
     161PASS Parsing: <http://www/foo/%2E/html> against <about:blank>
    162162PASS Parsing: <http://user:pass@/> against <about:blank>
    163163PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml-expected.txt

    r207795 r207803  
    127127PASS Parsing: <http://example.com/foo/../../..> against <about:blank>
    128128PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank>
    129 FAIL Parsing: <http://example.com/foo/%2e> against <about:blank> assert_equals: href expected "http://example.com/foo/" but got "http://example.com/foo/%2e"
    130 FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/.%2" but got "http://example.com/foo/%2e%2"
    131 FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/..bar" but got "http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar"
     129PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
     130PASS Parsing: <http://example.com/foo/%2e%2> against <about:blank>
     131PASS Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank>
    132132PASS Parsing: <http://example.com////../..> against <about:blank>
    133133PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank>
     
    158158PASS Parsing: <http://www.google.com> against <about:blank>
    159159PASS Parsing: <http://192.0x00A80001> against <about:blank>
    160 FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo.html" but got "http://www/foo%2Ehtml"
    161 FAIL Parsing: <http://www/foo/%2E/html> against <about:blank> assert_equals: href expected "http://www/foo/html" but got "http://www/foo/%2E/html"
     160PASS Parsing: <http://www/foo%2Ehtml> against <about:blank>
     161PASS Parsing: <http://www/foo/%2E/html> against <about:blank>
    162162PASS Parsing: <http://user:pass@/> against <about:blank>
    163163PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-constructor-expected.txt

    r207795 r207803  
    131131PASS Parsing: <http://example.com/foo/../../..> against <about:blank>
    132132PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank>
    133 FAIL Parsing: <http://example.com/foo/%2e> against <about:blank> assert_equals: href expected "http://example.com/foo/" but got "http://example.com/foo/%2e"
    134 FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/.%2" but got "http://example.com/foo/%2e%2"
    135 FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/..bar" but got "http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar"
     133PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
     134PASS Parsing: <http://example.com/foo/%2e%2> against <about:blank>
     135PASS Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank>
    136136PASS Parsing: <http://example.com////../..> against <about:blank>
    137137PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank>
     
    162162PASS Parsing: <http://www.google.com> against <about:blank>
    163163PASS Parsing: <http://192.0x00A80001> against <about:blank>
    164 FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo.html" but got "http://www/foo%2Ehtml"
    165 FAIL Parsing: <http://www/foo/%2E/html> against <about:blank> assert_equals: href expected "http://www/foo/html" but got "http://www/foo/%2E/html"
     164PASS Parsing: <http://www/foo%2Ehtml> against <about:blank>
     165PASS Parsing: <http://www/foo/%2E/html> against <about:blank>
    166166PASS Parsing: <http://user:pass@/> against <about:blank>
    167167PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
  • trunk/Source/WebCore/ChangeLog

    r207799 r207803  
     12016-10-24  Ryan Haddad  <ryanhaddad@apple.com>
     2
     3        Unreviewed, rolling out r207795.
     4
     5        Introduced API test failures on iOS and macOS.
     6
     7        Reverted changeset:
     8
     9        "URLParser should match old URL::parse with %2E in path"
     10        https://bugs.webkit.org/show_bug.cgi?id=163929
     11        http://trac.webkit.org/changeset/207795
     12
    1132016-10-24  Yusuke Suzuki  <utatane.tea@gmail.com>
    214
  • trunk/Source/WebCore/platform/URLParser.cpp

    r207795 r207803  
    892892}
    893893
     894static const char* dotASCIICode = "2e";
     895
     896template<typename CharacterType>
     897ALWAYS_INLINE bool URLParser::isPercentEncodedDot(CodePointIterator<CharacterType> c)
     898{
     899    if (c.atEnd())
     900        return false;
     901    if (*c != '%')
     902        return false;
     903    advance<CharacterType, ReportSyntaxViolation::No>(c);
     904    if (c.atEnd())
     905        return false;
     906    if (*c != dotASCIICode[0])
     907        return false;
     908    advance<CharacterType, ReportSyntaxViolation::No>(c);
     909    if (c.atEnd())
     910        return false;
     911    return toASCIILower(*c) == dotASCIICode[1];
     912}
     913
    894914template<typename CharacterType>
    895915ALWAYS_INLINE bool URLParser::isSingleDotPathSegment(CodePointIterator<CharacterType> c)
     
    901921        return c.atEnd() || isSlashQuestionOrHash(*c);
    902922    }
     923    if (*c != '%')
     924        return false;
     925    advance<CharacterType, ReportSyntaxViolation::No>(c);
     926    if (c.atEnd() || *c != dotASCIICode[0])
     927        return false;
     928    advance<CharacterType, ReportSyntaxViolation::No>(c);
     929    if (c.atEnd())
     930        return false;
     931    if (toASCIILower(*c) == dotASCIICode[1]) {
     932        advance<CharacterType, ReportSyntaxViolation::No>(c);
     933        return c.atEnd() || isSlashQuestionOrHash(*c);
     934    }
    903935    return false;
    904936}
     
    913945        return isSingleDotPathSegment(c);
    914946    }
     947    if (*c != '%')
     948        return false;
     949    advance<CharacterType, ReportSyntaxViolation::No>(c);
     950    if (c.atEnd() || *c != dotASCIICode[0])
     951        return false;
     952    advance<CharacterType, ReportSyntaxViolation::No>(c);
     953    if (c.atEnd())
     954        return false;
     955    if (toASCIILower(*c) == dotASCIICode[1]) {
     956        advance<CharacterType, ReportSyntaxViolation::No>(c);
     957        return isSingleDotPathSegment(c);
     958    }
    915959    return false;
    916960}
     
    920964{
    921965    ASSERT(isSingleDotPathSegment(c));
    922     advance(c);
    923     if (!c.atEnd()) {
    924         if (*c == '/' || *c == '\\')
    925             advance(c);
    926         else
    927             ASSERT(*c == '?' || *c == '#');
     966    if (*c == '.') {
     967        advance(c);
     968        if (!c.atEnd()) {
     969            if (*c == '/' || *c == '\\')
     970                advance(c);
     971            else
     972                ASSERT(*c == '?' || *c == '#');
     973        }
     974    } else {
     975        ASSERT(*c == '%');
     976        advance(c);
     977        ASSERT(*c == dotASCIICode[0]);
     978        advance(c);
     979        ASSERT(toASCIILower(*c) == dotASCIICode[1]);
     980        advance(c);
     981        if (!c.atEnd()) {
     982            if (*c == '/' || *c == '\\')
     983                advance(c);
     984            else
     985                ASSERT(*c == '?' || *c == '#');
     986        }
    928987    }
    929988}
     
    933992{
    934993    ASSERT(isDoubleDotPathSegment(c));
    935     advance(c);
     994    if (*c == '.')
     995        advance(c);
     996    else {
     997        ASSERT(*c == '%');
     998        advance(c);
     999        ASSERT(*c == dotASCIICode[0]);
     1000        advance(c);
     1001        ASSERT(toASCIILower(*c) == dotASCIICode[1]);
     1002        advance(c);
     1003    }
    9361004    consumeSingleDotPathSegment(c);
    9371005}
     
    16541722                m_url.m_queryEnd = m_url.m_pathEnd;
    16551723                state = State::Fragment;
     1724                break;
     1725            }
     1726            if (UNLIKELY(isPercentEncodedDot(c))) {
     1727                syntaxViolation(c);
     1728                appendToASCIIBuffer('.');
     1729                ASSERT(*c == '%');
     1730                advance(c);
     1731                ASSERT(*c == dotASCIICode[0]);
     1732                advance(c);
     1733                ASSERT(toASCIILower(*c) == dotASCIICode[1]);
     1734                advance(c);
    16561735                break;
    16571736            }
     
    27902869bool URLParser::enabled()
    27912870{
    2792     return true;
    2793     /*
    27942871    if (urlParserEnabled == URLParserEnabled::Undetermined) {
    27952872#if PLATFORM(MAC)
     
    28022879    }
    28032880    return urlParserEnabled == URLParserEnabled::Yes;
    2804      */
    28052881}
    28062882
  • trunk/Tools/ChangeLog

    r207795 r207803  
     12016-10-24  Ryan Haddad  <ryanhaddad@apple.com>
     2
     3        Unreviewed, rolling out r207795.
     4
     5        Introduced API test failures on iOS and macOS.
     6
     7        Reverted changeset:
     8
     9        "URLParser should match old URL::parse with %2E in path"
     10        https://bugs.webkit.org/show_bug.cgi?id=163929
     11        http://trac.webkit.org/changeset/207795
     12
    1132016-10-24  Alex Christensen  <achristensen@webkit.org>
    214
  • trunk/Tools/TestWebKitAPI/Tests/WebCore/URLParser.cpp

    r207795 r207803  
    597597        {"http", "", "", "127.0.0.1", 0, "/", "", "", "http://127.0.0.1/"},
    598598        {"http", "", "", "127.0.0.01", 0, "/", "", "", "http://127.0.0.01/"});
    599     checkURL("http://example.com/path1/.%2e", {"http", "", "", "example.com", 0, "/path1/.%2e", "", "", "http://example.com/path1/.%2e"});
    600     checkURL("http://example.com/path1/.%2E", {"http", "", "", "example.com", 0, "/path1/.%2E", "", "", "http://example.com/path1/.%2E"});
    601     checkURL("http://example.com/path1/.%2E/", {"http", "", "", "example.com", 0, "/path1/.%2E/", "", "", "http://example.com/path1/.%2E/"});
    602     checkURL("http://example.com/path1/%2e.", {"http", "", "", "example.com", 0, "/path1/%2e.", "", "", "http://example.com/path1/%2e."});
    603     checkURL("http://example.com/path1/%2E%2e", {"http", "", "", "example.com", 0, "/path1/%2E%2e", "", "", "http://example.com/path1/%2E%2e"});
    604     checkURL("http://example.com/path1/%2e", {"http", "", "", "example.com", 0, "/path1/%2e", "", "", "http://example.com/path1/%2e"});
    605     checkURL("http://example.com/path1/%2E", {"http", "", "", "example.com", 0, "/path1/%2E", "", "", "http://example.com/path1/%2E"});
    606     checkURL("http://example.com/path1/%2E/", {"http", "", "", "example.com", 0, "/path1/%2E/", "", "", "http://example.com/path1/%2E/"});
    607     checkURL("http://example.com/path1/path2/%2e?query", {"http", "", "", "example.com", 0, "/path1/path2/%2e", "query", "", "http://example.com/path1/path2/%2e?query"});
    608     checkURL("http://example.com/path1/path2/%2e%2e?query", {"http", "", "", "example.com", 0, "/path1/path2/%2e%2e", "query", "", "http://example.com/path1/path2/%2e%2e?query"});
    609     checkURL("http://example.com/path1/path2/%2e#fragment", {"http", "", "", "example.com", 0, "/path1/path2/%2e", "", "fragment", "http://example.com/path1/path2/%2e#fragment"});
    610     checkURL("http://example.com/path1/path2/%2e%2e#fragment", {"http", "", "", "example.com", 0, "/path1/path2/%2e%2e", "", "fragment", "http://example.com/path1/path2/%2e%2e#fragment"});
     599    checkURLDifferences("http://example.com/path1/.%2e",
     600        {"http", "", "", "example.com", 0, "/", "", "", "http://example.com/"},
     601        {"http", "", "", "example.com", 0, "/path1/.%2e", "", "", "http://example.com/path1/.%2e"});
     602    checkURLDifferences("http://example.com/path1/.%2E",
     603        {"http", "", "", "example.com", 0, "/", "", "", "http://example.com/"},
     604        {"http", "", "", "example.com", 0, "/path1/.%2E", "", "", "http://example.com/path1/.%2E"});
     605    checkURLDifferences("http://example.com/path1/.%2E/",
     606        {"http", "", "", "example.com", 0, "/", "", "", "http://example.com/"},
     607        {"http", "", "", "example.com", 0, "/path1/.%2E/", "", "", "http://example.com/path1/.%2E/"});
     608    checkURLDifferences("http://example.com/path1/%2e.",
     609        {"http", "", "", "example.com", 0, "/", "", "", "http://example.com/"},
     610        {"http", "", "", "example.com", 0, "/path1/%2e.", "", "", "http://example.com/path1/%2e."});
     611    checkURLDifferences("http://example.com/path1/%2E%2e",
     612        {"http", "", "", "example.com", 0, "/", "", "", "http://example.com/"},
     613        {"http", "", "", "example.com", 0, "/path1/%2E%2e", "", "", "http://example.com/path1/%2E%2e"});
     614    checkURLDifferences("http://example.com/path1/%2e",
     615        {"http", "", "", "example.com", 0, "/path1/", "", "", "http://example.com/path1/"},
     616        {"http", "", "", "example.com", 0, "/path1/%2e", "", "", "http://example.com/path1/%2e"});
     617    checkURLDifferences("http://example.com/path1/%2E",
     618        {"http", "", "", "example.com", 0, "/path1/", "", "", "http://example.com/path1/"},
     619        {"http", "", "", "example.com", 0, "/path1/%2E", "", "", "http://example.com/path1/%2E"});
     620    checkURLDifferences("http://example.com/path1/%2E/",
     621        {"http", "", "", "example.com", 0, "/path1/", "", "", "http://example.com/path1/"},
     622        {"http", "", "", "example.com", 0, "/path1/%2E/", "", "", "http://example.com/path1/%2E/"});
     623    checkURLDifferences("http://example.com/path1/path2/%2e?query",
     624        {"http", "", "", "example.com", 0, "/path1/path2/", "query", "", "http://example.com/path1/path2/?query"},
     625        {"http", "", "", "example.com", 0, "/path1/path2/%2e", "query", "", "http://example.com/path1/path2/%2e?query"});
     626    checkURLDifferences("http://example.com/path1/path2/%2e%2e?query",
     627        {"http", "", "", "example.com", 0, "/path1/", "query", "", "http://example.com/path1/?query"},
     628        {"http", "", "", "example.com", 0, "/path1/path2/%2e%2e", "query", "", "http://example.com/path1/path2/%2e%2e?query"});
     629    checkURLDifferences("http://example.com/path1/path2/%2e#fragment",
     630        {"http", "", "", "example.com", 0, "/path1/path2/", "", "fragment", "http://example.com/path1/path2/#fragment"},
     631        {"http", "", "", "example.com", 0, "/path1/path2/%2e", "", "fragment", "http://example.com/path1/path2/%2e#fragment"});
     632    checkURLDifferences("http://example.com/path1/path2/%2e%2e#fragment",
     633        {"http", "", "", "example.com", 0, "/path1/", "", "fragment", "http://example.com/path1/#fragment"},
     634        {"http", "", "", "example.com", 0, "/path1/path2/%2e%2e", "", "fragment", "http://example.com/path1/path2/%2e%2e#fragment"});
    611635    checkURLDifferences("file://[0:a:0:0:b:c:0:0]/path",
    612636        {"file", "", "", "[0:a::b:c:0:0]", 0, "/path", "", "", "file://[0:a::b:c:0:0]/path"},
     
    711735        {"http", "", "", "192.168.0.1", 0, "/", "", "", "http://192.168.0.1/"},
    712736        {"http", "", "", "0xc0.0250.01", 0, "/", "", "", "http://0xc0.0250.01/"});
    713 
    714     checkURL("http://host/path%2e.%2E", {"http", "", "", "host", 0, "/path%2e.%2E", "", "", "http://host/path%2e.%2E"});
     737    checkURLDifferences("http://host/path%2e.%2E",
     738        {"http", "", "", "host", 0, "/path...", "", "", "http://host/path..."},
     739        {"http", "", "", "host", 0, "/path%2e.%2E", "", "", "http://host/path%2e.%2E"});
    715740
    716741    checkRelativeURLDifferences(utf16String(u"http://foo:💩@example.com/bar"), "http://other.com/",
Note: See TracChangeset for help on using the changeset viewer.