Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
a4eee688
Commit
a4eee688
authored
Sep 06, 2010
by
Thomas Mullaly
Committed by
Alexandre Julliard
Sep 07, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
urlmon: Implemented IUriBuilder_{Get/Set}Port.
parent
23e312e3
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
152 additions
and
5 deletions
+152
-5
uri.c
dlls/urlmon/tests/uri.c
+135
-1
uri.c
dlls/urlmon/uri.c
+17
-4
No files found.
dlls/urlmon/tests/uri.c
View file @
a4eee688
...
...
@@ -4315,7 +4315,7 @@ static const uri_builder_test uri_builder_tests[] = {
{
{
TRUE
,
"test"
,
NULL
,
Uri_PROPERTY_SCHEME_NAME
,
S_OK
,
TRUE
}
},
{
TRUE
,
TRUE
,
120
,
S_OK
,
TRU
E
},
{
TRUE
,
TRUE
,
120
,
S_OK
,
FALS
E
},
0
,
S_OK
,
TRUE
,
0
,
S_OK
,
TRUE
,
0
,
0
,
0
,
S_OK
,
TRUE
,
...
...
@@ -4568,6 +4568,109 @@ static const uri_builder_test uri_builder_tests[] = {
{
URL_SCHEME_UNKNOWN
,
S_OK
},
{
URLZONE_INVALID
,
E_NOTIMPL
}
}
},
{
"http://google.com/"
,
0
,
S_OK
,
FALSE
,
{
{
FALSE
},
},
/* 555 will be returned from GetPort even though FALSE was passed as the hasPort parameter. */
{
TRUE
,
FALSE
,
555
,
S_OK
,
FALSE
},
0
,
S_OK
,
TRUE
,
0
,
S_OK
,
TRUE
,
0
,
0
,
0
,
S_OK
,
TRUE
,
{
{
"http://google.com/"
,
S_OK
},
{
"google.com"
,
S_OK
},
{
"http://google.com/"
,
S_OK
},
{
"google.com"
,
S_OK
},
{
""
,
S_FALSE
},
{
""
,
S_FALSE
},
{
"google.com"
,
S_OK
},
{
""
,
S_FALSE
},
{
"/"
,
S_OK
},
{
"/"
,
S_OK
},
{
""
,
S_FALSE
},
{
"http://google.com/"
,
S_OK
},
{
"http"
,
S_OK
},
{
""
,
S_FALSE
},
{
""
,
S_FALSE
}
},
{
{
Uri_HOST_DNS
,
S_OK
},
/* Still returns 80, even though earlier the port was disabled. */
{
80
,
S_OK
},
{
URL_SCHEME_HTTP
,
S_OK
},
{
URLZONE_INVALID
,
E_NOTIMPL
}
}
},
{
"http://google.com/"
,
0
,
S_OK
,
FALSE
,
{
{
FALSE
},
},
/* Instead of getting "TRUE" back as the "hasPort" parameter in GetPort,
* you'll get 122345 instead.
*/
{
TRUE
,
122345
,
222
,
S_OK
,
FALSE
},
0
,
S_OK
,
TRUE
,
0
,
S_OK
,
TRUE
,
0
,
0
,
0
,
S_OK
,
TRUE
,
{
{
"http://google.com:222/"
,
S_OK
},
{
"google.com:222"
,
S_OK
},
{
"http://google.com:222/"
,
S_OK
},
{
"google.com"
,
S_OK
},
{
""
,
S_FALSE
},
{
""
,
S_FALSE
},
{
"google.com"
,
S_OK
},
{
""
,
S_FALSE
},
{
"/"
,
S_OK
},
{
"/"
,
S_OK
},
{
""
,
S_FALSE
},
{
"http://google.com:222/"
,
S_OK
},
{
"http"
,
S_OK
},
{
""
,
S_FALSE
},
{
""
,
S_FALSE
}
},
{
{
Uri_HOST_DNS
,
S_OK
},
{
222
,
S_OK
},
{
URL_SCHEME_HTTP
,
S_OK
},
{
URLZONE_INVALID
,
E_NOTIMPL
}
}
},
/* IUri's created with the IUriBuilder can have ports that exceed USHORT_MAX. */
{
"http://google.com/"
,
0
,
S_OK
,
FALSE
,
{
{
FALSE
},
},
{
TRUE
,
TRUE
,
999999
,
S_OK
,
FALSE
},
0
,
S_OK
,
TRUE
,
0
,
S_OK
,
TRUE
,
0
,
0
,
0
,
S_OK
,
TRUE
,
{
{
"http://google.com:999999/"
,
S_OK
},
{
"google.com:999999"
,
S_OK
},
{
"http://google.com:999999/"
,
S_OK
},
{
"google.com"
,
S_OK
},
{
""
,
S_FALSE
},
{
""
,
S_FALSE
},
{
"google.com"
,
S_OK
},
{
""
,
S_FALSE
},
{
"/"
,
S_OK
},
{
"/"
,
S_OK
},
{
""
,
S_FALSE
},
{
"http://google.com:999999/"
,
S_OK
},
{
"http"
,
S_OK
},
{
""
,
S_FALSE
},
{
""
,
S_FALSE
}
},
{
{
Uri_HOST_DNS
,
S_OK
},
{
999999
,
S_OK
},
{
URL_SCHEME_HTTP
,
S_OK
},
{
URLZONE_INVALID
,
E_NOTIMPL
}
}
}
};
...
...
@@ -7516,6 +7619,34 @@ static void test_IUriBuilder_RemoveProperties(void) {
}
}
static
void
test_IUriBuilder_Misc
(
void
)
{
HRESULT
hr
;
IUri
*
uri
;
hr
=
pCreateUri
(
http_urlW
,
0
,
0
,
&
uri
);
if
(
SUCCEEDED
(
hr
))
{
IUriBuilder
*
builder
;
hr
=
pCreateIUriBuilder
(
uri
,
0
,
0
,
&
builder
);
ok
(
hr
==
S_OK
,
"Error: CreateIUriBuilder returned 0x%08x, expected 0x%08x.
\n
"
,
hr
,
S_OK
);
if
(
SUCCEEDED
(
hr
))
{
BOOL
has
=
-
1
;
DWORD
port
=
-
1
;
hr
=
IUriBuilder_GetPort
(
builder
,
&
has
,
&
port
);
ok
(
hr
==
S_OK
,
"Error: IUriBuilder_GetPort returned 0x%08x, expected 0x%08x.
\n
"
,
hr
,
S_OK
);
if
(
SUCCEEDED
(
hr
))
{
/* 'has' will be set to FALSE, even though uri had a port. */
ok
(
has
==
FALSE
,
"Error: Expected 'has' to be FALSE, was %d instead.
\n
"
,
has
);
/* Still sets 'port' to 80. */
ok
(
port
==
80
,
"Error: Expected the port to be 80, but, was %d instead.
\n
"
,
port
);
}
}
if
(
builder
)
IUriBuilder_Release
(
builder
);
}
if
(
uri
)
IUri_Release
(
uri
);
}
START_TEST
(
uri
)
{
HMODULE
hurlmon
;
...
...
@@ -7591,4 +7722,7 @@ START_TEST(uri) {
trace
(
"test IUriBuilder_RemoveProperties...
\n
"
);
test_IUriBuilder_RemoveProperties
();
trace
(
"test IUriBuilder miscellaneous...
\n
"
);
test_IUriBuilder_Misc
();
}
dlls/urlmon/uri.c
View file @
a4eee688
...
...
@@ -91,6 +91,9 @@ typedef struct {
WCHAR
*
path
;
DWORD
path_len
;
BOOL
has_port
;
DWORD
port
;
}
UriBuilder
;
typedef
struct
{
...
...
@@ -4506,8 +4509,9 @@ static HRESULT WINAPI UriBuilder_GetPort(IUriBuilder *iface, BOOL *pfHasPort, DW
return
E_POINTER
;
}
FIXME
(
"(%p)->(%p %p)
\n
"
,
This
,
pfHasPort
,
pdwPort
);
return
E_NOTIMPL
;
*
pfHasPort
=
This
->
has_port
;
*
pdwPort
=
This
->
port
;
return
S_OK
;
}
static
HRESULT
WINAPI
UriBuilder_GetQuery
(
IUriBuilder
*
iface
,
DWORD
*
pcchQuery
,
LPCWSTR
*
ppwzQuery
)
...
...
@@ -4605,8 +4609,12 @@ static HRESULT WINAPI UriBuilder_SetPath(IUriBuilder *iface, LPCWSTR pwzNewValue
static
HRESULT
WINAPI
UriBuilder_SetPort
(
IUriBuilder
*
iface
,
BOOL
fHasPort
,
DWORD
dwNewValue
)
{
UriBuilder
*
This
=
URIBUILDER_THIS
(
iface
);
FIXME
(
"(%p)->(%d %d)
\n
"
,
This
,
fHasPort
,
dwNewValue
);
return
E_NOTIMPL
;
TRACE
(
"(%p)->(%d %d)
\n
"
,
This
,
fHasPort
,
dwNewValue
);
This
->
has_port
=
fHasPort
;
This
->
port
=
dwNewValue
;
This
->
modified_props
|=
Uri_HAS_PORT
;
return
S_OK
;
}
static
HRESULT
WINAPI
UriBuilder_SetQuery
(
IUriBuilder
*
iface
,
LPCWSTR
pwzNewValue
)
...
...
@@ -4705,6 +4713,11 @@ HRESULT WINAPI CreateIUriBuilder(IUri *pIUri, DWORD dwFlags, DWORD_PTR dwReserve
if
((
uri
=
get_uri_obj
(
pIUri
)))
{
IUri_AddRef
(
pIUri
);
ret
->
uri
=
uri
;
if
(
uri
->
has_port
)
/* Windows doesn't set 'has_port' to TRUE in this case. */
ret
->
port
=
uri
->
port
;
}
else
{
heap_free
(
ret
);
*
ppIUriBuilder
=
NULL
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment