Module: wine Branch: master Commit: 1d6c28459be7c44d9aa897f9b5ac1e523523f021 URL: http://source.winehq.org/git/wine.git/?a=commit;h=1d6c28459be7c44d9aa897f9b5...
Author: Jacek Caban jacek@codeweavers.com Date: Tue Jun 24 15:24:59 2008 -0500
mshtml: Added IHTMLSelectElement::get_type implementation.
---
dlls/mshtml/htmlselect.c | 22 ++++++++++++++++++++-- dlls/mshtml/tests/dom.c | 12 ++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-)
diff --git a/dlls/mshtml/htmlselect.c b/dlls/mshtml/htmlselect.c index 9bd2693..a432b6d 100644 --- a/dlls/mshtml/htmlselect.c +++ b/dlls/mshtml/htmlselect.c @@ -223,8 +223,26 @@ static HRESULT WINAPI HTMLSelectElement_get_selectedIndex(IHTMLSelectElement *if static HRESULT WINAPI HTMLSelectElement_get_type(IHTMLSelectElement *iface, BSTR *p) { HTMLSelectElement *This = HTMLSELECT_THIS(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + const PRUnichar *type; + nsAString type_str; + nsresult nsres; + HRESULT hres = S_OK; + + TRACE("(%p)->(%p)\n", This, p); + + nsAString_Init(&type_str, NULL); + nsres = nsIDOMHTMLSelectElement_GetType(This->nsselect, &type_str); + if(NS_SUCCEEDED(nsres)) { + nsAString_GetData(&type_str, &type); + *p = *type ? SysAllocString(type) : NULL; + }else { + ERR("GetType failed: %08x\n", nsres); + hres = E_FAIL; + } + + nsAString_Finish(&type_str); + + return hres; }
static HRESULT WINAPI HTMLSelectElement_put_value(IHTMLSelectElement *iface, BSTR v) diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c index 3c51ec7..5a3101b 100644 --- a/dlls/mshtml/tests/dom.c +++ b/dlls/mshtml/tests/dom.c @@ -656,6 +656,17 @@ static void _test_select_set_value(unsigned line, IHTMLSelectElement *select, co ok_(__FILE__,line) (hres == S_OK, "put_value failed: %08x\n", hres); }
+#define test_select_type(s,t) _test_select_type(__LINE__,s,t) +static void _test_select_type(unsigned line, IHTMLSelectElement *select, const char *extype) +{ + BSTR type; + HRESULT hres; + + hres = IHTMLSelectElement_get_type(select, &type); + ok_(__FILE__,line) (hres == S_OK, "get_type failed: %08x\n", hres); + ok_(__FILE__,line) (!strcmp_wa(type, extype), "type=%s, expected %s\n", dbgstr_w(type), extype); +} + #define test_range_text(r,t) _test_range_text(__LINE__,r,t) static void _test_range_text(unsigned line, IHTMLTxtRange *range, const char *extext) { @@ -1368,6 +1379,7 @@ static IHTMLElement *get_doc_elem_by_id(IHTMLDocument2 *doc, LPCWSTR id)
static void test_select_elem(IHTMLSelectElement *select) { + test_select_type(select, "select-one"); test_select_length(select, 2); test_select_selidx(select, 0); test_select_put_selidx(select, 1);