Bug 37700 - Test file: URL canonicalization
Summary: Test file: URL canonicalization
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: 528+ (Nightly build)
Hardware: Other OS X 10.5
: P2 Normal
Assignee: Nobody
Depends on: 37708
  Show dependency treegraph
Reported: 2010-04-16 00:01 PDT by Maciej Stachowiak
Modified: 2010-04-19 10:08 PDT (History)
3 users (show)

See Also:

Patch (12.11 KB, patch)
2010-04-16 00:10 PDT, Maciej Stachowiak
no flags Details | Formatted Diff | Diff
Patch for landing (8.05 KB, patch)
2010-04-17 11:32 PDT, Adam Barth
no flags Details | Formatted Diff | Diff
Patch for landing (7.91 KB, patch)
2010-04-17 12:50 PDT, Adam Barth
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Maciej Stachowiak 2010-04-16 00:01:44 PDT
Test file: URL canonicalization
Comment 1 Maciej Stachowiak 2010-04-16 00:10:20 PDT
Created attachment 53518 [details]
Comment 2 Adam Barth 2010-04-16 00:16:02 PDT
Comment on attachment 53518 [details]

+ sustem


Otherwise looks good.  Hopefully we won't need to end up with platform-specific behavior.
Comment 3 Maciej Stachowiak 2010-04-16 00:27:31 PDT
Committed r57719: <http://trac.webkit.org/changeset/57719>
Comment 4 Adam Barth 2010-04-17 11:19:43 PDT
This was rolled out because it broke some windows bots.  I'm making a new version now.
Comment 5 Adam Barth 2010-04-17 11:32:24 PDT
Created attachment 53601 [details]
Patch for landing
Comment 6 WebKit Commit Bot 2010-04-17 11:59:53 PDT
Comment on attachment 53601 [details]
Patch for landing

Rejecting patch 53601 from commit-queue.

Failed to run "['WebKitTools/Scripts/run-webkit-tests', '--no-launch-safari', '--exit-after-n-failures=1', '--quiet']" exit_code: 1
Running build-dumprendertree
Compiling Java tests
make: Nothing to be done for `default'.
Running tests from /Users/eseidel/Projects/CommitQueue/LayoutTests
Testing 12694 test cases.
fast/url/file.html -> failed

Exiting early after 1 failures. 8879 tests run.
158.72s total testing time

8878 test cases (99%) succeeded
1 test case (<1%) had incorrect layout
4 test cases (<1%) had stderr output

Full output: http://webkit-commit-queue.appspot.com/results/1717131
Comment 7 Adam Barth 2010-04-17 12:50:31 PDT
Created attachment 53607 [details]
Patch for landing
Comment 8 WebKit Commit Bot 2010-04-17 13:10:45 PDT
Comment on attachment 53607 [details]
Patch for landing

Clearing flags on attachment: 53607

Committed r57786: <http://trac.webkit.org/changeset/57786>
Comment 9 WebKit Commit Bot 2010-04-17 13:10:50 PDT
All reviewed patches have been landed.  Closing bug.
Comment 10 James Robinson 2010-04-19 01:36:40 PDT
Looks like this fails on the Chromium canaries, I think the diffs are only rebaselines.  Here's what the results look like on chromium+win:

Canonicalization of file URLs

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".

FAIL canonicalize('file:c:\\foo\\bar.html') should be file:///C:/foo/bar.html. Was file:///tmp/mock/c:/foo/bar.html.
FAIL canonicalize('  File:c|////foo\\bar.html') should be file:///C:////foo/bar.html. Was file:///tmp/mock/c%7C////foo/bar.html.
FAIL canonicalize('file:') should be file:///. Was file:///tmp/mock/path.
FAIL canonicalize('file:UNChost/path') should be file://unchost/path. Was file:///tmp/mock/UNChost/path.
FAIL canonicalize('c:\\foo\\bar') should be file:///C:/foo/bar. Was c:\foo\bar.
FAIL canonicalize('C|/foo/bar') should be file:///C:/foo/bar. Was file:///tmp/mock/C%7C/foo/bar.
FAIL canonicalize('/C|\\foo\\bar') should be file:///C:/foo/bar. Was file:///C%7C/foo/bar.
FAIL canonicalize('//C|/foo/bar') should be file:///C:/foo/bar. Was file://c%7C/foo/bar.
PASS canonicalize('//server/file') is 'file://server/file'
PASS canonicalize('\\\\server\\file') is 'file://server/file'
PASS canonicalize('/\\server/file') is 'file://server/file'
FAIL canonicalize('file:c:foo/bar.html') should be file:///C:/foo/bar.html. Was file:///tmp/mock/c:foo/bar.html.
PASS canonicalize('file:/\\/\\C:\\\\//foo\\bar.html') is 'file:///C:////foo/bar.html'
PASS canonicalize('file:///foo/bar.txt') is 'file:///foo/bar.txt'
FAIL canonicalize('FILE:/\\/\\7:\\\\//foo\\bar.html') should be file://7:////foo/bar.html. Was file:///7:////foo/bar.html.
FAIL canonicalize('file:filer/home\\me') should be file://filer/home/me. Was file:///tmp/mock/filer/home/me.
FAIL canonicalize('file:///C:/foo/../../../bar.html') should be file:///C:/bar.html. Was file:///bar.html.
FAIL canonicalize('file:///C:/asdf#\xc2') should be file:///C:/asdf#�. Was file:///C:/asdf#Â.
PASS canonicalize('file:///home/me') is 'file:///home/me'
FAIL canonicalize('file:c:\\foo\\bar.html') should be file:///c:/foo/bar.html. Was file:///tmp/mock/c:/foo/bar.html.
FAIL canonicalize('file:c|//foo\\bar.html') should be file:///c%7C//foo/bar.html. Was file:///tmp/mock/c%7C//foo/bar.html.
PASS canonicalize('//') is 'file:///'
PASS canonicalize('///') is 'file:///'
PASS canonicalize('///test') is 'file:///test'
PASS canonicalize('file://test') is 'file://test/'
PASS canonicalize('file://localhost') is 'file://localhost/'
PASS canonicalize('file://localhost/') is 'file://localhost/'
PASS canonicalize('file://localhost/test') is 'file://localhost/test'
PASS successfullyParsed is true


I'll land new baselines into platform/chromium.  It is a bummer to have to maintain two sets of results for these.
Comment 11 Adam Barth 2010-04-19 10:08:43 PDT
> I'll land new baselines into platform/chromium.  It is a bummer to have to
> maintain two sets of results for these.

Indeed.  That's why we're working to unfork the URL parser.  :)