Module: wine Branch: master Commit: 7c6bb2fbfc289ea8b6166bebc05212999812b6c0 URL: http://source.winehq.org/git/wine.git/?a=commit;h=7c6bb2fbfc289ea8b6166bebc0...
Author: Thomas Mullaly thomas.mullaly@gmail.com Date: Tue Oct 12 20:50:18 2010 -0400
urlmon/tests: Added more CoInternetCombineIUri tests.
---
dlls/urlmon/tests/uri.c | 117 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 117 insertions(+), 0 deletions(-)
diff --git a/dlls/urlmon/tests/uri.c b/dlls/urlmon/tests/uri.c index bf1ed1c..92fb94f 100644 --- a/dlls/urlmon/tests/uri.c +++ b/dlls/urlmon/tests/uri.c @@ -6017,6 +6017,123 @@ static const uri_combine_test uri_combine_tests[] = { {URL_SCHEME_HTTP,S_OK}, {URLZONE_INVALID,E_NOTIMPL} } + }, + /* Windows validates the path component from the relative Uri. */ + { "http://google.com/test%22,0, + "/Te%XXst",Uri_CREATE_ALLOW_RELATIVE, + 0,E_INVALIDARG,TRUE + }, + /* Windows doesn't validate the query from the relative Uri. */ + { "http://google.com/test%22,0, + "?Tes%XXt",Uri_CREATE_ALLOW_RELATIVE, + 0,S_OK,TRUE, + { + {"http://google.com/test?Tes%XXt%22,S_OK%7D, + {"google.com",S_OK}, + {"http://google.com/test?Tes%XXt%22,S_OK%7D, + {"google.com",S_OK}, + {"",S_FALSE}, + {"",S_FALSE}, + {"google.com",S_OK}, + {"",S_FALSE}, + {"/test",S_OK}, + {"/test?Tes%XXt",S_OK}, + {"?Tes%XXt",S_OK}, + {"http://google.com/test?Tes%XXt%22,S_OK%7D, + {"http",S_OK}, + {"",S_FALSE}, + {"",S_FALSE} + }, + { + {Uri_HOST_DNS,S_OK}, + {80,S_OK}, + {URL_SCHEME_HTTP,S_OK}, + {URLZONE_INVALID,E_NOTIMPL} + } + }, + /* Windows doesn't validate the fragment from the relative Uri. */ + { "http://google.com/test%22,0, + "#Tes%XXt",Uri_CREATE_ALLOW_RELATIVE, + 0,S_OK,TRUE, + { + {"http://google.com/test#Tes%XXt%22,S_OK%7D, + {"google.com",S_OK}, + {"http://google.com/test#Tes%XXt%22,S_OK%7D, + {"google.com",S_OK}, + {"",S_FALSE}, + {"#Tes%XXt",S_OK}, + {"google.com",S_OK}, + {"",S_FALSE}, + {"/test",S_OK}, + {"/test",S_OK}, + {"",S_FALSE}, + {"http://google.com/test#Tes%XXt%22,S_OK%7D, + {"http",S_OK}, + {"",S_FALSE}, + {"",S_FALSE} + }, + { + {Uri_HOST_DNS,S_OK}, + {80,S_OK}, + {URL_SCHEME_HTTP,S_OK}, + {URLZONE_INVALID,E_NOTIMPL} + } + }, + /* Creates an IUri which contains an invalid dos path char. */ + { "file:///c:/test",0, + "/test<ing",Uri_CREATE_ALLOW_RELATIVE, + URL_FILE_USE_PATHURL,S_OK,TRUE, + { + {"file://c:\test<ing",S_OK}, + {"",S_FALSE}, + {"file://c:\test<ing",S_OK}, + {"",S_FALSE}, + {"",S_FALSE}, + {"",S_FALSE}, + {"",S_FALSE}, + {"",S_FALSE}, + {"c:\test<ing",S_OK}, + {"c:\test<ing",S_OK}, + {"",S_FALSE}, + {"file://c:\test<ing",S_OK}, + {"file",S_OK}, + {"",S_FALSE}, + {"",S_FALSE} + }, + { + {Uri_HOST_UNKNOWN,S_OK}, + {0,S_FALSE}, + {URL_SCHEME_FILE,S_OK}, + {URLZONE_INVALID,E_NOTIMPL} + } + }, + /* Appends the path after the drive letter (if any). */ + { "file:///c:/test",0, + "/c:/testing",Uri_CREATE_ALLOW_RELATIVE, + 0,S_OK,TRUE, + { + {"file:///c:/c:/testing",S_OK}, + {"",S_FALSE}, + {"file:///c:/c:/testing",S_OK}, + {"",S_FALSE}, + {"",S_FALSE}, + {"",S_FALSE}, + {"",S_FALSE}, + {"",S_FALSE}, + {"/c:/c:/testing",S_OK}, + {"/c:/c:/testing",S_OK}, + {"",S_FALSE}, + {"file:///c:/c:/testing",S_OK}, + {"file",S_OK}, + {"",S_FALSE}, + {"",S_FALSE} + }, + { + {Uri_HOST_UNKNOWN,S_OK}, + {0,S_FALSE}, + {URL_SCHEME_FILE,S_OK}, + {URLZONE_INVALID,E_NOTIMPL} + } } };