Wine-devel
Threads by month
- ----- 2026 -----
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
February 2020
- 80 participants
- 745 discussions
[tools] testbot/Janitor: Avoid false positives when cleaning up staging.
by Francois Gouget 12 Feb '20
by Francois Gouget 12 Feb '20
12 Feb '20
Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com>
---
testbot/bin/Janitor.pl | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/testbot/bin/Janitor.pl b/testbot/bin/Janitor.pl
index 0635b37880..8d50349c3d 100755
--- a/testbot/bin/Janitor.pl
+++ b/testbot/bin/Janitor.pl
@@ -273,10 +273,23 @@ if (opendir(my $dh, "$DataDir/staging"))
if ($Entry =~ /^[0-9a-f]{32}-websubmit2?_/)
{
- # These files always expire after one day
+ # We get these files whenever a developer abandons a job submission.
+ # So just delete them silently after a day.
$TTL = 1 - $Age;
}
- elsif ($Entry !~ /^[0-9a-f]{32}_(?:patch\.diff|patchset\.diff|email|winetest(?:64)?-latest\.exe|work)$/)
+ elsif ($Entry =~ /^[0-9a-f]{32}_(?:patch\.diff|patchset\.diff|email|winetest(?:64)?-latest\.exe|work)$/)
+ {
+ # Janitor can only see these files if it ran during the brief interval
+ # between their creation and them being moved out of staging, or if
+ # something prevented the latter (power loss, bug, etc). So only complain
+ # after a day to avoid false positives.
+ if ($TTL >= 1)
+ {
+ my $Deletion = defined $TTL ? " (deletion in $TTL days)" : "";
+ Error "Found an old transient file$Deletion: staging/$Entry\n"
+ }
+ }
+ else
{
my $Deletion = defined $TTL ? " (deletion in $TTL days)" : "";
Error "Found a suspicious file$Deletion: staging/$Entry\n";
--
2.20.1
1
0
12 Feb '20
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
---
Those are the last cases where we still use mingw-w64 provided headers.
dlls/msvcrt/crt_main.c | 2 +-
dlls/msvcrt/crt_wmain.c | 2 +-
dlls/msvcrt/iob.c | 6 +++---
dlls/msvcrt/mathf.c | 14 +++++++++++++-
dlls/msvcrt/onexit.c | 1 +
dlls/ucrtbase/printf.c | 1 +
tools/makedep.c | 1 +
7 files changed, 21 insertions(+), 6 deletions(-)
1
0
Signed-off-by: Paul Gofman <gofmanp(a)gmail.com>
---
v3:
- manage the state in state block.
dlls/d3d9/tests/visual.c | 2 +-
dlls/wined3d/device.c | 28 ++++++++++++++++++++++++++--
dlls/wined3d/stateblock.c | 32 ++++++++++++++++++++++++++++++--
dlls/wined3d/wined3d_private.h | 7 ++++++-
include/wine/wined3d.h | 1 +
5 files changed, 64 insertions(+), 6 deletions(-)
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
index 859f3e5f1f..b4991d4e5e 100644
--- a/dlls/d3d9/tests/visual.c
+++ b/dlls/d3d9/tests/visual.c
@@ -27100,7 +27100,7 @@ static void test_alpha_to_coverage(void)
colour = get_readback_color(&rb, 64, 64);
/* Nvidia is probably using some proprietary algorithm for averaging sample colour values. */
- todo_wine ok(color_match(colour, 0x9f404080, 1) || color_match(colour, 0x9f485cbc, 1) /* Nvidia */,
+ ok(color_match(colour, 0x9f404080, 1) || color_match(colour, 0x9f485cbc, 1) /* Nvidia */,
"Got unexpected colour %08x.\n", colour);
release_surface_readback(&rb);
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index b443cf6cd0..9b6c9dc2df 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -529,6 +529,8 @@ void wined3d_device_cleanup(struct wined3d_device *device)
if (device->swapchain_count)
wined3d_device_uninit_3d(device);
+ wined3d_blend_state_decref(device->blend_state_atoc_enabled);
+
wined3d_cs_destroy(device->cs);
for (i = 0; i < ARRAY_SIZE(device->multistate_funcs); ++i)
@@ -3845,6 +3847,8 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
const struct wined3d_d3d_info *d3d_info = &stateblock->device->adapter->d3d_info;
const struct wined3d_stateblock_state *state = &stateblock->stateblock_state;
unsigned int i, j, count, vs_uniform_count;
+ BOOL blend_state_set = FALSE;
+ struct wined3d_color color;
TRACE("device %p, stateblock %p.\n", device, stateblock);
@@ -3958,15 +3962,24 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
{
if (i == WINED3D_RS_BLENDFACTOR)
{
- struct wined3d_color color;
+ struct wined3d_blend_state *blend_state = stateblock->changed.blend_state
+ ? state->blend_state : wined3d_device_get_blend_state(device, &color);
+
wined3d_color_from_d3dcolor(&color, state->rs[i]);
- wined3d_device_set_blend_state(device, NULL, &color);
+ wined3d_device_set_blend_state(device, blend_state, &color);
+ blend_state_set = TRUE;
}
else
wined3d_device_set_render_state(device, i, state->rs[i]);
}
}
+ if (stateblock->changed.blend_state && !blend_state_set)
+ {
+ wined3d_device_get_blend_state(device, &color);
+ wined3d_device_set_blend_state(device, state->blend_state, &color);
+ }
+
for (i = 0; i < ARRAY_SIZE(state->texture_states); ++i)
{
for (j = 0; j < ARRAY_SIZE(state->texture_states[i]); ++j)
@@ -5795,12 +5808,23 @@ HRESULT wined3d_device_init(struct wined3d_device *device, struct wined3d *wined
struct wined3d_adapter *adapter = wined3d->adapters[adapter_idx];
const struct wined3d_fragment_pipe_ops *fragment_pipeline;
const struct wined3d_vertex_pipe_ops *vertex_pipeline;
+ struct wined3d_blend_state_desc blend_state_desc;
unsigned int i;
HRESULT hr;
if (!wined3d_select_feature_level(adapter, levels, level_count, &device->feature_level))
return E_FAIL;
+ memset(&blend_state_desc, 0, sizeof(blend_state_desc));
+ blend_state_desc.alpha_to_coverage = TRUE;
+
+ if (FAILED(hr = wined3d_blend_state_create(device, &blend_state_desc,
+ NULL, &wined3d_null_parent_ops, &device->blend_state_atoc_enabled)))
+ {
+ ERR("Could not create blend state object.\n");
+ return hr;
+ }
+
TRACE("Device feature level %s.\n", wined3d_debug_feature_level(device->feature_level));
device->ref = 1;
diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
index 6547827d6f..32dc504693 100644
--- a/dlls/wined3d/stateblock.c
+++ b/dlls/wined3d/stateblock.c
@@ -209,6 +209,7 @@ static void stateblock_savedstates_set_all(struct wined3d_saved_states *states,
states->pixelShader = 1;
states->vertexShader = 1;
states->scissorRect = 1;
+ states->blend_state = 1;
/* Fixed size arrays */
states->streamSource = 0xffff;
@@ -263,6 +264,7 @@ static void stateblock_savedstates_set_vertex(struct wined3d_saved_states *state
states->vertexDecl = 1;
states->vertexShader = 1;
+ states->blend_state = 1;
for (i = 0; i < ARRAY_SIZE(vertex_states_render); ++i)
{
@@ -1017,6 +1019,9 @@ void CDECL wined3d_stateblock_capture(struct wined3d_stateblock *stateblock,
wined3d_state_record_lights(stateblock->stateblock_state.light_state, state->light_state);
+ if (stateblock->changed.blend_state)
+ stateblock->stateblock_state.blend_state = state->blend_state;
+
TRACE("Capture done.\n");
}
@@ -1025,6 +1030,8 @@ void CDECL wined3d_stateblock_apply(const struct wined3d_stateblock *stateblock,
{
struct wined3d_stateblock_state *state = &device_state->stateblock_state;
struct wined3d_device *device = stateblock->device;
+ BOOL blend_state_set = FALSE;
+ struct wined3d_color color;
unsigned int i;
DWORD map;
@@ -1121,14 +1128,24 @@ void CDECL wined3d_stateblock_apply(const struct wined3d_stateblock *stateblock,
state->rs[rs] = stateblock->stateblock_state.rs[rs];
if (rs == WINED3D_RS_BLENDFACTOR)
{
- struct wined3d_color color;
+ struct wined3d_blend_state *blend_state = stateblock->changed.blend_state
+ ? stateblock->stateblock_state.blend_state
+ : wined3d_device_get_blend_state(device, &color);
+
wined3d_color_from_d3dcolor(&color, stateblock->stateblock_state.rs[rs]);
- wined3d_device_set_blend_state(device, NULL, &color);
+ wined3d_device_set_blend_state(device, blend_state, &color);
+ blend_state_set = TRUE;
}
else
wined3d_device_set_render_state(device, rs, stateblock->stateblock_state.rs[rs]);
}
+ if (stateblock->changed.blend_state && !blend_state_set)
+ {
+ wined3d_device_get_blend_state(device, &color);
+ wined3d_device_set_blend_state(device, stateblock->stateblock_state.blend_state, &color);
+ }
+
/* Texture states. */
for (i = 0; i < stateblock->num_contained_tss_states; ++i)
{
@@ -1433,6 +1450,17 @@ void CDECL wined3d_stateblock_set_render_state(struct wined3d_stateblock *stateb
stateblock->stateblock_state.rs[state] = value;
stateblock->changed.renderState[state >> 5] |= 1u << (state & 0x1f);
+
+ if (state == WINED3D_RS_POINTSIZE
+ && (value == WINED3D_ALPHA_TO_COVERAGE_ENABLE || value == WINED3D_ALPHA_TO_COVERAGE_DISABLE))
+ {
+ stateblock->changed.blend_state = 1;
+
+ if (value == WINED3D_ALPHA_TO_COVERAGE_ENABLE)
+ stateblock->stateblock_state.blend_state = stateblock->device->blend_state_atoc_enabled;
+ else
+ stateblock->stateblock_state.blend_state = NULL;
+ }
}
void CDECL wined3d_stateblock_set_sampler_state(struct wined3d_stateblock *stateblock,
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 3b9b342441..b5a17cd6d6 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -76,6 +76,9 @@
#define WINED3D_MAX_DIRTY_REGION_COUNT 7
+#define WINED3D_ALPHA_TO_COVERAGE_ENABLE MAKEFOURCC('A','2','M','1')
+#define WINED3D_ALPHA_TO_COVERAGE_DISABLE MAKEFOURCC('A','2','M','0')
+
struct wined3d_fragment_pipe_ops;
struct wined3d_adapter;
struct wined3d_context;
@@ -3323,6 +3326,7 @@ struct wined3d_device
/* Context management */
struct wined3d_context **contexts;
UINT context_count;
+ struct wined3d_blend_state *blend_state_atoc_enabled;
};
void wined3d_device_cleanup(struct wined3d_device *device) DECLSPEC_HIDDEN;
@@ -3943,7 +3947,8 @@ struct wined3d_saved_states
DWORD vertexShader : 1;
DWORD scissorRect : 1;
DWORD store_stream_offset : 1;
- DWORD padding : 4;
+ DWORD blend_state : 1;
+ DWORD padding : 3;
};
struct StageState {
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index 2b08e7f37a..28162275db 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -2170,6 +2170,7 @@ struct wined3d_stateblock_state
RECT scissor_rect;
struct wined3d_light_state *light_state;
+ struct wined3d_blend_state *blend_state;
};
struct wined3d_parent_ops
--
2.24.1
2
7
Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org>
---
dlls/msscript.ocx/tests/msscript.c | 90 +++++++++++++-----------------
1 file changed, 39 insertions(+), 51 deletions(-)
diff --git a/dlls/msscript.ocx/tests/msscript.c b/dlls/msscript.ocx/tests/msscript.c
index d95c43d9b4..22db28e366 100644
--- a/dlls/msscript.ocx/tests/msscript.c
+++ b/dlls/msscript.ocx/tests/msscript.c
@@ -1550,18 +1550,6 @@ static void test_State(void)
IScriptControl_Release(sc);
}
-static BSTR a2bstr(const char *str)
-{
- BSTR ret;
- int len;
-
- len = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
- ret = SysAllocStringLen(NULL, len - 1);
- MultiByteToWideChar(CP_ACP, 0, str, -1, ret, len);
-
- return ret;
-}
-
#define CHECK_ERROR(sc,exp_num) _check_error(sc, exp_num, __LINE__)
static void _check_error(IScriptControl *sc, LONG exp_num, int line)
{
@@ -1597,7 +1585,7 @@ static void test_IScriptControl_Eval(void)
hr = IScriptControl_Eval(sc, NULL, NULL);
ok(hr == E_POINTER, "IScriptControl_Eval returned: 0x%08x.\n", hr);
- script_str = a2bstr("1 + 1");
+ script_str = SysAllocString(L"1 + 1");
hr = IScriptControl_Eval(sc, script_str, NULL);
ok(hr == E_POINTER, "IScriptControl_Eval returned: 0x%08x.\n", hr);
SysFreeString(script_str);
@@ -1610,7 +1598,7 @@ static void test_IScriptControl_Eval(void)
V_VT(&var), V_I4(&var));
todo_wine CHECK_ERROR(sc, 0);
- script_str = a2bstr("1 + 1");
+ script_str = SysAllocString(L"1 + 1");
V_VT(&var) = VT_NULL;
V_I4(&var) = 0xdeadbeef;
hr = IScriptControl_Eval(sc, script_str, &var);
@@ -1619,14 +1607,14 @@ static void test_IScriptControl_Eval(void)
V_VT(&var), V_I4(&var));
SysFreeString(script_str);
- language = a2bstr("jscript");
+ language = SysAllocString(L"jscript");
hr = IScriptControl_put_Language(sc, language);
ok(hr == S_OK, "IScriptControl_put_Language failed: 0x%08x.\n", hr);
hr = IScriptControl_get_State(sc, &state);
ok(hr == S_OK, "IScriptControl_get_State failed: 0x%08x.\n", hr);
ok(state == Initialized, "got wrong state: %d\n", state);
SysFreeString(language);
- script_str = a2bstr("var1 = 1 + 1");
+ script_str = SysAllocString(L"var1 = 1 + 1");
V_VT(&var) = VT_NULL;
V_I4(&var) = 0xdeadbeef;
hr = IScriptControl_Eval(sc, script_str, &var);
@@ -1638,7 +1626,7 @@ static void test_IScriptControl_Eval(void)
ok(state == Initialized, "got wrong state: %d\n", state);
SysFreeString(script_str);
- script_str = a2bstr("var2 = 10 + var1");
+ script_str = SysAllocString(L"var2 = 10 + var1");
V_VT(&var) = VT_NULL;
V_I4(&var) = 0xdeadbeef;
hr = IScriptControl_Eval(sc, script_str, &var);
@@ -1647,7 +1635,7 @@ static void test_IScriptControl_Eval(void)
V_VT(&var), V_I4(&var));
SysFreeString(script_str);
- script_str = a2bstr("invalid syntax");
+ script_str = SysAllocString(L"invalid syntax");
V_VT(&var) = VT_NULL;
V_I4(&var) = 0xdeadbeef;
hr = IScriptControl_Eval(sc, script_str, &var);
@@ -1658,7 +1646,7 @@ static void test_IScriptControl_Eval(void)
SysFreeString(script_str);
todo_wine CHECK_ERROR(sc, 1004);
- script_str = a2bstr("var2 = var1 + var2");
+ script_str = SysAllocString(L"var2 = var1 + var2");
V_VT(&var) = VT_NULL;
V_I4(&var) = 0xdeadbeef;
hr = IScriptControl_Eval(sc, script_str, &var);
@@ -1667,12 +1655,12 @@ static void test_IScriptControl_Eval(void)
V_VT(&var), V_I4(&var));
SysFreeString(script_str);
- script_str = a2bstr("\"Hello\"");
+ script_str = SysAllocString(L"\"Hello\"");
V_VT(&var) = VT_NULL;
V_I4(&var) = 0xdeadbeef;
hr = IScriptControl_Eval(sc, script_str, &var);
ok(hr == S_OK, "IScriptControl_Eval failed: 0x%08x.\n", hr);
- expected_string = a2bstr("Hello");
+ expected_string = SysAllocString(L"Hello");
ok((V_VT(&var) == VT_BSTR) && (!lstrcmpW(V_BSTR(&var), expected_string)),
"V_VT(var) = %d, V_BSTR(var) = %s.\n", V_VT(&var), wine_dbgstr_w(V_BSTR(&var)));
SysFreeString(expected_string);
@@ -1692,7 +1680,7 @@ static void test_IScriptControl_Eval(void)
SET_EXPECT(QI_IActiveScriptParse);
SET_EXPECT(InitNew);
- language= a2bstr("testscript");
+ language= SysAllocString(L"testscript");
hr = IScriptControl_put_Language(sc, language);
ok(hr == S_OK, "IScriptControl_put_Language failed: 0x%08x.\n", hr);
SysFreeString(language);
@@ -1706,7 +1694,7 @@ static void test_IScriptControl_Eval(void)
SET_EXPECT(SetScriptState_STARTED);
SET_EXPECT(ParseScriptText);
parse_flags = SCRIPTTEXT_ISEXPRESSION;
- script_str = a2bstr("var1 = 1 + 1");
+ script_str = SysAllocString(L"var1 = 1 + 1");
V_VT(&var) = VT_NULL;
hr = IScriptControl_Eval(sc, script_str, &var);
ok(hr == S_OK, "IScriptControl_Eval failed: 0x%08x.\n", hr);
@@ -1716,7 +1704,7 @@ static void test_IScriptControl_Eval(void)
CHECK_CALLED(ParseScriptText);
SET_EXPECT(ParseScriptText);
- script_str = a2bstr("var2 = 10 + var1");
+ script_str = SysAllocString(L"var2 = 10 + var1");
V_VT(&var) = VT_NULL;
V_I4(&var) = 0xdeadbeef;
hr = IScriptControl_Eval(sc, script_str, &var);
@@ -1733,7 +1721,7 @@ static void test_IScriptControl_Eval(void)
SET_EXPECT(SetScriptState_STARTED);
SET_EXPECT(ParseScriptText);
- script_str = a2bstr("var2 = 10 + var1");
+ script_str = SysAllocString(L"var2 = 10 + var1");
V_VT(&var) = VT_NULL;
V_I4(&var) = 0xdeadbeef;
hr = IScriptControl_Eval(sc, script_str, &var);
@@ -1765,7 +1753,7 @@ static void test_IScriptControl_AddCode(void)
&IID_IScriptControl, (void **)&sc);
ok(hr == S_OK, "Failed to create IScriptControl interface: 0x%08x.\n", hr);
- code_str = a2bstr("1 + 1");
+ code_str = SysAllocString(L"1 + 1");
hr = IScriptControl_AddCode(sc, code_str);
ok(hr == E_FAIL, "IScriptControl_AddCode returned: 0x%08x.\n", hr);
SysFreeString(code_str);
@@ -1773,18 +1761,18 @@ static void test_IScriptControl_AddCode(void)
hr = IScriptControl_AddCode(sc, NULL);
ok(hr == E_FAIL, "IScriptControl_AddCode returned: 0x%08x.\n", hr);
- language = a2bstr("jscript");
+ language = SysAllocString(L"jscript");
hr = IScriptControl_put_Language(sc, language);
ok(hr == S_OK, "IScriptControl_put_Language failed: 0x%08x.\n", hr);
SysFreeString(language);
- code_str = a2bstr("1 + 1");
+ code_str = SysAllocString(L"1 + 1");
hr = IScriptControl_AddCode(sc, code_str);
ok(hr == S_OK, "IScriptControl_AddCode failed: 0x%08x.\n", hr);
SysFreeString(code_str);
todo_wine CHECK_ERROR(sc, 0);
- code_str = a2bstr("invalid syntax");
+ code_str = SysAllocString(L"invalid syntax");
hr = IScriptControl_AddCode(sc, code_str);
todo_wine ok(hr == 0x800a03ec, "IScriptControl_AddCode returned: 0x%08x.\n", hr);
SysFreeString(code_str);
@@ -1805,7 +1793,7 @@ static void test_IScriptControl_AddCode(void)
SET_EXPECT(QI_IActiveScriptParse);
SET_EXPECT(InitNew);
- language = a2bstr("testscript");
+ language = SysAllocString(L"testscript");
hr = IScriptControl_put_Language(sc, language);
ok(hr == S_OK, "IScriptControl_put_Language failed: 0x%08x.\n", hr);
SysFreeString(language);
@@ -1819,7 +1807,7 @@ static void test_IScriptControl_AddCode(void)
SET_EXPECT(SetScriptState_STARTED);
SET_EXPECT(ParseScriptText);
parse_flags = SCRIPTTEXT_ISVISIBLE;
- code_str = a2bstr("1 + 1");
+ code_str = SysAllocString(L"1 + 1");
hr = IScriptControl_AddCode(sc, code_str);
ok(hr == S_OK, "IScriptControl_AddCode failed: 0x%08x.\n", hr);
SysFreeString(code_str);
@@ -1827,7 +1815,7 @@ static void test_IScriptControl_AddCode(void)
CHECK_CALLED(ParseScriptText);
SET_EXPECT(ParseScriptText);
- code_str = a2bstr("0x100");
+ code_str = SysAllocString(L"0x100");
hr = IScriptControl_AddCode(sc, code_str);
ok(hr == S_OK, "IScriptControl_AddCode failed: 0x%08x.\n", hr);
SysFreeString(code_str);
@@ -1836,7 +1824,7 @@ static void test_IScriptControl_AddCode(void)
/* Call Eval() after AddCode() for checking if it will call SetScriptState() again. */
SET_EXPECT(ParseScriptText);
parse_flags = SCRIPTTEXT_ISEXPRESSION;
- code_str = a2bstr("var2 = 10 + var1");
+ code_str = SysAllocString(L"var2 = 10 + var1");
V_VT(&var) = VT_NULL;
hr = IScriptControl_Eval(sc, code_str, &var);
ok(hr == S_OK, "IScriptControl_Eval failed: 0x%08x.\n", hr);
@@ -1864,7 +1852,7 @@ static void test_IScriptControl_ExecuteStatement(void)
&IID_IScriptControl, (void**)&sc);
ok(hr == S_OK, "Failed to create IScriptControl interface: 0x%08x.\n", hr);
- str = a2bstr("1 + 1");
+ str = SysAllocString(L"1 + 1");
hr = IScriptControl_ExecuteStatement(sc, str);
ok(hr == E_FAIL, "IScriptControl_ExecuteStatement returned: 0x%08x.\n", hr);
SysFreeString(str);
@@ -1872,18 +1860,18 @@ static void test_IScriptControl_ExecuteStatement(void)
hr = IScriptControl_ExecuteStatement(sc, NULL);
ok(hr == E_FAIL, "IScriptControl_ExecuteStatement returned: 0x%08x.\n", hr);
- str = a2bstr("jscript");
+ str = SysAllocString(L"jscript");
hr = IScriptControl_put_Language(sc, str);
ok(hr == S_OK, "IScriptControl_put_Language failed: 0x%08x.\n", hr);
SysFreeString(str);
- str = a2bstr("1 + 1");
+ str = SysAllocString(L"1 + 1");
hr = IScriptControl_ExecuteStatement(sc, str);
ok(hr == S_OK, "IScriptControl_ExecuteStatement failed: 0x%08x.\n", hr);
SysFreeString(str);
todo_wine CHECK_ERROR(sc, 0);
- str = a2bstr("invalid syntax");
+ str = SysAllocString(L"invalid syntax");
hr = IScriptControl_ExecuteStatement(sc, str);
todo_wine ok(hr == 0x800a03ec, "IScriptControl_ExecuteStatement returned: 0x%08x.\n", hr);
SysFreeString(str);
@@ -1904,7 +1892,7 @@ static void test_IScriptControl_ExecuteStatement(void)
SET_EXPECT(QI_IActiveScriptParse);
SET_EXPECT(InitNew);
- str = a2bstr("testscript");
+ str = SysAllocString(L"testscript");
hr = IScriptControl_put_Language(sc, str);
ok(hr == S_OK, "IScriptControl_put_Language failed: 0x%08x.\n", hr);
SysFreeString(str);
@@ -1918,7 +1906,7 @@ static void test_IScriptControl_ExecuteStatement(void)
SET_EXPECT(SetScriptState_STARTED);
SET_EXPECT(ParseScriptText);
parse_flags = 0;
- str = a2bstr("1 + 1");
+ str = SysAllocString(L"1 + 1");
hr = IScriptControl_ExecuteStatement(sc, str);
ok(hr == S_OK, "IScriptControl_ExecuteStatement failed: 0x%08x.\n", hr);
SysFreeString(str);
@@ -1926,7 +1914,7 @@ static void test_IScriptControl_ExecuteStatement(void)
CHECK_CALLED(ParseScriptText);
SET_EXPECT(ParseScriptText);
- str = a2bstr("0x100");
+ str = SysAllocString(L"0x100");
hr = IScriptControl_ExecuteStatement(sc, str);
ok(hr == S_OK, "IScriptControl_ExecuteStatement failed: 0x%08x.\n", hr);
SysFreeString(str);
@@ -1958,7 +1946,7 @@ static void test_IScriptControl_Run(void)
ok(hr == S_OK, "Failed to create IScriptControl interface: 0x%08x.\n", hr);
params = NULL;
- str = a2bstr("identifier");
+ str = SysAllocString(L"identifier");
hr = IScriptControl_Run(sc, str, ¶ms, &var);
ok(hr == E_POINTER, "IScriptControl_Run returned: 0x%08x.\n", hr);
@@ -1984,29 +1972,29 @@ static void test_IScriptControl_Run(void)
hr = IScriptControl_Run(sc, NULL, ¶ms, &var);
ok(hr == E_FAIL, "IScriptControl_Run returned: 0x%08x.\n", hr);
- str = a2bstr("jscript");
+ str = SysAllocString(L"jscript");
hr = IScriptControl_put_Language(sc, str);
ok(hr == S_OK, "IScriptControl_put_Language failed: 0x%08x.\n", hr);
SysFreeString(str);
- str = a2bstr("foobar");
+ str = SysAllocString(L"foobar");
hr = IScriptControl_Run(sc, str, ¶ms, &var);
ok(hr == DISP_E_UNKNOWNNAME, "IScriptControl_Run failed: 0x%08x.\n", hr);
todo_wine CHECK_ERROR(sc, 0);
SysFreeString(str);
- str = a2bstr("function subtract(a, b) { return a - b; }\n");
+ str = SysAllocString(L"function subtract(a, b) { return a - b; }\n");
hr = IScriptControl_AddCode(sc, str);
ok(hr == S_OK, "IScriptControl_AddCode failed: 0x%08x.\n", hr);
todo_wine CHECK_ERROR(sc, 0);
SysFreeString(str);
- str = a2bstr("Subtract");
+ str = SysAllocString(L"Subtract");
hr = IScriptControl_Run(sc, str, ¶ms, &var);
ok(hr == DISP_E_UNKNOWNNAME, "IScriptControl_Run failed: 0x%08x.\n", hr);
SysFreeString(str);
- str = a2bstr("subtract");
+ str = SysAllocString(L"subtract");
hr = IScriptControl_Run(sc, str, ¶ms, NULL);
ok(hr == E_POINTER, "IScriptControl_Run failed: 0x%08x.\n", hr);
todo_wine CHECK_ERROR(sc, 0);
@@ -2056,7 +2044,7 @@ static void test_IScriptControl_Run(void)
SET_EXPECT(SetScriptSite);
SET_EXPECT(QI_IActiveScriptParse);
SET_EXPECT(InitNew);
- str = a2bstr("testscript");
+ str = SysAllocString(L"testscript");
hr = IScriptControl_put_Language(sc, str);
ok(hr == S_OK, "IScriptControl_put_Language failed: 0x%08x.\n", hr);
SysFreeString(str);
@@ -2071,7 +2059,7 @@ static void test_IScriptControl_Run(void)
SET_EXPECT(QI_IDispatchEx);
SET_EXPECT(GetIDsOfNames);
SET_EXPECT(Invoke);
- Dispatch_expected_name = a2bstr("function");
+ Dispatch_expected_name = SysAllocString(L"function");
hr = IScriptControl_Run(sc, Dispatch_expected_name, ¶ms, &var);
ok(hr == S_OK, "IScriptControl_Run failed: 0x%08x.\n", hr);
ok((V_VT(&var) == VT_R8) && (V_R8(&var) == 4.2), "V_VT(var) = %d, V_R8(var) = %lf.\n", V_VT(&var), V_R8(&var));
@@ -2087,7 +2075,7 @@ static void test_IScriptControl_Run(void)
SET_EXPECT(QI_IDispatchEx);
SET_EXPECT(GetIDsOfNames);
SET_EXPECT(Invoke);
- Dispatch_expected_name = a2bstr("BarFoo");
+ Dispatch_expected_name = SysAllocString(L"BarFoo");
hr = IScriptControl_Run(sc, Dispatch_expected_name, ¶ms, &var);
ok(hr == S_OK, "IScriptControl_Run failed: 0x%08x.\n", hr);
SysFreeString(Dispatch_expected_name);
@@ -2102,7 +2090,7 @@ static void test_IScriptControl_Run(void)
SET_EXPECT(QI_IDispatchEx);
SET_EXPECT(GetIDsOfNames);
SET_EXPECT(InvokeEx);
- Dispatch_expected_name = a2bstr("FooBar");
+ Dispatch_expected_name = SysAllocString(L"FooBar");
hr = IScriptControl_Run(sc, Dispatch_expected_name, ¶ms, &var);
ok(hr == S_OK, "IScriptControl_Run failed: 0x%08x.\n", hr);
ok((V_VT(&var) == VT_I2) && (V_I2(&var) == 42), "V_VT(var) = %d, V_I2(var) = %d.\n", V_VT(&var), V_I2(&var));
@@ -2117,7 +2105,7 @@ static void test_IScriptControl_Run(void)
SET_EXPECT(QI_IDispatchEx);
SET_EXPECT(GetIDsOfNames);
SET_EXPECT(InvokeEx);
- Dispatch_expected_name = a2bstr("1");
+ Dispatch_expected_name = SysAllocString(L"1");
hr = IScriptControl_Run(sc, Dispatch_expected_name, ¶ms, &var);
ok(hr == S_OK, "IScriptControl_Run failed: 0x%08x.\n", hr);
SysFreeString(Dispatch_expected_name);
--
2.24.1
3
2
12 Feb '20
Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org>
---
dlls/mshtml/tests/xmlhttprequest.c | 77 +++++++++++++-----------------
1 file changed, 33 insertions(+), 44 deletions(-)
diff --git a/dlls/mshtml/tests/xmlhttprequest.c b/dlls/mshtml/tests/xmlhttprequest.c
index 63df66ebe0..9280246b3c 100644
--- a/dlls/mshtml/tests/xmlhttprequest.c
+++ b/dlls/mshtml/tests/xmlhttprequest.c
@@ -28,18 +28,6 @@
#include "objsafe.h"
#include "wine/test.h"
-static BSTR a2bstr(const char *str)
-{
- BSTR ret;
- int len;
-
- len = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
- ret = SysAllocStringLen(NULL, len);
- MultiByteToWideChar(CP_ACP, 0, str, -1, ret, len);
-
- return ret;
-}
-
#define DEFINE_EXPECT(func) \
static BOOL expect_ ## func = FALSE, called_ ## func = FALSE
@@ -374,7 +362,7 @@ static void pump_msgs(BOOL *b)
struct HEADER_TYPE {
- const char *key;
+ const WCHAR *key;
const WCHAR *value;
};
@@ -428,16 +416,17 @@ static void test_header(const struct HEADER_TYPE expect[], int num)
for(i = 0; i < num; ++i) {
text = NULL;
- key = a2bstr(expect[i].key);
+ key = SysAllocString(expect[i].key);
hres = IHTMLXMLHttpRequest_getResponseHeader(xhr, key, &text);
ok(hres == S_OK, "getResponseHeader failed, got %08x\n", hres);
ok(text != NULL, "text == NULL\n");
ok(!lstrcmpW(text, expect[i].value),
- "Expect %s: %s, got %s\n", expect[i].key, wine_dbgstr_w(expect[i].value), wine_dbgstr_w(text));
+ "Expect %s: %s, got %s\n", wine_dbgstr_w(expect[i].key), wine_dbgstr_w(expect[i].value),
+ wine_dbgstr_w(text));
SysFreeString(key);
SysFreeString(text);
- wsprintfW(buf, L"%S: %s", expect[i].key, expect[i].value);
+ wsprintfW(buf, L"%s: %s", expect[i].key, expect[i].value);
ok(wcsstr(all, buf) != NULL, "AllResponseHeaders(%s) don't have expected substr(%s)\n",
wine_dbgstr_w(all), wine_dbgstr_w(buf));
}
@@ -485,9 +474,9 @@ static void test_illegal_xml(IXMLDOMDocument *xmldom)
}
#define set_request_header(a,b,c) _set_request_header(__LINE__,a,b,c)
-static void _set_request_header(unsigned line, IHTMLXMLHttpRequest *xhr, const char *header_a, const char *value_a)
+static void _set_request_header(unsigned line, IHTMLXMLHttpRequest *xhr, const WCHAR *header_w, const WCHAR *value_w)
{
- BSTR header = a2bstr(header_a), value = a2bstr(value_a);
+ BSTR header = SysAllocString(header_w), value = SysAllocString(value_w);
HRESULT hres;
hres = IHTMLXMLHttpRequest_setRequestHeader(xhr, header, value);
@@ -534,10 +523,10 @@ static void test_responseXML(const WCHAR *expect_text)
}
#define xhr_open(a,b) _xhr_open(__LINE__,a,b)
-static HRESULT _xhr_open(unsigned line, const char *url_a, const char *method_a)
+static HRESULT _xhr_open(unsigned line, const WCHAR *url_w, const WCHAR *method_w)
{
- BSTR method = a2bstr(method_a);
- BSTR url = a2bstr(url_a);
+ BSTR method = SysAllocString(method_w);
+ BSTR url = SysAllocString(url_w);
VARIANT async, empty;
HRESULT hres;
@@ -574,7 +563,7 @@ static void _test_response_text(unsigned line, const WCHAR *expect_text)
SysFreeString(text);
}
-static void test_sync_xhr(IHTMLDocument2 *doc, const char *xml_url, const WCHAR *expect_text)
+static void test_sync_xhr(IHTMLDocument2 *doc, const WCHAR *xml_url, const WCHAR *expect_text)
{
VARIANT vbool, vempty, var;
BSTR method, url;
@@ -582,8 +571,8 @@ static void test_sync_xhr(IHTMLDocument2 *doc, const char *xml_url, const WCHAR
LONG val;
HRESULT hres;
static const struct HEADER_TYPE expect_headers[] = {
- {"Content-Length", L"51"},
- {"Content-Type", L"application/xml"}
+ {L"Content-Length", L"51"},
+ {L"Content-Type", L"application/xml"}
};
trace("test_sync_xhr\n");
@@ -641,8 +630,8 @@ static void test_sync_xhr(IHTMLDocument2 *doc, const char *xml_url, const WCHAR
ok(hres == E_FAIL, "got %08x\n", hres);
ok(text == NULL, "text = %p\n", text);
- method = a2bstr("GET");
- url = a2bstr(xml_url);
+ method = SysAllocString(L"GET");
+ url = SysAllocString(xml_url);
V_VT(&vbool) = VT_BOOL;
V_BOOL(&vbool) = VARIANT_FALSE;
V_VT(&vempty) = VT_EMPTY;
@@ -685,7 +674,7 @@ static void test_sync_xhr(IHTMLDocument2 *doc, const char *xml_url, const WCHAR
ok(hres == S_OK, "get_readyState failed: %08x\n", hres);
ok(val == 1, "Expect OPENED, got %d\n", val);
- set_request_header(xhr, "x-wine-test", "sync-test");
+ set_request_header(xhr, L"x-wine-test", L"sync-test");
SET_EXPECT(xmlhttprequest_onreadystatechange_opened);
SET_EXPECT(xmlhttprequest_onreadystatechange_headers_received);
@@ -733,15 +722,15 @@ static void test_sync_xhr(IHTMLDocument2 *doc, const char *xml_url, const WCHAR
xhr = NULL;
}
-static void test_async_xhr(IHTMLDocument2 *doc, const char *xml_url, const WCHAR *expect_text)
+static void test_async_xhr(IHTMLDocument2 *doc, const WCHAR *xml_url, const WCHAR *expect_text)
{
VARIANT var, vempty;
BSTR text;
LONG val;
HRESULT hres;
static const struct HEADER_TYPE expect_headers[] = {
- {"Content-Length", L"51"},
- {"Content-Type", L"application/xml"}
+ {L"Content-Length", L"51"},
+ {L"Content-Type", L"application/xml"}
};
create_xmlhttprequest(doc);
@@ -798,7 +787,7 @@ static void test_async_xhr(IHTMLDocument2 *doc, const char *xml_url, const WCHAR
ok(val == 0, "Expect UNSENT, got %d\n", val);
SET_EXPECT(xmlhttprequest_onreadystatechange_opened);
- hres = xhr_open(xml_url, "GET");
+ hres = xhr_open(xml_url, L"GET");
CHECK_CALLED(xmlhttprequest_onreadystatechange_opened);
if(FAILED(hres)) {
@@ -831,7 +820,7 @@ static void test_async_xhr(IHTMLDocument2 *doc, const char *xml_url, const WCHAR
ok(hres == S_OK, "get_readyState failed: %08x\n", hres);
ok(val == 1, "Expect OPENED, got %d\n", val);
- set_request_header(xhr, "x-wine-test", "async-test");
+ set_request_header(xhr, L"x-wine-test", L"async-test");
SET_EXPECT(xmlhttprequest_onreadystatechange_opened);
SET_EXPECT(xmlhttprequest_onreadystatechange_headers_received);
@@ -891,7 +880,7 @@ static void test_async_xhr(IHTMLDocument2 *doc, const char *xml_url, const WCHAR
xhr = NULL;
}
-static void test_async_xhr_abort(IHTMLDocument2 *doc, const char *xml_url)
+static void test_async_xhr_abort(IHTMLDocument2 *doc, const WCHAR *xml_url)
{
VARIANT vempty, var;
LONG val;
@@ -909,7 +898,7 @@ static void test_async_xhr_abort(IHTMLDocument2 *doc, const char *xml_url)
hres = IHTMLXMLHttpRequest_put_onreadystatechange(xhr, var);
SET_EXPECT(xmlhttprequest_onreadystatechange_opened);
- xhr_open(xml_url, "GET");
+ xhr_open(xml_url, L"GET");
CHECK_CALLED(xmlhttprequest_onreadystatechange_opened);
hres = IHTMLXMLHttpRequest_abort(xhr);
@@ -933,7 +922,7 @@ static void test_async_xhr_abort(IHTMLDocument2 *doc, const char *xml_url)
hres = IHTMLXMLHttpRequest_put_onreadystatechange(xhr, var);
SET_EXPECT(xmlhttprequest_onreadystatechange_opened);
- xhr_open(xml_url, "GET");
+ xhr_open(xml_url, L"GET");
CHECK_CALLED(xmlhttprequest_onreadystatechange_opened);
loading_cnt = 0;
@@ -980,13 +969,13 @@ static void test_xhr_post(IHTMLDocument2 *doc)
ok(hres == S_OK, "put_onreadystatechange failed: %08x\n", hres);
SET_EXPECT(xmlhttprequest_onreadystatechange_opened);
- xhr_open("http://test.winehq.org/tests/post.php", "POST");
+ xhr_open(L"http://test.winehq.org/tests/post.php", L"POST");
CHECK_CALLED(xmlhttprequest_onreadystatechange_opened);
- set_request_header(xhr, "Content-Type", "application/x-www-form-urlencoded");
+ set_request_header(xhr, L"Content-Type", L"application/x-www-form-urlencoded");
V_VT(&v) = VT_BSTR;
- V_BSTR(&v) = a2bstr("X=Testing");
+ V_BSTR(&v) = SysAllocString(L"X=Testing");
loading_cnt = 0;
SET_EXPECT(xmlhttprequest_onreadystatechange_opened);
@@ -1013,7 +1002,7 @@ static void test_xhr_post(IHTMLDocument2 *doc)
xhr = NULL;
}
-static IHTMLDocument2 *create_doc_from_url(const char *start_url)
+static IHTMLDocument2 *create_doc_from_url(const WCHAR *start_url)
{
BSTR url;
IBindCtx *bc;
@@ -1025,7 +1014,7 @@ static IHTMLDocument2 *create_doc_from_url(const char *start_url)
hres = CreateBindCtx(0, &bc);
ok(hres == S_OK, "CreateBindCtx failed: 0x%08x\n", hres);
- url = a2bstr(start_url);
+ url = SysAllocString(start_url);
hres = CreateURLMoniker(NULL, url, &url_mon);
ok(hres == S_OK, "CreateURLMoniker failed: 0x%08x\n", hres);
@@ -1058,14 +1047,14 @@ static IHTMLDocument2 *create_doc_from_url(const char *start_url)
START_TEST(xmlhttprequest)
{
IHTMLDocument2 *doc;
- static const char start_url[] = "http://test.winehq.org/tests/hello.html";
- static const char xml_url[] = "http://test.winehq.org/tests/xmltest.xml";
- static const char large_page_url[] = "http://test.winehq.org/tests/data.php";
+ static const WCHAR start_url[] = L"http://test.winehq.org/tests/hello.html";
+ static const WCHAR xml_url[] = L"http://test.winehq.org/tests/xmltest.xml";
+ static const WCHAR large_page_url[] = L"http://test.winehq.org/tests/data.php";
static const WCHAR expect_response_text[] = L"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<a>TEST</a>";
CoInitialize(NULL);
- content_type = a2bstr("Content-Type");
+ content_type = SysAllocString(L"Content-Type");
doc = create_doc_from_url(start_url);
if(doc) {
test_sync_xhr(doc, xml_url, expect_response_text);
--
2.24.1
2
1
[PATCH 1/2] mshtml/tests: Get rid of strcmp_wa() in xmlhttprequest.c
by Michael Stefaniuc 12 Feb '20
by Michael Stefaniuc 12 Feb '20
12 Feb '20
Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org>
---
dlls/mshtml/tests/xmlhttprequest.c | 67 +++++++++++++-----------------
1 file changed, 29 insertions(+), 38 deletions(-)
diff --git a/dlls/mshtml/tests/xmlhttprequest.c b/dlls/mshtml/tests/xmlhttprequest.c
index 099f1a2f38..63df66ebe0 100644
--- a/dlls/mshtml/tests/xmlhttprequest.c
+++ b/dlls/mshtml/tests/xmlhttprequest.c
@@ -40,13 +40,6 @@ static BSTR a2bstr(const char *str)
return ret;
}
-static int strcmp_wa(LPCWSTR strw, const char *stra)
-{
- CHAR buf[512];
- WideCharToMultiByte(CP_ACP, 0, strw, -1, buf, sizeof(buf), NULL, NULL);
- return lstrcmpA(stra, buf);
-}
-
#define DEFINE_EXPECT(func) \
static BOOL expect_ ## func = FALSE, called_ ## func = FALSE
@@ -318,7 +311,7 @@ static HRESULT WINAPI PropertyNotifySink_OnChanged(IPropertyNotifySink *iface, D
hres = IHTMLDocument2_get_readyState(notif_doc, &state);
ok(hres == S_OK, "get_readyState failed: %08x\n", hres);
- if(!strcmp_wa(state, "complete"))
+ if(!lstrcmpW(state, L"complete"))
doc_complete = TRUE;
SysFreeString(state);
@@ -382,7 +375,7 @@ static void pump_msgs(BOOL *b)
struct HEADER_TYPE {
const char *key;
- const char *value;
+ const WCHAR *value;
};
static void create_xmlhttprequest(IHTMLDocument2 *doc)
@@ -424,17 +417,14 @@ static void create_xmlhttprequest(IHTMLDocument2 *doc)
static void test_header(const struct HEADER_TYPE expect[], int num)
{
int i;
- BSTR key, text, all_header;
+ BSTR key, text, all;
HRESULT hres;
- char all[4096], buf[512];
+ WCHAR buf[512];
- all_header = NULL;
- hres = IHTMLXMLHttpRequest_getAllResponseHeaders(xhr, &all_header);
+ all = NULL;
+ hres = IHTMLXMLHttpRequest_getAllResponseHeaders(xhr, &all);
ok(hres == S_OK, "getAllResponseHeader failed: %08x\n", hres);
- ok(all_header != NULL, "all_header == NULL\n");
-
- WideCharToMultiByte(CP_UTF8, 0, all_header, -1, all, sizeof(all), NULL, NULL);
- SysFreeString(all_header);
+ ok(all != NULL, "all == NULL\n");
for(i = 0; i < num; ++i) {
text = NULL;
@@ -442,16 +432,17 @@ static void test_header(const struct HEADER_TYPE expect[], int num)
hres = IHTMLXMLHttpRequest_getResponseHeader(xhr, key, &text);
ok(hres == S_OK, "getResponseHeader failed, got %08x\n", hres);
ok(text != NULL, "text == NULL\n");
- ok(!strcmp_wa(text, expect[i].value),
- "Expect %s: %s, got %s\n", expect[i].key, expect[i].value, wine_dbgstr_w(text));
+ ok(!lstrcmpW(text, expect[i].value),
+ "Expect %s: %s, got %s\n", expect[i].key, wine_dbgstr_w(expect[i].value), wine_dbgstr_w(text));
SysFreeString(key);
SysFreeString(text);
- strcpy(buf, expect[i].key);
- strcat(buf, ": ");
- strcat(buf, expect[i].value);
- ok(strstr(all, buf) != NULL, "AllResponseHeaders(%s) don't have expected substr(%s)\n", all, buf);
+ wsprintfW(buf, L"%S: %s", expect[i].key, expect[i].value);
+ ok(wcsstr(all, buf) != NULL, "AllResponseHeaders(%s) don't have expected substr(%s)\n",
+ wine_dbgstr_w(all), wine_dbgstr_w(buf));
}
+
+ SysFreeString(all);
}
static void test_illegal_xml(IXMLDOMDocument *xmldom)
@@ -476,7 +467,7 @@ static void test_illegal_xml(IXMLDOMDocument *xmldom)
VariantClear(&variant);
hres = IXMLDOMDocument_get_text(xmldom, &bstr);
- ok(!strcmp_wa(bstr, ""), "text = %s\n", wine_dbgstr_w(bstr));
+ ok(!lstrcmpW(bstr, L""), "text = %s\n", wine_dbgstr_w(bstr));
SysFreeString(bstr);
hres = IXMLDOMDocument_get_firstChild(xmldom, NULL);
@@ -506,7 +497,7 @@ static void _set_request_header(unsigned line, IHTMLXMLHttpRequest *xhr, const c
SysFreeString(value);
}
-static void test_responseXML(const char *expect_text)
+static void test_responseXML(const WCHAR *expect_text)
{
IDispatch *disp;
IXMLDOMDocument *xmldom;
@@ -563,7 +554,7 @@ static HRESULT _xhr_open(unsigned line, const char *url_a, const char *method_a)
}
#define test_response_text(a) _test_response_text(__LINE__,a)
-static void _test_response_text(unsigned line, const char *expect_text)
+static void _test_response_text(unsigned line, const WCHAR *expect_text)
{
BSTR text = NULL;
HRESULT hres;
@@ -577,13 +568,13 @@ static void _test_response_text(unsigned line, const char *expect_text)
len = SysStringLen(text);
if(text[len-1] == '\n')
text[len-1] = 0;
- ok_(__FILE__,line)(!strcmp_wa(text, expect_text), "expect %s, got %s\n",
- expect_text, wine_dbgstr_w(text));
+ ok_(__FILE__,line)(!lstrcmpW(text, expect_text), "expect %s, got %s\n",
+ wine_dbgstr_w(expect_text), wine_dbgstr_w(text));
}
SysFreeString(text);
}
-static void test_sync_xhr(IHTMLDocument2 *doc, const char *xml_url, const char *expect_text)
+static void test_sync_xhr(IHTMLDocument2 *doc, const char *xml_url, const WCHAR *expect_text)
{
VARIANT vbool, vempty, var;
BSTR method, url;
@@ -591,8 +582,8 @@ static void test_sync_xhr(IHTMLDocument2 *doc, const char *xml_url, const char *
LONG val;
HRESULT hres;
static const struct HEADER_TYPE expect_headers[] = {
- {"Content-Length", "51"},
- {"Content-Type", "application/xml"}
+ {"Content-Length", L"51"},
+ {"Content-Type", L"application/xml"}
};
trace("test_sync_xhr\n");
@@ -726,7 +717,7 @@ static void test_sync_xhr(IHTMLDocument2 *doc, const char *xml_url, const char *
hres = IHTMLXMLHttpRequest_get_statusText(xhr, &text);
ok(hres == S_OK, "get_statusText failed: %08x\n", hres);
ok(text != NULL, "text == NULL\n");
- ok(!strcmp_wa(text, "OK"),
+ ok(!lstrcmpW(text, L"OK"),
"Expected \"OK\", got %s\n", wine_dbgstr_w(text));
SysFreeString(text);
@@ -742,15 +733,15 @@ static void test_sync_xhr(IHTMLDocument2 *doc, const char *xml_url, const char *
xhr = NULL;
}
-static void test_async_xhr(IHTMLDocument2 *doc, const char *xml_url, const char *expect_text)
+static void test_async_xhr(IHTMLDocument2 *doc, const char *xml_url, const WCHAR *expect_text)
{
VARIANT var, vempty;
BSTR text;
LONG val;
HRESULT hres;
static const struct HEADER_TYPE expect_headers[] = {
- {"Content-Length", "51"},
- {"Content-Type", "application/xml"}
+ {"Content-Length", L"51"},
+ {"Content-Type", L"application/xml"}
};
create_xmlhttprequest(doc);
@@ -885,7 +876,7 @@ static void test_async_xhr(IHTMLDocument2 *doc, const char *xml_url, const char
hres = IHTMLXMLHttpRequest_get_statusText(xhr, &text);
ok(hres == S_OK, "get_statusText failed: %08x\n", hres);
ok(text != NULL, "text == NULL\n");
- ok(!strcmp_wa(text, "OK"), "Expected \"OK\", got %s\n", wine_dbgstr_w(text));
+ ok(!lstrcmpW(text, L"OK"), "Expected \"OK\", got %s\n", wine_dbgstr_w(text));
SysFreeString(text);
val = 0xdeadbeef;
@@ -1016,7 +1007,7 @@ static void test_xhr_post(IHTMLDocument2 *doc)
SysFreeString(V_BSTR(&v));
- test_response_text("X => Testing");
+ test_response_text(L"X => Testing");
IHTMLXMLHttpRequest_Release(xhr);
xhr = NULL;
@@ -1070,7 +1061,7 @@ START_TEST(xmlhttprequest)
static const char start_url[] = "http://test.winehq.org/tests/hello.html";
static const char xml_url[] = "http://test.winehq.org/tests/xmltest.xml";
static const char large_page_url[] = "http://test.winehq.org/tests/data.php";
- static const char expect_response_text[] = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<a>TEST</a>";
+ static const WCHAR expect_response_text[] = L"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<a>TEST</a>";
CoInitialize(NULL);
--
2.24.1
2
1
12 Feb '20
Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org>
---
dlls/mshtml/tests/events.c | 86 ++++++++++++++++++--------------------
1 file changed, 40 insertions(+), 46 deletions(-)
diff --git a/dlls/mshtml/tests/events.c b/dlls/mshtml/tests/events.c
index 7ae9fa70b7..8bbdb39205 100644
--- a/dlls/mshtml/tests/events.c
+++ b/dlls/mshtml/tests/events.c
@@ -135,13 +135,6 @@ static const char input_doc_str[] =
static const char iframe_doc_str[] =
"<html><body><iframe id=\"ifr\">Testing</iframe></body></html>";
-static int strcmp_wa(LPCWSTR strw, const char *stra)
-{
- CHAR buf[512];
- WideCharToMultiByte(CP_ACP, 0, strw, -1, buf, sizeof(buf), NULL, NULL);
- return lstrcmpA(stra, buf);
-}
-
static BOOL iface_cmp(IUnknown *iface1, IUnknown *iface2)
{
IUnknown *unk1, *unk2;
@@ -298,7 +291,7 @@ static IHTMLElement *_get_elem_id(unsigned line, IHTMLDocument2 *doc, const WCHA
}
#define test_elem_tag(u,n) _test_elem_tag(__LINE__,u,n)
-static void _test_elem_tag(unsigned line, IUnknown *unk, const char *extag)
+static void _test_elem_tag(unsigned line, IUnknown *unk, const WCHAR *extag)
{
IHTMLElement *elem = _get_elem_iface(line, unk);
BSTR tag;
@@ -307,7 +300,7 @@ static void _test_elem_tag(unsigned line, IUnknown *unk, const char *extag)
hres = IHTMLElement_get_tagName(elem, &tag);
IHTMLElement_Release(elem);
ok_(__FILE__, line) (hres == S_OK, "get_tagName failed: %08x\n", hres);
- ok_(__FILE__, line) (!strcmp_wa(tag, extag), "got tag: %s, expected %s\n", wine_dbgstr_w(tag), extag);
+ ok_(__FILE__, line) (!lstrcmpW(tag, extag), "got tag: %s, expected %s\n", wine_dbgstr_w(tag), wine_dbgstr_w(extag));
SysFreeString(tag);
}
@@ -452,7 +445,7 @@ static IHTMLElement *_get_event_src(unsigned line)
}
#define test_event_src(t) _test_event_src(__LINE__,t)
-static void _test_event_src(unsigned line, const char *src_tag)
+static void _test_event_src(unsigned line, const WCHAR *src_tag)
{
IHTMLElement *src_elem = _get_event_src(line);
@@ -506,7 +499,7 @@ static void _test_event_cancelbubble(unsigned line, IHTMLEventObj *event, VARIAN
ok_(__FILE__,line)(b == exval, "cancelBubble = %x, expected %x\n", b, exval);
}
-static void _test_event_fromelem(unsigned line, IHTMLEventObj *event, const char *from_tag)
+static void _test_event_fromelem(unsigned line, IHTMLEventObj *event, const WCHAR *from_tag)
{
IHTMLElement *elem;
HRESULT hres;
@@ -521,7 +514,7 @@ static void _test_event_fromelem(unsigned line, IHTMLEventObj *event, const char
IHTMLElement_Release(elem);
}
-static void _test_event_toelem(unsigned line, IHTMLEventObj *event, const char *to_tag)
+static void _test_event_toelem(unsigned line, IHTMLEventObj *event, const WCHAR *to_tag)
{
IHTMLElement *elem;
HRESULT hres;
@@ -654,17 +647,17 @@ static void _test_event_screeny(unsigned line, IHTMLEventObj *event, LONG exl)
ok_(__FILE__,line)(l == exl, "screenY = %d, expected %d\n", l, exl);
}
-static void _test_event_type(unsigned line, IHTMLEventObj *event, const char *exstr)
+static void _test_event_type(unsigned line, IHTMLEventObj *event, const WCHAR *exstr)
{
BSTR str;
HRESULT hres;
hres = IHTMLEventObj_get_type(event, &str);
ok_(__FILE__,line)(hres == S_OK, "get_type failed: %08x\n", hres);
- ok_(__FILE__,line)(!strcmp_wa(str, exstr), "type = %s, expected %s\n", wine_dbgstr_w(str), exstr);
+ ok_(__FILE__,line)(!lstrcmpW(str, exstr), "type = %s, expected %s\n", wine_dbgstr_w(str), wine_dbgstr_w(exstr));
}
-static void _test_event_qualifier(unsigned line, IHTMLEventObj *event, const char *exstr)
+static void _test_event_qualifier(unsigned line, IHTMLEventObj *event, const WCHAR *exstr)
{
BSTR str;
HRESULT hres;
@@ -672,7 +665,8 @@ static void _test_event_qualifier(unsigned line, IHTMLEventObj *event, const cha
hres = IHTMLEventObj_get_qualifier(event, &str);
ok_(__FILE__,line)(hres == S_OK, "get_qualifier failed: %08x\n", hres);
if(exstr)
- ok_(__FILE__,line)(!strcmp_wa(str, exstr), "qualifier = %s, expected %s\n", wine_dbgstr_w(str), exstr);
+ ok_(__FILE__,line)(!lstrcmpW(str, exstr), "qualifier = %s, expected %s\n", wine_dbgstr_w(str),
+ wine_dbgstr_w(exstr));
else
ok_(__FILE__,line)(!str, "qualifier != NULL\n");
}
@@ -688,7 +682,7 @@ static void _test_event_srcfilter(unsigned line, IHTMLEventObj *event)
}
#define test_event_obj(t,x) _test_event_obj(__LINE__,t,x)
-static void _test_event_obj(unsigned line, const char *type, const xy_test_t *xy)
+static void _test_event_obj(unsigned line, const WCHAR *type, const xy_test_t *xy)
{
IHTMLEventObj *event = _get_event_obj(line);
IDOMEvent *dom_event;
@@ -970,8 +964,8 @@ static HRESULT WINAPI document_onclick(IDispatchEx *iface, DISPID id, LCID lcid,
test_event_args(NULL, id, wFlags, pdp, pvarRes, pei, pspCaller);
doc3 = get_doc3_iface((IUnknown*)V_DISPATCH(pdp->rgvarg));
IHTMLDocument3_Release(doc3);
- test_event_src("DIV");
- test_event_obj("click", &no_xy);
+ test_event_src(L"DIV");
+ test_event_obj(L"click", &no_xy);
return S_OK;
}
@@ -982,8 +976,8 @@ static HRESULT WINAPI div_onclick(IDispatchEx *iface, DISPID id, LCID lcid, WORD
{
CHECK_EXPECT(div_onclick);
test_event_args(NULL, id, wFlags, pdp, pvarRes, pei, pspCaller);
- test_event_src("DIV");
- test_event_obj("click", &no_xy);
+ test_event_src(L"DIV");
+ test_event_obj(L"click", &no_xy);
return S_OK;
}
@@ -995,7 +989,7 @@ static HRESULT WINAPI div_onclick_attached(IDispatchEx *iface, DISPID id, LCID l
CHECK_EXPECT(div_onclick_attached);
test_attached_event_args(id, wFlags, pdp, pvarRes, pei);
- test_event_src("DIV");
+ test_event_src(L"DIV");
return S_OK;
}
@@ -1007,7 +1001,7 @@ static HRESULT WINAPI doc_onclick_attached(IDispatchEx *iface, DISPID id, LCID l
CHECK_EXPECT(doc_onclick_attached);
test_attached_event_args(id, wFlags, pdp, pvarRes, pei);
- test_event_src("DIV");
+ test_event_src(L"DIV");
return S_OK;
}
@@ -1019,7 +1013,7 @@ static HRESULT WINAPI body_onclick(IDispatchEx *iface, DISPID id, LCID lcid, WOR
CHECK_EXPECT(body_onclick);
/* Native IE returns undocumented DIID in IE9+ mode */
test_event_args(document_mode < 9 ? &DIID_DispHTMLBody : NULL, id, wFlags, pdp, pvarRes, pei, pspCaller);
- test_event_src("DIV");
+ test_event_src(L"DIV");
return S_OK;
}
@@ -1031,7 +1025,7 @@ static HRESULT WINAPI div_onclick_capture(IDispatchEx *iface, DISPID id, LCID lc
CHECK_EXPECT(div_onclick_capture);
test_event_args(NULL, id, wFlags, pdp, pvarRes, pei, pspCaller);
- test_event_src("DIV");
+ test_event_src(L"DIV");
return S_OK;
}
@@ -1043,7 +1037,7 @@ static HRESULT WINAPI div_onclick_bubble(IDispatchEx *iface, DISPID id, LCID lci
CHECK_EXPECT(div_onclick_bubble);
test_event_args(NULL, id, wFlags, pdp, pvarRes, pei, pspCaller);
- test_event_src("DIV");
+ test_event_src(L"DIV");
return S_OK;
}
@@ -1054,7 +1048,7 @@ static HRESULT WINAPI img_onload(IDispatchEx *iface, DISPID id, LCID lcid, WORD
{
CHECK_EXPECT(img_onload);
test_event_args(&DIID_DispHTMLImg, id, wFlags, pdp, pvarRes, pei, pspCaller);
- test_event_src("IMG");
+ test_event_src(L"IMG");
return S_OK;
}
@@ -1065,7 +1059,7 @@ static HRESULT WINAPI link_onload(IDispatchEx *iface, DISPID id, LCID lcid, WORD
{
CHECK_EXPECT(link_onload);
test_event_args(&DIID_DispHTMLLinkElement, id, wFlags, pdp, pvarRes, pei, pspCaller);
- test_event_src("LINK");
+ test_event_src(L"LINK");
return S_OK;
}
@@ -1094,7 +1088,7 @@ static HRESULT WINAPI img_onerror(IDispatchEx *iface, DISPID id, LCID lcid, WORD
{
CHECK_EXPECT(img_onerror);
test_event_args(&DIID_DispHTMLImg, id, wFlags, pdp, pvarRes, pei, pspCaller);
- test_event_src("IMG");
+ test_event_src(L"IMG");
return S_OK;
}
@@ -1105,7 +1099,7 @@ static HRESULT WINAPI input_onfocus(IDispatchEx *iface, DISPID id, LCID lcid, WO
{
CHECK_EXPECT(input_onfocus);
test_event_args(&DIID_DispHTMLInputElement, id, wFlags, pdp, pvarRes, pei, pspCaller);
- test_event_src("INPUT");
+ test_event_src(L"INPUT");
return S_OK;
}
@@ -1116,7 +1110,7 @@ static HRESULT WINAPI div_onfocusin(IDispatchEx *iface, DISPID id, LCID lcid, WO
{
CHECK_EXPECT(div_onfocusin);
test_event_args(NULL /* FIXME: &DIID_DispHTMLDivElement */, id, wFlags, pdp, pvarRes, pei, pspCaller);
- test_event_src("INPUT");
+ test_event_src(L"INPUT");
return S_OK;
}
@@ -1127,7 +1121,7 @@ static HRESULT WINAPI div_onfocusout(IDispatchEx *iface, DISPID id, LCID lcid, W
{
CHECK_EXPECT(div_onfocusout);
test_event_args(NULL /* FIXME: &DIID_DispHTMLDivElement */, id, wFlags, pdp, pvarRes, pei, pspCaller);
- test_event_src("INPUT");
+ test_event_src(L"INPUT");
return S_OK;
}
@@ -1138,7 +1132,7 @@ static HRESULT WINAPI input_onblur(IDispatchEx *iface, DISPID id, LCID lcid, WOR
{
CHECK_EXPECT(input_onblur);
test_event_args(&DIID_DispHTMLInputElement, id, wFlags, pdp, pvarRes, pei, pspCaller);
- test_event_src("INPUT");
+ test_event_src(L"INPUT");
return S_OK;
}
@@ -1149,7 +1143,7 @@ static HRESULT WINAPI form_onsubmit(IDispatchEx *iface, DISPID id, LCID lcid, WO
{
CHECK_EXPECT(form_onsubmit);
test_event_args(NULL, id, wFlags, pdp, pvarRes, pei, pspCaller);
- test_event_src("FORM");
+ test_event_src(L"FORM");
V_VT(pvarRes) = VT_BOOL;
V_BOOL(pvarRes) = VARIANT_FALSE;
@@ -1174,7 +1168,7 @@ static HRESULT WINAPI submit_onclick(IDispatchEx *iface, DISPID id, LCID lcid, W
{
CHECK_EXPECT(submit_onclick);
test_event_args(NULL, id, wFlags, pdp, pvarRes, pei, pspCaller);
- test_event_src("INPUT");
+ test_event_src(L"INPUT");
V_VT(pvarRes) = VT_BOOL;
V_BOOL(pvarRes) = VARIANT_FALSE;
@@ -1188,7 +1182,7 @@ static HRESULT WINAPI iframe_onload(IDispatchEx *iface, DISPID id, LCID lcid, WO
{
CHECK_EXPECT(iframe_onload);
test_event_args(&DIID_DispHTMLIFrame, id, wFlags, pdp, pvarRes, pei, pspCaller);
- test_event_src("IFRAME");
+ test_event_src(L"IFRAME");
return S_OK;
}
@@ -1199,7 +1193,7 @@ static HRESULT WINAPI submit_onclick_attached(IDispatchEx *iface, DISPID id, LCI
{
CHECK_EXPECT(submit_onclick_attached);
test_attached_event_args(id, wFlags, pdp, pvarRes, pei);
- test_event_src("INPUT");
+ test_event_src(L"INPUT");
V_VT(pvarRes) = VT_BOOL;
V_BOOL(pvarRes) = VARIANT_FALSE;
@@ -1216,7 +1210,7 @@ static HRESULT WINAPI submit_onclick_attached_check_cancel(IDispatchEx *iface, D
CHECK_EXPECT(submit_onclick_attached_check_cancel);
test_attached_event_args(id, wFlags, pdp, pvarRes, pei);
- test_event_src("INPUT");
+ test_event_src(L"INPUT");
event = NULL;
hres = IHTMLWindow2_get_event(window, &event);
@@ -1240,7 +1234,7 @@ static HRESULT WINAPI submit_onclick_setret(IDispatchEx *iface, DISPID id, LCID
CHECK_EXPECT(submit_onclick_setret);
test_event_args(NULL, id, wFlags, pdp, pvarRes, pei, pspCaller);
- test_event_src("INPUT");
+ test_event_src(L"INPUT");
event = NULL;
hres = IHTMLWindow2_get_event(window, &event);
@@ -1280,7 +1274,7 @@ static HRESULT WINAPI submit_onclick_cancel(IDispatchEx *iface, DISPID id, LCID
CHECK_EXPECT(submit_onclick_cancel);
test_event_args(NULL, id, wFlags, pdp, pvarRes, pei, pspCaller);
- test_event_src("INPUT");
+ test_event_src(L"INPUT");
event = NULL;
hres = IHTMLWindow2_get_event(window, &event);
@@ -1331,7 +1325,7 @@ static HRESULT WINAPI iframe_onreadystatechange(IDispatchEx *iface, DISPID id, L
HRESULT hres;
test_event_args(document_mode < 9 ? &DIID_DispHTMLIFrame : NULL, id, wFlags, pdp, pvarRes, pei, pspCaller);
- test_event_src("IFRAME");
+ test_event_src(L"IFRAME");
elem = get_event_src();
elem2 = get_elem2_iface((IUnknown*)elem);
@@ -1365,16 +1359,16 @@ static HRESULT WINAPI iframe_onreadystatechange(IDispatchEx *iface, DISPID id, L
ok(!lstrcmpW(str, str2), "unexpected document readyState %s\n", wine_dbgstr_w(str2));
SysFreeString(str2);
- if(!strcmp_wa(str, "loading")) {
+ if(!lstrcmpW(str, L"loading")) {
CHECK_EXPECT(iframe_onreadystatechange_loading);
V_VT(&v) = VT_DISPATCH;
V_DISPATCH(&v) = (IDispatch*)&iframedoc_onreadystatechange_obj;
hres = IHTMLDocument2_put_onreadystatechange(iframe_doc, v);
ok(hres == S_OK, "put_onreadystatechange: %08x\n", hres);
- }else if(!strcmp_wa(str, "interactive"))
+ }else if(!lstrcmpW(str, L"interactive"))
CHECK_EXPECT(iframe_onreadystatechange_interactive);
- else if(!strcmp_wa(str, "complete"))
+ else if(!lstrcmpW(str, L"complete"))
CHECK_EXPECT(iframe_onreadystatechange_complete);
else
ok(0, "unexpected state %s\n", wine_dbgstr_w(str));
@@ -1854,7 +1848,7 @@ static void test_onclick(IHTMLDocument2 *doc)
ok(hres == S_OK, "get_onclick failed: %08x\n", hres);
if(document_mode < 9) {
ok(V_VT(&v) == VT_BSTR, "V_VT(onclick) = %d\n", V_VT(&v));
- ok(!strcmp_wa(V_BSTR(&v), "function();"), "V_BSTR(onclick) = %s\n", wine_dbgstr_w(V_BSTR(&v)));
+ ok(!lstrcmpW(V_BSTR(&v), L"function();"), "V_BSTR(onclick) = %s\n", wine_dbgstr_w(V_BSTR(&v)));
}else {
todo_wine
ok(V_VT(&v) == VT_NULL, "V_VT(onclick) = %d\n", V_VT(&v));
@@ -3216,7 +3210,7 @@ static HRESULT WINAPI PropertyNotifySink_OnChanged(IPropertyNotifySink *iface, D
hres = IHTMLDocument2_get_readyState(notif_doc, &state);
ok(hres == S_OK, "get_readyState failed: %08x\n", hres);
- if(!strcmp_wa(state, "complete"))
+ if(!lstrcmpW(state, L"complete"))
doc_complete = TRUE;
SysFreeString(state);
--
2.24.1
3
2
12 Feb '20
Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org>
---
dlls/mshtml/tests/events.c | 136 +++++++++++++++++--------------------
1 file changed, 62 insertions(+), 74 deletions(-)
diff --git a/dlls/mshtml/tests/events.c b/dlls/mshtml/tests/events.c
index 4ef58df514..7ae9fa70b7 100644
--- a/dlls/mshtml/tests/events.c
+++ b/dlls/mshtml/tests/events.c
@@ -142,18 +142,6 @@ static int strcmp_wa(LPCWSTR strw, const char *stra)
return lstrcmpA(stra, buf);
}
-static BSTR a2bstr(const char *str)
-{
- BSTR ret;
- int len;
-
- len = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
- ret = SysAllocStringLen(NULL, len-1);
- MultiByteToWideChar(CP_ACP, 0, str, -1, ret, len);
-
- return ret;
-}
-
static BOOL iface_cmp(IUnknown *iface1, IUnknown *iface2)
{
IUnknown *unk1, *unk2;
@@ -292,14 +280,14 @@ static IHTMLElement *_doc_get_body(unsigned line, IHTMLDocument2 *doc)
}
#define get_elem_id(d,i) _get_elem_id(__LINE__,d,i)
-static IHTMLElement *_get_elem_id(unsigned line, IHTMLDocument2 *doc, const char *id)
+static IHTMLElement *_get_elem_id(unsigned line, IHTMLDocument2 *doc, const WCHAR *id)
{
IHTMLDocument3 *doc3 = _get_doc3_iface(line, (IUnknown*)doc);
IHTMLElement *elem;
BSTR str;
HRESULT hres;
- str = a2bstr(id);
+ str = SysAllocString(id);
hres = IHTMLDocument3_getElementById(doc3, str, &elem);
SysFreeString(str);
IHTMLDocument3_Release(doc3);
@@ -341,19 +329,19 @@ static IHTMLEventObj *_get_event_obj(unsigned line)
}
#define set_elem_innerhtml(e,t) _set_elem_innerhtml(__LINE__,e,t)
-static void _set_elem_innerhtml(unsigned line, IHTMLElement *elem, const char *inner_html)
+static void _set_elem_innerhtml(unsigned line, IHTMLElement *elem, const WCHAR *inner_html)
{
BSTR html;
HRESULT hres;
- html = a2bstr(inner_html);
+ html = SysAllocString(inner_html);
hres = IHTMLElement_put_innerHTML(elem, html);
ok_(__FILE__,line)(hres == S_OK, "put_innerHTML failed: %08x\n", hres);
SysFreeString(html);
}
#define elem_fire_event(a,b,c) _elem_fire_event(__LINE__,a,b,c)
-static void _elem_fire_event(unsigned line, IUnknown *unk, const char *event, VARIANT *evobj)
+static void _elem_fire_event(unsigned line, IUnknown *unk, const WCHAR *event, VARIANT *evobj)
{
IHTMLElement3 *elem3 = _get_elem3_iface(line, unk);
VARIANT_BOOL b;
@@ -361,7 +349,7 @@ static void _elem_fire_event(unsigned line, IUnknown *unk, const char *event, VA
HRESULT hres;
b = 100;
- str = a2bstr(event);
+ str = SysAllocString(event);
in_fire_event++;
hres = IHTMLElement3_fireEvent(elem3, str, evobj, &b);
in_fire_event--;
@@ -744,14 +732,14 @@ static void _test_event_obj(unsigned line, const char *type, const xy_test_t *xy
}
#define elem_attach_event(a,b,c) _elem_attach_event(__LINE__,a,b,c)
-static void _elem_attach_event(unsigned line, IUnknown *unk, const char *namea, IDispatch *disp)
+static void _elem_attach_event(unsigned line, IUnknown *unk, const WCHAR *namew, IDispatch *disp)
{
IHTMLElement2 *elem = _get_elem2_iface(line, unk);
VARIANT_BOOL res;
BSTR name;
HRESULT hres;
- name = a2bstr(namea);
+ name = SysAllocString(namew);
hres = IHTMLElement2_attachEvent(elem, name, disp, &res);
IHTMLElement2_Release(elem);
SysFreeString(name);
@@ -760,7 +748,7 @@ static void _elem_attach_event(unsigned line, IUnknown *unk, const char *namea,
}
#define add_event_listener(a,b,c,d) _add_event_listener(__LINE__,a,b,c,d)
-static void _add_event_listener(unsigned line, IUnknown *unk, const char *type, IDispatch *listener, VARIANT_BOOL use_capture)
+static void _add_event_listener(unsigned line, IUnknown *unk, const WCHAR *type, IDispatch *listener, VARIANT_BOOL use_capture)
{
IEventTarget *event_target;
BSTR str;
@@ -769,7 +757,7 @@ static void _add_event_listener(unsigned line, IUnknown *unk, const char *type,
hres = IUnknown_QueryInterface(unk, &IID_IEventTarget, (void**)&event_target);
ok_(__FILE__,line)(hres == S_OK, "Could not get IEventTarget iface: %08x\n", hres);
- str = a2bstr(type);
+ str = SysAllocString(type);
hres = IEventTarget_addEventListener(event_target, str, listener, use_capture);
SysFreeString(str);
ok_(__FILE__,line)(hres == S_OK, "addEventListener failed: %08x\n", hres);
@@ -778,7 +766,7 @@ static void _add_event_listener(unsigned line, IUnknown *unk, const char *type,
}
#define remove_event_listener(a,b,c,d) _remove_event_listener(__LINE__,a,b,c,d)
-static void _remove_event_listener(unsigned line, IUnknown *unk, const char *type, IDispatch *listener, VARIANT_BOOL use_capture)
+static void _remove_event_listener(unsigned line, IUnknown *unk, const WCHAR *type, IDispatch *listener, VARIANT_BOOL use_capture)
{
IEventTarget *event_target;
BSTR str;
@@ -787,7 +775,7 @@ static void _remove_event_listener(unsigned line, IUnknown *unk, const char *typ
hres = IUnknown_QueryInterface(unk, &IID_IEventTarget, (void**)&event_target);
ok_(__FILE__,line)(hres == S_OK, "Could not get IEventTarget iface: %08x\n", hres);
- str = a2bstr(type);
+ str = SysAllocString(type);
hres = IEventTarget_removeEventListener(event_target, str, listener, use_capture);
SysFreeString(str);
ok_(__FILE__,line)(hres == S_OK, "removeEventListener failed: %08x\n", hres);
@@ -796,13 +784,13 @@ static void _remove_event_listener(unsigned line, IUnknown *unk, const char *typ
}
#define elem_detach_event(a,b,c) _elem_detach_event(__LINE__,a,b,c)
-static void _elem_detach_event(unsigned line, IUnknown *unk, const char *namea, IDispatch *disp)
+static void _elem_detach_event(unsigned line, IUnknown *unk, const WCHAR *namew, IDispatch *disp)
{
IHTMLElement2 *elem = _get_elem2_iface(line, unk);
BSTR name;
HRESULT hres;
- name = a2bstr(namea);
+ name = SysAllocString(namew);
hres = IHTMLElement2_detachEvent(elem, name, disp);
IHTMLElement2_Release(elem);
SysFreeString(name);
@@ -810,14 +798,14 @@ static void _elem_detach_event(unsigned line, IUnknown *unk, const char *namea,
}
#define doc_attach_event(a,b,c) _doc_attach_event(__LINE__,a,b,c)
-static void _doc_attach_event(unsigned line, IHTMLDocument2 *doc, const char *namea, IDispatch *disp)
+static void _doc_attach_event(unsigned line, IHTMLDocument2 *doc, const WCHAR *namew, IDispatch *disp)
{
IHTMLDocument3 *doc3 = _get_doc3_iface(line, (IUnknown*)doc);
VARIANT_BOOL res;
BSTR name;
HRESULT hres;
- name = a2bstr(namea);
+ name = SysAllocString(namew);
hres = IHTMLDocument3_attachEvent(doc3, name, disp, &res);
IHTMLDocument3_Release(doc3);
SysFreeString(name);
@@ -826,13 +814,13 @@ static void _doc_attach_event(unsigned line, IHTMLDocument2 *doc, const char *na
}
#define doc_detach_event(a,b,c) _doc_detach_event(__LINE__,a,b,c)
-static void _doc_detach_event(unsigned line, IHTMLDocument2 *doc, const char *namea, IDispatch *disp)
+static void _doc_detach_event(unsigned line, IHTMLDocument2 *doc, const WCHAR *namew, IDispatch *disp)
{
IHTMLDocument3 *doc3 = _get_doc3_iface(line, (IUnknown*)doc);
BSTR name;
HRESULT hres;
- name = a2bstr(namea);
+ name = SysAllocString(namew);
hres = IHTMLDocument3_detachEvent(doc3, name, disp);
IHTMLDocument3_Release(doc3);
SysFreeString(name);
@@ -1813,7 +1801,7 @@ static const IDispatchVtbl EventDispatchVtbl = {
static IDispatch EventDispatch = { &EventDispatchVtbl };
-static void set_body_html(IHTMLDocument2 *doc, const char *html)
+static void set_body_html(IHTMLDocument2 *doc, const WCHAR *html)
{
IHTMLElement *body = doc_get_body(doc);
set_elem_innerhtml(body, html);
@@ -1829,17 +1817,17 @@ static void test_onclick(IHTMLDocument2 *doc)
trace("onclick tests in document mode %d\n", document_mode);
- set_body_html(doc, "<div id=\"clickdiv\""
+ set_body_html(doc, L"<div id=\"clickdiv\""
" style=\"text-align: center; background: red; font-size: 32\">"
"click here"
"</div>");
register_cp((IUnknown*)doc, &IID_IDispatch, (IUnknown*)&EventDispatch);
- div = get_elem_id(doc, "clickdiv");
+ div = get_elem_id(doc, L"clickdiv");
- elem_attach_event((IUnknown*)div, "abcde", (IDispatch*)&nocall_obj);
- elem_attach_event((IUnknown*)div, "onclick", (IDispatch*)&div_onclick_attached_obj);
+ elem_attach_event((IUnknown*)div, L"abcde", (IDispatch*)&nocall_obj);
+ elem_attach_event((IUnknown*)div, L"onclick", (IDispatch*)&div_onclick_attached_obj);
V_VT(&v) = VT_EMPTY;
hres = IHTMLElement_get_onclick(div, &v);
@@ -1856,7 +1844,7 @@ static void test_onclick(IHTMLDocument2 *doc)
ok(V_VT(&v) == VT_NULL, "V_VT(onclick) = %d\n", V_VT(&v));
V_VT(&v) = VT_BSTR;
- V_BSTR(&v) = a2bstr("function();");
+ V_BSTR(&v) = SysAllocString(L"function();");
hres = IHTMLElement_put_onclick(div, v);
ok(hres == S_OK, "put_onclick failed: %08x\n", hres);
SysFreeString(V_BSTR(&v));
@@ -1907,8 +1895,8 @@ static void test_onclick(IHTMLDocument2 *doc)
VariantClear(&v);
if(document_mode >= 9) {
- add_event_listener((IUnknown*)div, "click", (IDispatch*)&div_onclick_capture_obj, VARIANT_TRUE);
- add_event_listener((IUnknown*)div, "click", (IDispatch*)&div_onclick_bubble_obj, VARIANT_FALSE);
+ add_event_listener((IUnknown*)div, L"click", (IDispatch*)&div_onclick_capture_obj, VARIANT_TRUE);
+ add_event_listener((IUnknown*)div, L"click", (IDispatch*)&div_onclick_bubble_obj, VARIANT_FALSE);
}
body = doc_get_body(doc);
@@ -1962,7 +1950,7 @@ static void test_onclick(IHTMLDocument2 *doc)
SET_EXPECT(invoke_onclick);
V_VT(&v) = VT_EMPTY;
- elem_fire_event((IUnknown*)div, "onclick", &v);
+ elem_fire_event((IUnknown*)div, L"onclick", &v);
CHECK_CALLED(div_onclick);
CHECK_CALLED(div_onclick_attached);
@@ -1972,8 +1960,8 @@ static void test_onclick(IHTMLDocument2 *doc)
events_cp_cookie = register_cp((IUnknown*)doc, &DIID_HTMLDocumentEvents, (IUnknown*)&doccp_obj);
events2_cp_cookie = register_cp((IUnknown*)doc, &DIID_HTMLDocumentEvents2, (IUnknown*)&doccp2_obj);
- elem_attach_event((IUnknown*)div, "onclick", (IDispatch*)&div_onclick_disp);
- doc_attach_event(doc, "onclick", (IDispatch*)&doc_onclick_attached_obj);
+ elem_attach_event((IUnknown*)div, L"onclick", (IDispatch*)&div_onclick_disp);
+ doc_attach_event(doc, L"onclick", (IDispatch*)&doc_onclick_attached_obj);
SET_EXPECT(div_onclick);
SET_EXPECT(div_onclick_disp);
@@ -2055,14 +2043,14 @@ static void test_onclick(IHTMLDocument2 *doc)
ok(hres == S_OK, "get_onclick failed: %08x\n", hres);
ok(V_VT(&v) == VT_NULL, "get_onclick returned vt %d\n", V_VT(&v));
- elem_detach_event((IUnknown*)div, "onclick", (IDispatch*)&div_onclick_disp);
- elem_detach_event((IUnknown*)div, "onclick", (IDispatch*)&div_onclick_disp);
- elem_detach_event((IUnknown*)div, "test", (IDispatch*)&div_onclick_disp);
- doc_detach_event(doc, "onclick", (IDispatch*)&doc_onclick_attached_obj);
+ elem_detach_event((IUnknown*)div, L"onclick", (IDispatch*)&div_onclick_disp);
+ elem_detach_event((IUnknown*)div, L"onclick", (IDispatch*)&div_onclick_disp);
+ elem_detach_event((IUnknown*)div, L"test", (IDispatch*)&div_onclick_disp);
+ doc_detach_event(doc, L"onclick", (IDispatch*)&doc_onclick_attached_obj);
if(document_mode >= 9) {
- remove_event_listener((IUnknown*)div, "click", (IDispatch*)&div_onclick_capture_obj, VARIANT_TRUE);
- remove_event_listener((IUnknown*)div, "click", (IDispatch*)&div_onclick_bubble_obj, VARIANT_FALSE);
+ remove_event_listener((IUnknown*)div, L"click", (IDispatch*)&div_onclick_capture_obj, VARIANT_TRUE);
+ remove_event_listener((IUnknown*)div, L"click", (IDispatch*)&div_onclick_bubble_obj, VARIANT_FALSE);
}
SET_EXPECT(div_onclick_attached);
@@ -2091,7 +2079,7 @@ static void test_onreadystatechange(IHTMLDocument2 *doc)
BSTR str;
HRESULT hres;
- elem = get_elem_id(doc, "iframe");
+ elem = get_elem_id(doc, L"iframe");
elem2 = get_elem2_iface((IUnknown*)elem);
IHTMLElement_Release(elem);
@@ -2115,7 +2103,7 @@ static void test_onreadystatechange(IHTMLDocument2 *doc)
IHTMLElement2_Release(elem2);
ok(hres == S_OK, "Could not get IHTMLFrameBase iface: %08x\n", hres);
- hres = IHTMLFrameBase_put_src(iframe, (str = a2bstr("about:blank")));
+ hres = IHTMLFrameBase_put_src(iframe, (str = SysAllocString(L"about:blank")));
SysFreeString(str);
ok(hres == S_OK, "put_src failed: %08x\n", hres);
@@ -2140,7 +2128,7 @@ static void test_imgload(IHTMLDocument2 *doc)
BSTR str;
HRESULT hres;
- elem = get_elem_id(doc, "imgid");
+ elem = get_elem_id(doc, L"imgid");
hres = IHTMLElement_QueryInterface(elem, &IID_IHTMLImgElement, (void**)&img);
IHTMLElement_Release(elem);
ok(hres == S_OK, "Could not get IHTMLImgElement iface: %08x\n", hres);
@@ -2174,7 +2162,7 @@ static void test_imgload(IHTMLDocument2 *doc)
ok(V_DISPATCH(&v) == (IDispatch*)&img_onerror_obj, "V_DISPATCH(onerror) != onerrorFunc\n");
VariantClear(&v);
- str = a2bstr("http://test.winehq.org/tests/winehq_snapshot/index_files/winehq_logo_text.p…");
+ str = SysAllocString(L"http://test.winehq.org/tests/winehq_snapshot/index_files/winehq_logo_text.p…");
hres = IHTMLImgElement_put_src(img, str);
ok(hres == S_OK, "put_src failed: %08x\n", hres);
SysFreeString(str);
@@ -2185,7 +2173,7 @@ static void test_imgload(IHTMLDocument2 *doc)
SET_EXPECT(img_onerror);
- str = a2bstr("about:blank");
+ str = SysAllocString(L"about:blank");
hres = IHTMLImgElement_put_src(img, str);
ok(hres == S_OK, "put_src failed: %08x\n", hres);
SysFreeString(str);
@@ -2197,7 +2185,7 @@ static void test_imgload(IHTMLDocument2 *doc)
IHTMLImgElement_Release(img);
/* test onload on unattached image */
- hres = IHTMLDocument2_createElement(doc, (str = a2bstr("img")), &elem);
+ hres = IHTMLDocument2_createElement(doc, (str = SysAllocString(L"img")), &elem);
SysFreeString(str);
ok(hres == S_OK, "createElement(img) failed: %08x\n", hres);
@@ -2222,7 +2210,7 @@ static void test_imgload(IHTMLDocument2 *doc)
ok(V_DISPATCH(&v) == (IDispatch*)&unattached_img_onload_obj, "incorrect V_DISPATCH(onload)\n");
VariantClear(&v);
- str = a2bstr("http://test.winehq.org/tests/winehq_snapshot/index_files/winehq_logo_text.p…");
+ str = SysAllocString(L"http://test.winehq.org/tests/winehq_snapshot/index_files/winehq_logo_text.p…");
hres = IHTMLImgElement_put_src(img, str);
ok(hres == S_OK, "put_src failed: %08x\n", hres);
SysFreeString(str);
@@ -2242,7 +2230,7 @@ static void test_link_load(IHTMLDocument2 *doc)
BSTR str;
HRESULT hres;
- elem = get_elem_id(doc, "linkid");
+ elem = get_elem_id(doc, L"linkid");
hres = IHTMLElement_QueryInterface(elem, &IID_IHTMLLinkElement, (void**)&link);
IHTMLElement_Release(elem);
ok(hres == S_OK, "Could not get IHTMLLinkElement iface: %08x\n", hres);
@@ -2264,7 +2252,7 @@ static void test_link_load(IHTMLDocument2 *doc)
ok(V_DISPATCH(&v) == (IDispatch*)&link_onload_obj, "V_DISPATCH(onload) != onloadkFunc\n");
VariantClear(&v);
- str = a2bstr("http://test.winehq.org/tests/winehq_snapshot/index_files/styles.css");
+ str = SysAllocString(L"http://test.winehq.org/tests/winehq_snapshot/index_files/styles.css");
hres = IHTMLLinkElement_put_href(link, str);
ok(hres == S_OK, "put_src failed: %08x\n", hres);
SysFreeString(str);
@@ -2284,11 +2272,11 @@ static void test_focus(IHTMLDocument2 *doc)
VARIANT v;
HRESULT hres;
- elem = get_elem_id(doc, "inputid");
+ elem = get_elem_id(doc, L"inputid");
elem2 = get_elem2_iface((IUnknown*)elem);
IHTMLElement_Release(elem);
- elem = get_elem_id(doc, "divid");
+ elem = get_elem_id(doc, L"divid");
div = get_elem4_iface((IUnknown*)elem);
IHTMLElement_Release(elem);
@@ -2350,7 +2338,7 @@ static void test_focus(IHTMLDocument2 *doc)
SET_EXPECT(div_onfocusin);
V_VT(&v) = VT_EMPTY;
- elem_fire_event((IUnknown*)elem2, "onfocusin", &v);
+ elem_fire_event((IUnknown*)elem2, L"onfocusin", &v);
CHECK_CALLED(div_onfocusin);
V_VT(&v) = VT_DISPATCH;
@@ -2387,12 +2375,12 @@ static void test_submit(IHTMLDocument2 *doc)
HRESULT hres;
set_body_html(doc,
- "<form id=\"formid\" method=\"post\" action=\"about:blank\">"
+ L"<form id=\"formid\" method=\"post\" action=\"about:blank\">"
"<input type=\"text\" value=\"test\" name=\"i\"/>"
"<input type=\"submit\" id=\"submitid\" />"
"</form>");
- elem = get_elem_id(doc, "formid");
+ elem = get_elem_id(doc, L"formid");
V_VT(&v) = VT_DISPATCH;
V_DISPATCH(&v) = (IDispatch*)&form_onclick_obj;
@@ -2410,7 +2398,7 @@ static void test_submit(IHTMLDocument2 *doc)
IHTMLFormElement_Release(form);
- submit = get_elem_id(doc, "submitid");
+ submit = get_elem_id(doc, L"submitid");
SET_EXPECT(form_onclick);
SET_EXPECT(form_onsubmit);
@@ -2431,7 +2419,7 @@ static void test_submit(IHTMLDocument2 *doc)
CHECK_CALLED(form_onclick);
CHECK_CALLED(submit_onclick);
- elem_attach_event((IUnknown*)submit, "onclick", (IDispatch*)&submit_onclick_attached_obj);
+ elem_attach_event((IUnknown*)submit, L"onclick", (IDispatch*)&submit_onclick_attached_obj);
SET_EXPECT(form_onclick);
SET_EXPECT(submit_onclick);
@@ -2453,7 +2441,7 @@ static void test_submit(IHTMLDocument2 *doc)
CHECK_CALLED(form_onclick);
CHECK_CALLED(submit_onclick_attached);
- elem_detach_event((IUnknown*)submit, "onclick", (IDispatch*)&submit_onclick_attached_obj);
+ elem_detach_event((IUnknown*)submit, L"onclick", (IDispatch*)&submit_onclick_attached_obj);
cp_cookie = register_cp((IUnknown*)doc, &DIID_HTMLDocumentEvents, (IUnknown*)&doccp_onclick_cancel_obj);
@@ -2517,8 +2505,8 @@ static void test_submit(IHTMLDocument2 *doc)
CHECK_CALLED(submit_onclick_setret);
CHECK_CALLED(form_onclick);
- elem_attach_event((IUnknown*)submit, "onclick", (IDispatch*)&submit_onclick_attached_obj);
- elem_attach_event((IUnknown*)submit, "onclick", (IDispatch*)&submit_onclick_attached_check_cancel_obj);
+ elem_attach_event((IUnknown*)submit, L"onclick", (IDispatch*)&submit_onclick_attached_obj);
+ elem_attach_event((IUnknown*)submit, L"onclick", (IDispatch*)&submit_onclick_attached_check_cancel_obj);
V_VT(&v) = VT_DISPATCH;
V_DISPATCH(&v) = (IDispatch*)&submit_onclick_cancel_obj;
@@ -2650,7 +2638,7 @@ static void test_iframe_connections(IHTMLDocument2 *doc)
trace("iframe tests...\n");
- element = get_elem_id(doc, "ifr");
+ element = get_elem_id(doc, L"ifr");
iframe = get_iframe_iface((IUnknown*)element);
IHTMLElement_Release(element);
@@ -2680,7 +2668,7 @@ static void test_iframe_connections(IHTMLDocument2 *doc)
IHTMLFrameBase2_Release(frame_base2);
- str = a2bstr("about:blank");
+ str = SysAllocString(L"about:blank");
hres = IHTMLDocument2_put_URL(iframes_doc, str);
ok(hres == S_OK, "put_URL failed: %08x\n", hres);
SysFreeString(str);
@@ -2689,7 +2677,7 @@ static void test_iframe_connections(IHTMLDocument2 *doc)
pump_msgs(&called_iframe_onload);
CHECK_CALLED(iframe_onload);
- str = a2bstr("about:test");
+ str = SysAllocString(L"about:test");
hres = IHTMLDocument2_put_URL(iframes_doc, str);
ok(hres == S_OK, "put_URL failed: %08x\n", hres);
SysFreeString(str);
@@ -2724,7 +2712,7 @@ static void test_create_event(IHTMLDocument2 *doc)
hres = IHTMLDocument2_QueryInterface(doc, &IID_IDocumentEvent, (void**)&doc_event);
ok(hres == S_OK, "Could not get IDocumentEvent iface: %08x\n", hres);
- str = a2bstr("Event");
+ str = SysAllocString(L"Event");
hres = IDocumentEvent_createEvent(doc_event, str, &event);
SysFreeString(str);
ok(hres == S_OK, "createEvent failed: %08x\n", hres);
@@ -2771,7 +2759,7 @@ static void test_create_event(IHTMLDocument2 *doc)
IDOMEvent_Release(event);
- str = a2bstr("MouseEvent");
+ str = SysAllocString(L"MouseEvent");
hres = IDocumentEvent_createEvent(doc_event, str, &event);
SysFreeString(str);
ok(hres == S_OK, "createEvent failed: %08x\n", hres);
@@ -2785,7 +2773,7 @@ static void test_create_event(IHTMLDocument2 *doc)
IDOMEvent_Release(event);
- str = a2bstr("UIEvent");
+ str = SysAllocString(L"UIEvent");
hres = IDocumentEvent_createEvent(doc_event, str, &event);
SysFreeString(str);
ok(hres == S_OK, "createEvent failed: %08x\n", hres);
@@ -2798,7 +2786,7 @@ static void test_create_event(IHTMLDocument2 *doc)
IDOMEvent_Release(event);
- str = a2bstr("KeyboardEvent");
+ str = SysAllocString(L"KeyboardEvent");
hres = IDocumentEvent_createEvent(doc_event, str, &event);
SysFreeString(str);
ok(hres == S_OK, "createEvent failed: %08x\n", hres);
@@ -2812,7 +2800,7 @@ static void test_create_event(IHTMLDocument2 *doc)
IDOMEvent_Release(event);
- str = a2bstr("CustomEvent");
+ str = SysAllocString(L"CustomEvent");
hres = IDocumentEvent_createEvent(doc_event, str, &event);
SysFreeString(str);
ok(hres == S_OK, "createEvent failed: %08x\n", hres);
--
2.24.1
3
2
Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org>
---
dlls/mshtml/tests/dom.c | 485 +++++++++++++++++++---------------------
1 file changed, 235 insertions(+), 250 deletions(-)
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index 64c20e11e6..024ea21324 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -563,21 +563,6 @@ static const elem_type_info_t elem_type_infos[] = {
{L"tspan", tspan_iids, NULL}
};
-static BSTR a2bstr(const char *str)
-{
- BSTR ret;
- int len;
-
- if(!str)
- return NULL;
-
- len = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
- ret = SysAllocStringLen(NULL, len);
- MultiByteToWideChar(CP_ACP, 0, str, -1, ret, len);
-
- return ret;
-}
-
static BOOL iface_cmp(IUnknown *iface1, IUnknown *iface2)
{
IUnknown *unk1, *unk2;
@@ -801,7 +786,7 @@ static void _test_disp(unsigned line, IUnknown *unk, const IID *diid, const CLSI
}
#define set_dispex_value(a,b,c) _set_dispex_value(__LINE__,a,b,c)
-static void _set_dispex_value(unsigned line, IUnknown *unk, const char *name, VARIANT *val)
+static void _set_dispex_value(unsigned line, IUnknown *unk, const WCHAR *name, VARIANT *val)
{
IDispatchEx *dispex = _get_dispex_iface(line, unk);
DISPPARAMS dp = {val, NULL, 1, 0};
@@ -810,7 +795,7 @@ static void _set_dispex_value(unsigned line, IUnknown *unk, const char *name, VA
BSTR str;
HRESULT hres;
- str = a2bstr(name);
+ str = SysAllocString(name);
hres = IDispatchEx_GetDispID(dispex, str, fdexNameEnsure|fdexNameCaseInsensitive, &id);
SysFreeString(str);
ok_(__FILE__,line)(hres == S_OK, "GetDispID failed: %08x\n", hres);
@@ -1268,7 +1253,7 @@ static IHTMLDOMNode *_get_child_item(unsigned line, IHTMLDOMChildrenCollection *
}
#define test_elem_attr(e,n,v) _test_elem_attr(__LINE__,e,n,v)
-static void _test_elem_attr(unsigned line, IHTMLElement *elem, const char *name, const WCHAR *exval)
+static void _test_elem_attr(unsigned line, IHTMLElement *elem, const WCHAR *name, const WCHAR *exval)
{
VARIANT value;
BSTR tmp;
@@ -1276,7 +1261,7 @@ static void _test_elem_attr(unsigned line, IHTMLElement *elem, const char *name,
VariantInit(&value);
- tmp = a2bstr(name);
+ tmp = SysAllocString(name);
hres = IHTMLElement_getAttribute(elem, tmp, 0, &value);
SysFreeString(tmp);
ok_(__FILE__,line) (hres == S_OK, "getAttribute failed: %08x\n", hres);
@@ -1391,12 +1376,12 @@ static void _test_window_status(unsigned line, IHTMLWindow2 *window)
}
#define set_window_status(w,n) _set_window_status(__LINE__,w,n)
-static void _set_window_status(unsigned line, IHTMLWindow2 *window, const char *status)
+static void _set_window_status(unsigned line, IHTMLWindow2 *window, const WCHAR *status)
{
BSTR str;
HRESULT hres;
- str = a2bstr(status);
+ str = SysAllocString(status);
hres = IHTMLWindow2_put_status(window, str);
SysFreeString(str);
ok_(__FILE__,line)(hres == S_OK, "put_status failed: %08x\n", hres);
@@ -1580,13 +1565,13 @@ static void _test_anchor_rel(unsigned line, IUnknown *unk, const WCHAR *exrel)
}
#define test_anchor_put_rel(a,h) _test_anchor_put_rel(__LINE__,a,h)
-static void _test_anchor_put_rel(unsigned line, IUnknown *unk, const char *exrel)
+static void _test_anchor_put_rel(unsigned line, IUnknown *unk, const WCHAR *exrel)
{
IHTMLAnchorElement *anchor = _get_anchor_iface(line, unk);
BSTR str;
HRESULT hres;
- str = a2bstr(exrel);
+ str = SysAllocString(exrel);
hres = IHTMLAnchorElement_put_rel(anchor, str);
ok_(__FILE__,line)(hres == S_OK, "get_rel failed: %08x\n", hres);
SysFreeString(str);
@@ -1609,13 +1594,13 @@ static void _test_anchor_get_target(unsigned line, IUnknown *unk, const WCHAR *t
}
#define test_anchor_put_target(a,h) _test_anchor_put_target(__LINE__,a,h)
-static void _test_anchor_put_target(unsigned line, IUnknown *unk, const char *target)
+static void _test_anchor_put_target(unsigned line, IUnknown *unk, const WCHAR *target)
{
IHTMLAnchorElement *anchor = _get_anchor_iface(line, unk);
BSTR str;
HRESULT hres;
- str = target ? a2bstr(target) : NULL;
+ str = target ? SysAllocString(target) : NULL;
hres = IHTMLAnchorElement_put_target(anchor, str);
ok_(__FILE__,line)(hres == S_OK, "put_target failed: %08x\n", hres);
SysFreeString(str);
@@ -1687,13 +1672,13 @@ static void _test_anchor_search(unsigned line, IUnknown *elem, const WCHAR *sear
}
#define test_anchor_put_search(a,h) _test_anchor_put_search(__LINE__,a,h)
-static void _test_anchor_put_search(unsigned line, IUnknown *unk, const char *search)
+static void _test_anchor_put_search(unsigned line, IUnknown *unk, const WCHAR *search)
{
IHTMLAnchorElement *anchor = _get_anchor_iface(line, unk);
BSTR str;
HRESULT hres;
- str = search ? a2bstr(search) : NULL;
+ str = search ? SysAllocString(search) : NULL;
hres = IHTMLAnchorElement_put_search(anchor, str);
ok_(__FILE__,line)(hres == S_OK, "put_search failed: %08x\n", hres);
SysFreeString(str);
@@ -2333,12 +2318,12 @@ static void _test_select_value(unsigned line, IHTMLSelectElement *select, const
}
#define test_select_set_value(s,v) _test_select_set_value(__LINE__,s,v)
-static void _test_select_set_value(unsigned line, IHTMLSelectElement *select, const char *val)
+static void _test_select_set_value(unsigned line, IHTMLSelectElement *select, const WCHAR *val)
{
BSTR bstr;
HRESULT hres;
- bstr = a2bstr(val);
+ bstr = SysAllocString(val);
hres = IHTMLSelectElement_put_value(select, bstr);
SysFreeString(bstr);
ok_(__FILE__,line) (hres == S_OK, "put_value failed: %08x\n", hres);
@@ -2421,12 +2406,12 @@ static void _test_select_name(unsigned line, IHTMLSelectElement *select, const W
}
#define test_select_set_name(s,v) _test_select_set_name(__LINE__,s,v)
-static void _test_select_set_name(unsigned line, IHTMLSelectElement *select, const char *text)
+static void _test_select_set_name(unsigned line, IHTMLSelectElement *select, const WCHAR *text)
{
HRESULT hres;
BSTR bstr;
- bstr = a2bstr(text);
+ bstr = SysAllocString(text);
hres = IHTMLSelectElement_put_name(select, bstr);
ok_(__FILE__,line) (hres == S_OK, "put_name(%s) failed: %08x\n", wine_dbgstr_w(bstr), hres);
@@ -2512,10 +2497,10 @@ static void _test_range_moveend(unsigned line, IHTMLTxtRange *range, LPWSTR unit
}
#define test_range_put_text(r,t) _test_range_put_text(__LINE__,r,t)
-static void _test_range_put_text(unsigned line, IHTMLTxtRange *range, const char *text)
+static void _test_range_put_text(unsigned line, IHTMLTxtRange *range, const WCHAR *text)
{
HRESULT hres;
- BSTR bstr = a2bstr(text);
+ BSTR bstr = SysAllocString(text);
hres = IHTMLTxtRange_put_text(range, bstr);
ok_(__FILE__,line) (hres == S_OK, "put_text failed: %08x\n", hres);
@@ -2558,9 +2543,9 @@ static void _test_range_isequal(unsigned line, IHTMLTxtRange *range1, IHTMLTxtRa
}
#define test_range_paste_html(a,b) _test_range_paste_html(__LINE__,a,b)
-static void _test_range_paste_html(unsigned line, IHTMLTxtRange *range, const char *html)
+static void _test_range_paste_html(unsigned line, IHTMLTxtRange *range, const WCHAR *html)
{
- BSTR str = a2bstr(html);
+ BSTR str = SysAllocString(html);
HRESULT hres;
hres = IHTMLTxtRange_pasteHTML(range, str);
@@ -2928,9 +2913,9 @@ static void _test_elem_outertext(unsigned line, IHTMLElement *elem, const WCHAR
}
#define test_elem_set_outertext(e,t) _test_elem_set_outertext(__LINE__,e,t)
-static void _test_elem_set_outertext(unsigned line, IHTMLElement *elem, const char *text)
+static void _test_elem_set_outertext(unsigned line, IHTMLElement *elem, const WCHAR *text)
{
- BSTR str = a2bstr(text);
+ BSTR str = SysAllocString(text);
HRESULT hres;
hres = IHTMLElement_put_outerText(elem, str);
@@ -2968,13 +2953,13 @@ static void _test_elem_innerhtml(unsigned line, IUnknown *unk, const WCHAR *inne
}
#define test_elem_set_innerhtml(e,t) _test_elem_set_innerhtml(__LINE__,e,t)
-static void _test_elem_set_innerhtml(unsigned line, IUnknown *unk, const char *inner_html)
+static void _test_elem_set_innerhtml(unsigned line, IUnknown *unk, const WCHAR *inner_html)
{
IHTMLElement *elem = _get_elem_iface(line, unk);
BSTR html;
HRESULT hres;
- html = a2bstr(inner_html);
+ html = SysAllocString(inner_html);
hres = IHTMLElement_put_innerHTML(elem, html);
ok_(__FILE__,line)(hres == S_OK, "put_innerHTML failed: %08x\n", hres);
@@ -2983,13 +2968,13 @@ static void _test_elem_set_innerhtml(unsigned line, IUnknown *unk, const char *i
}
#define test_elem_set_outerhtml(e,t) _test_elem_set_outerhtml(__LINE__,e,t)
-static void _test_elem_set_outerhtml(unsigned line, IUnknown *unk, const char *outer_html)
+static void _test_elem_set_outerhtml(unsigned line, IUnknown *unk, const WCHAR *outer_html)
{
IHTMLElement *elem = _get_elem_iface(line, unk);
BSTR html;
HRESULT hres;
- html = a2bstr(outer_html);
+ html = SysAllocString(outer_html);
hres = IHTMLElement_put_outerHTML(elem, html);
ok_(__FILE__,line)(hres == S_OK, "put_outerHTML failed: %08x\n", hres);
@@ -3211,10 +3196,10 @@ static void _test_text_data(unsigned line, IUnknown *unk, const WCHAR *exdata)
}
#define set_text_data(a,b) _set_text_data(__LINE__,a,b)
-static void _set_text_data(unsigned line, IUnknown *unk, const char *data)
+static void _set_text_data(unsigned line, IUnknown *unk, const WCHAR *data)
{
IHTMLDOMTextNode *text = _get_text_iface(line, unk);
- BSTR str = a2bstr(data);
+ BSTR str = SysAllocString(data);
HRESULT hres;
hres = IHTMLDOMTextNode_put_data(text, str);
@@ -3224,10 +3209,10 @@ static void _set_text_data(unsigned line, IUnknown *unk, const char *data)
}
#define text_append_data(a,b) _text_append_data(__LINE__,a,b)
-static void _text_append_data(unsigned line, IUnknown *unk, const char *data)
+static void _text_append_data(unsigned line, IUnknown *unk, const WCHAR *data)
{
IHTMLDOMTextNode2 *text = _get_text2_iface(line, unk);
- BSTR str = a2bstr(data);
+ BSTR str = SysAllocString(data);
HRESULT hres;
hres = IHTMLDOMTextNode2_appendData(text, str);
@@ -3389,13 +3374,13 @@ static void _test_img_src(unsigned line, IUnknown *unk, const WCHAR *exsrc, cons
}
#define test_img_set_src(u,s) _test_img_set_src(__LINE__,u,s)
-static void _test_img_set_src(unsigned line, IUnknown *unk, const char *src)
+static void _test_img_set_src(unsigned line, IUnknown *unk, const WCHAR *src)
{
IHTMLImgElement *img = _get_img_iface(line, unk);
BSTR tmp;
HRESULT hres;
- tmp = a2bstr(src);
+ tmp = SysAllocString(src);
hres = IHTMLImgElement_put_src(img, tmp);
IHTMLImgElement_Release(img);
SysFreeString(tmp);
@@ -4348,13 +4333,13 @@ static void _test_elem_title(unsigned line, IUnknown *unk, const WCHAR *extitle)
}
#define test_elem_set_title(u,t) _test_elem_set_title(__LINE__,u,t)
-static void _test_elem_set_title(unsigned line, IUnknown *unk, const char *title)
+static void _test_elem_set_title(unsigned line, IUnknown *unk, const WCHAR *title)
{
IHTMLElement *elem = _get_elem_iface(line, unk);
BSTR tmp;
HRESULT hres;
- tmp = a2bstr(title);
+ tmp = SysAllocString(title);
hres = IHTMLElement_put_title(elem, tmp);
ok_(__FILE__,line) (hres == S_OK, "get_title failed: %08x\n", hres);
@@ -4384,14 +4369,14 @@ static void _test_node_get_value_str(unsigned line, IUnknown *unk, const WCHAR *
}
#define test_node_put_value_str(u,v) _test_node_put_value_str(__LINE__,u,v)
-static void _test_node_put_value_str(unsigned line, IUnknown *unk, const char *val)
+static void _test_node_put_value_str(unsigned line, IUnknown *unk, const WCHAR *val)
{
IHTMLDOMNode *node = _get_node_iface(line, unk);
VARIANT var;
HRESULT hres;
V_VT(&var) = VT_BSTR;
- V_BSTR(&var) = a2bstr(val);
+ V_BSTR(&var) = SysAllocString(val);
hres = IHTMLDOMNode_put_nodeValue(node, var);
ok_(__FILE__,line) (hres == S_OK, "get_nodeValue failed: %08x, expected VT_BSTR\n", hres);
@@ -4952,10 +4937,10 @@ static IHTMLDocument2 *_get_elem_doc(unsigned line, IUnknown *unk)
}
#define get_elem_attr_node(a,b,c) _get_elem_attr_node(__LINE__,a,b,c)
-static IHTMLDOMAttribute *_get_elem_attr_node(unsigned line, IUnknown *unk, const char *attr_name, BOOL expect_success)
+static IHTMLDOMAttribute *_get_elem_attr_node(unsigned line, IUnknown *unk, const WCHAR *attr_name, BOOL expect_success)
{
IHTMLElement4 *elem = _get_elem4_iface(line, unk);
- BSTR str = a2bstr(attr_name);
+ BSTR str = SysAllocString(attr_name);
IHTMLDOMAttribute *attr;
HRESULT hres;
@@ -4993,10 +4978,10 @@ static void _put_attr_node_value(unsigned line, IHTMLDOMAttribute *attr, VARIANT
}
#define put_attr_value(a,b) _put_attr_value(__LINE__,a,b)
-static void _put_attr_value(unsigned line, IHTMLDOMAttribute *attr, const char *value)
+static void _put_attr_value(unsigned line, IHTMLDOMAttribute *attr, const WCHAR *value)
{
IHTMLDOMAttribute2 *attr2 = _get_attr2_iface(line, (IUnknown*)attr);
- BSTR str = a2bstr(value);
+ BSTR str = SysAllocString(value);
HRESULT hres;
hres = IHTMLDOMAttribute2_put_value(attr2, str);
@@ -5033,7 +5018,7 @@ static IHTMLElement *_doc_get_body(unsigned line, IHTMLDocument2 *doc)
return elem;
}
-static void set_body_html(IHTMLDocument2 *doc, const char *html)
+static void set_body_html(IHTMLDocument2 *doc, const WCHAR *html)
{
IHTMLElement *body;
body = doc_get_body(doc);
@@ -5042,13 +5027,13 @@ static void set_body_html(IHTMLDocument2 *doc, const char *html)
}
#define test_create_elem(d,t) _test_create_elem(__LINE__,d,t)
-static IHTMLElement *_test_create_elem(unsigned line, IHTMLDocument2 *doc, const char *tag)
+static IHTMLElement *_test_create_elem(unsigned line, IHTMLDocument2 *doc, const WCHAR *tag)
{
IHTMLElement *elem = NULL;
BSTR tmp;
HRESULT hres;
- tmp = a2bstr(tag);
+ tmp = SysAllocString(tag);
hres = IHTMLDocument2_createElement(doc, tmp, &elem);
ok_(__FILE__,line) (hres == S_OK, "createElement failed: %08x\n", hres);
ok_(__FILE__,line) (elem != NULL, "elem == NULL\n");
@@ -5058,7 +5043,7 @@ static IHTMLElement *_test_create_elem(unsigned line, IHTMLDocument2 *doc, const
}
#define test_create_text(d,t) _test_create_text(__LINE__,d,t)
-static IHTMLDOMNode *_test_create_text(unsigned line, IHTMLDocument2 *doc, const char *text)
+static IHTMLDOMNode *_test_create_text(unsigned line, IHTMLDocument2 *doc, const WCHAR *text)
{
IHTMLDocument3 *doc3;
IHTMLDOMNode *node = NULL;
@@ -5068,7 +5053,7 @@ static IHTMLDOMNode *_test_create_text(unsigned line, IHTMLDocument2 *doc, const
hres = IHTMLDocument2_QueryInterface(doc, &IID_IHTMLDocument3, (void**)&doc3);
ok_(__FILE__,line) (hres == S_OK, "Could not get IHTMLDocument3: %08x\n", hres);
- tmp = a2bstr(text);
+ tmp = SysAllocString(text);
hres = IHTMLDocument3_createTextNode(doc3, tmp, &node);
IHTMLDocument3_Release(doc3);
SysFreeString(tmp);
@@ -5204,7 +5189,7 @@ static void test_elem_bounding_client_rect(IUnknown *unk)
IHTMLElement2_Release(elem2);
}
-static void test_elem_col_item(IHTMLElementCollection *col, const char *n,
+static void test_elem_col_item(IHTMLElementCollection *col, const WCHAR *n,
const elem_type_t *elem_types, LONG len)
{
IDispatch *disp;
@@ -5214,7 +5199,7 @@ static void test_elem_col_item(IHTMLElementCollection *col, const char *n,
V_VT(&index) = VT_EMPTY;
V_VT(&name) = VT_BSTR;
- V_BSTR(&name) = a2bstr(n);
+ V_BSTR(&name) = SysAllocString(n);
hres = IHTMLElementCollection_item(col, name, index, &disp);
ok(hres == S_OK, "item failed: %08x\n", hres);
@@ -5253,7 +5238,7 @@ static void test_elem_col_item(IHTMLElementCollection *col, const char *n,
SysFreeString(V_BSTR(&name));
}
-static IHTMLElement *get_elem_by_id(IHTMLDocument2 *doc, const char *id, BOOL expect_success)
+static IHTMLElement *get_elem_by_id(IHTMLDocument2 *doc, const WCHAR *id, BOOL expect_success)
{
IHTMLElementCollection *col;
IHTMLElement *elem;
@@ -5269,7 +5254,7 @@ static IHTMLElement *get_elem_by_id(IHTMLDocument2 *doc, const char *id, BOOL ex
V_VT(&index) = VT_EMPTY;
V_VT(&name) = VT_BSTR;
- V_BSTR(&name) = a2bstr(id);
+ V_BSTR(&name) = SysAllocString(id);
hres = IHTMLElementCollection_item(col, name, index, &disp);
IHTMLElementCollection_Release(col);
@@ -5290,7 +5275,7 @@ static IHTMLElement *get_elem_by_id(IHTMLDocument2 *doc, const char *id, BOOL ex
return elem;
}
-static IHTMLElement *get_doc_elem_by_id(IHTMLDocument2 *doc, const char *id)
+static IHTMLElement *get_doc_elem_by_id(IHTMLDocument2 *doc, const WCHAR *id)
{
IHTMLDocument3 *doc3;
IHTMLElement *elem;
@@ -5300,10 +5285,10 @@ static IHTMLElement *get_doc_elem_by_id(IHTMLDocument2 *doc, const char *id)
hres = IHTMLDocument2_QueryInterface(doc, &IID_IHTMLDocument3, (void**)&doc3);
ok(hres == S_OK, "Could not get IHTMLDocument3 iface: %08x\n", hres);
- tmp = a2bstr(id);
+ tmp = SysAllocString(id);
hres = IHTMLDocument3_getElementById(doc3, tmp, &elem);
SysFreeString(tmp);
- ok(hres == S_OK, "getElementById(%s) failed: %08x\n", id, hres);
+ ok(hres == S_OK, "getElementById(%s) failed: %08x\n", wine_dbgstr_w(id), hres);
IHTMLDocument3_Release(doc3);
@@ -5321,7 +5306,7 @@ static void test_select_elem(IHTMLSelectElement *select)
test_select_selidx(select, 0);
test_select_put_selidx(select, 1);
- test_select_set_value(select, "val1");
+ test_select_set_value(select, L"val1");
test_select_value(select, L"val1");
test_select_size(select, 0);
@@ -5334,7 +5319,7 @@ static void test_select_elem(IHTMLSelectElement *select)
test_select_size(select, 3);
test_select_name(select, NULL);
- test_select_set_name(select, "select-name");
+ test_select_set_name(select, L"select-name");
test_select_name(select, L"select-name");
test_select_form_notfound(select);
@@ -5522,11 +5507,11 @@ static void _test_doc_selection_type(unsigned line, IHTMLDocument2 *doc, const W
}
#define insert_adjacent_elem(a,b,c) _insert_adjacent_elem(__LINE__,a,b,c)
-static void _insert_adjacent_elem(unsigned line, IHTMLElement *parent, const char *where, IHTMLElement *elem)
+static void _insert_adjacent_elem(unsigned line, IHTMLElement *parent, const WCHAR *where, IHTMLElement *elem)
{
IHTMLElement2 *elem2 = _get_elem2_iface(line, (IUnknown*)parent);
IHTMLElement *ret_elem = NULL;
- BSTR str = a2bstr(where);
+ BSTR str = SysAllocString(where);
HRESULT hres;
hres = IHTMLElement2_insertAdjacentElement(elem2, str, elem, &ret_elem);
@@ -5544,21 +5529,21 @@ static void test_insert_adjacent_elems(IHTMLDocument2 *doc, IHTMLElement *parent
static const elem_type_t br_br[] = {ET_BR, ET_BR};
static const elem_type_t br_div_br[] = {ET_BR, ET_DIV, ET_BR};
- elem = test_create_elem(doc, "BR");
+ elem = test_create_elem(doc, L"BR");
elem2 = test_elem_get_parent((IUnknown*)elem);
ok(!elem2, "get_parentElement returned %p\n", elem2);
- insert_adjacent_elem(parent, "BeforeEnd", elem);
+ insert_adjacent_elem(parent, L"BeforeEnd", elem);
IHTMLElement_Release(elem);
test_elem_all((IUnknown*)parent, br_br, 1);
- elem = test_create_elem(doc, "BR");
- insert_adjacent_elem(parent, "beforeend", elem);
+ elem = test_create_elem(doc, L"BR");
+ insert_adjacent_elem(parent, L"beforeend", elem);
test_elem_all((IUnknown*)parent, br_br, 2);
- elem2 = test_create_elem(doc, "DIV");
- insert_adjacent_elem(elem, "beforebegin", elem2);
+ elem2 = test_create_elem(doc, L"DIV");
+ insert_adjacent_elem(elem, L"beforebegin", elem2);
IHTMLElement_Release(elem2);
IHTMLElement_Release(elem);
@@ -5597,10 +5582,10 @@ static IHTMLTxtRange *_range_duplicate(unsigned line, IHTMLTxtRange *range)
}
#define test_range_set_end_point(a,b,c,d) _test_range_set_end_point(__LINE__,a,b,c,d)
-static void _test_range_set_end_point(unsigned line, IHTMLTxtRange *range, const char *how,
+static void _test_range_set_end_point(unsigned line, IHTMLTxtRange *range, const WCHAR *how,
IHTMLTxtRange *ref_range, HRESULT exhres)
{
- BSTR str = a2bstr(how);
+ BSTR str = SysAllocString(how);
HRESULT hres;
hres = IHTMLTxtRange_setEndPoint(range, str, ref_range);
@@ -5616,7 +5601,7 @@ static void test_txtrange(IHTMLDocument2 *doc)
IHTMLElement *body;
HRESULT hres;
- set_body_html(doc, "test \na<font size=\"2\">bc\t123<br /> it's\r\n \t</font>text<br />");
+ set_body_html(doc, L"test \na<font size=\"2\">bc\t123<br /> it's\r\n \t</font>text<br />");
body_range = test_create_body_range(doc);
@@ -5738,7 +5723,7 @@ static void test_txtrange(IHTMLDocument2 *doc)
test_range_collapse(range, TRUE);
test_range_expand(range, wordW, VARIANT_TRUE, L"test ");
- test_range_put_text(range, "word");
+ test_range_put_text(range, L"word");
test_range_text(body_range, L"wordabc 123\r\nit's text");
test_range_text(range, NULL);
test_range_moveend(range, characterW, 3, 3);
@@ -5781,7 +5766,7 @@ static void test_txtrange(IHTMLDocument2 *doc)
test_range_move(range, characterW, 3, 3);
test_range_expand(range, wordW, VARIANT_TRUE, L"wordabc ");
test_range_moveend(range, characterW, -4, -4);
- test_range_put_text(range, "abc def ");
+ test_range_put_text(range, L"abc def ");
test_range_expand(range, texteditW, VARIANT_TRUE, L"abc def abc 123\r\nit's text");
test_range_move(range, wordW, 1, 1);
test_range_movestart(range, characterW, -1, -1);
@@ -5789,7 +5774,7 @@ static void test_txtrange(IHTMLDocument2 *doc)
test_range_move(range, wordW, 1, 1);
test_range_moveend(range, characterW, 3, 3);
test_range_text(range, L"def");
- test_range_put_text(range, "xyz");
+ test_range_put_text(range, L"xyz");
test_range_moveend(range, characterW, 1, 1);
test_range_move(range, wordW, 1, 1);
test_range_moveend(range, characterW, 2, 2);
@@ -5808,7 +5793,7 @@ static void test_txtrange(IHTMLDocument2 *doc)
test_range_text(range, L"xyz abc 123");
test_range_collapse(range, VARIANT_TRUE);
- test_range_paste_html(range, "<br>paste<br>");
+ test_range_paste_html(range, L"<br>paste<br>");
test_range_text(range, NULL);
test_range_moveend(range, characterW, 3, 3);
@@ -5826,26 +5811,26 @@ static void test_txtrange(IHTMLDocument2 *doc)
range2 = range_duplicate(range);
- test_range_set_end_point(range, "starttostart", body_range, S_OK);
+ test_range_set_end_point(range, L"starttostart", body_range, S_OK);
test_range_text(range, L"abc \r\npaste");
- test_range_set_end_point(range, "endtoend", body_range, S_OK);
+ test_range_set_end_point(range, L"endtoend", body_range, S_OK);
test_range_text(range, L"abc \r\npaste\r\nxyz abc 123\r\nit's text");
- test_range_set_end_point(range, "starttoend", range2, S_OK);
+ test_range_set_end_point(range, L"starttoend", range2, S_OK);
test_range_text(range, L"\r\nxyz abc 123\r\nit's text");
- test_range_set_end_point(range, "starttostart", body_range, S_OK);
- test_range_set_end_point(range, "endtostart", range2, S_OK);
+ test_range_set_end_point(range, L"starttostart", body_range, S_OK);
+ test_range_set_end_point(range, L"endtostart", range2, S_OK);
test_range_text(range, L"abc ");
- test_range_set_end_point(range, "starttoend", body_range, S_OK);
+ test_range_set_end_point(range, L"starttoend", body_range, S_OK);
test_range_text(range, L"paste\r\nxyz abc 123\r\nit's text");
- test_range_set_end_point(range, "EndToStart", body_range, S_OK);
+ test_range_set_end_point(range, L"EndToStart", body_range, S_OK);
test_range_text(range, L"abc ");
- test_range_set_end_point(range, "xxx", body_range, E_INVALIDARG);
+ test_range_set_end_point(range, L"xxx", body_range, E_INVALIDARG);
hres = IHTMLTxtRange_select(range);
ok(hres == S_OK, "select failed: %08x\n", hres);
@@ -5857,7 +5842,7 @@ static void test_txtrange(IHTMLDocument2 *doc)
IHTMLTxtRange_Release(body_range);
IHTMLElement_Release(body);
- set_body_html(doc, "<html><body>abc<hr />123<br /><hr />def</body></html>");
+ set_body_html(doc, L"<html><body>abc<hr />123<br /><hr />def</body></html>");
range = test_create_body_range(doc);
@@ -6113,13 +6098,13 @@ static void _test_framebase_marginheight(unsigned line, IHTMLFrameBase *framebas
}
#define set_framebase_marginheight(a,b) _set_framebase_marginheight(__LINE__,a,b)
-static void _set_framebase_marginheight(unsigned line, IHTMLFrameBase *framebase, const char *val)
+static void _set_framebase_marginheight(unsigned line, IHTMLFrameBase *framebase, const WCHAR *val)
{
VARIANT v;
HRESULT hres;
V_VT(&v) = VT_BSTR;
- V_BSTR(&v) = a2bstr(val);
+ V_BSTR(&v) = SysAllocString(val);
hres = IHTMLFrameBase_put_marginHeight(framebase, v);
ok_(__FILE__,line)(hres == S_OK, "put_marginHeight failed: %08x\n", hres);
VariantClear(&v);
@@ -6142,13 +6127,13 @@ static void _test_framebase_marginwidth(unsigned line, IHTMLFrameBase *framebase
}
#define set_framebase_marginwidth(a,b) _set_framebase_marginwidth(__LINE__,a,b)
-static void _set_framebase_marginwidth(unsigned line, IHTMLFrameBase *framebase, const char *val)
+static void _set_framebase_marginwidth(unsigned line, IHTMLFrameBase *framebase, const WCHAR *val)
{
VARIANT v;
HRESULT hres;
V_VT(&v) = VT_BSTR;
- V_BSTR(&v) = a2bstr(val);
+ V_BSTR(&v) = SysAllocString(val);
hres = IHTMLFrameBase_put_marginWidth(framebase, v);
ok_(__FILE__,line)(hres == S_OK, "put_marginWidth failed: %08x\n", hres);
VariantClear(&v);
@@ -6205,11 +6190,11 @@ static void test_framebase(IUnknown *unk)
SysFreeString(str);
test_framebase_marginheight(fbase, NULL);
- set_framebase_marginheight(fbase, "1px");
+ set_framebase_marginheight(fbase, L"1px");
test_framebase_marginheight(fbase, L"1");
test_framebase_marginwidth(fbase, NULL);
- set_framebase_marginwidth(fbase, "2px");
+ set_framebase_marginwidth(fbase, L"2px");
test_framebase_marginwidth(fbase, L"2");
IHTMLFrameBase_Release(fbase);
@@ -6927,7 +6912,7 @@ static void test_window(IHTMLDocument2 *doc)
test_window_length(window, 0);
test_screen(window);
test_window_status(window);
- set_window_status(window, "Test!");
+ set_window_status(window, L"Test!");
test_history(window);
hres = IHTMLWindow2_moveBy(window, 0, 0);
@@ -7426,7 +7411,7 @@ static void test_button_elem(IHTMLElement *elem)
#define test_tr_possess(e,r,l,i) _test_tr_possess(__LINE__,e,r,l,i)
static void _test_tr_possess(unsigned line, IHTMLElement *elem,
- IHTMLTableRow *row, LONG len, const char *id)
+ IHTMLTableRow *row, LONG len, const WCHAR *id)
{
IHTMLElementCollection *col;
IDispatch *disp;
@@ -7443,9 +7428,9 @@ static void _test_tr_possess(unsigned line, IHTMLElement *elem,
ok_(__FILE__, line)(lval == len, "expected len = %d, got %d\n", len, lval);
V_VT(&var) = VT_BSTR;
- V_BSTR(&var) = a2bstr(id);
+ V_BSTR(&var) = SysAllocString(id);
hres = IHTMLElementCollection_tags(col, var, &disp);
- ok_(__FILE__, line)(hres == S_OK, "search by tags(%s) failed: %08x\n", id, hres);
+ ok_(__FILE__, line)(hres == S_OK, "search by tags(%s) failed: %08x\n", wine_dbgstr_w(id), hres);
ok_(__FILE__, line)(disp != NULL, "disp == NULL\n");
VariantClear(&var);
@@ -7461,7 +7446,7 @@ static void test_tr_modify(IHTMLElement *elem, IHTMLTableRow *row)
hres = IHTMLTableRow_deleteCell(row, 0);
ok(hres == S_OK, "deleteCell failed: %08x\n", hres);
- test_tr_possess(elem, row, 1, "td2");
+ test_tr_possess(elem, row, 1, L"td2");
hres = IHTMLTableRow_insertCell(row, 0, &disp);
ok(hres == S_OK, "insertCell failed: %08x\n", hres);
@@ -7471,7 +7456,7 @@ static void test_tr_modify(IHTMLElement *elem, IHTMLTableRow *row)
ok(cell != NULL, "cell == NULL\n");
if (SUCCEEDED(hres))
IHTMLTableCell_Release(cell);
- test_tr_possess(elem, row, 2, "td2");
+ test_tr_possess(elem, row, 2, L"td2");
IDispatch_Release(disp);
}
@@ -7582,13 +7567,13 @@ static void test_td_elem(IHTMLDocument2 *doc, IHTMLElement *div)
VARIANT vbg, vDefaultbg;
test_elem_set_innerhtml((IUnknown*)div,
- "<table id=\"tbl\"><tbody>"
+ L"<table id=\"tbl\"><tbody>"
" <tr></tr>"
" <tr id=\"row2\"><td id=\"td1\">td1 text</td><td id=\"td2\">td2 text</td><td></td></tr>"
" <tr></tr>"
"</tbody></table>");
- elem = get_doc_elem_by_id(doc, "td1");
+ elem = get_doc_elem_by_id(doc, L"td1");
hres = IHTMLElement_QueryInterface(elem, &IID_IHTMLTableCell, (void**)&cell);
ok(hres == S_OK, "Could not get IHTMLTableRow iface: %08x\n", hres);
IHTMLElement_Release(elem);
@@ -7997,7 +7982,7 @@ static void test_table_elem(IHTMLElement *elem)
IHTMLTable_Release(table);
}
-static void doc_write(IHTMLDocument2 *doc, BOOL ln, const char *text)
+static void doc_write(IHTMLDocument2 *doc, BOOL ln, const WCHAR *text)
{
SAFEARRAYBOUND dim;
SAFEARRAY *sa;
@@ -8010,7 +7995,7 @@ static void doc_write(IHTMLDocument2 *doc, BOOL ln, const char *text)
hres = SafeArrayAccessData(sa, (void**)&var);
ok(hres == S_OK, "Failed to access array data: %08x\n", hres);
V_VT(var) = VT_BSTR;
- V_BSTR(var) = a2bstr(text);
+ V_BSTR(var) = SysAllocString(text);
SafeArrayUnaccessData(sa);
if(ln)
@@ -8106,14 +8091,14 @@ static void _test_iframe_height(unsigned line, IHTMLElement *elem, const WCHAR *
}
#define set_iframe_height(a,b) _set_iframe_height(__LINE__,a,b)
-static void _set_iframe_height(unsigned line, IHTMLElement *elem, const char *val)
+static void _set_iframe_height(unsigned line, IHTMLElement *elem, const WCHAR *val)
{
IHTMLIFrameElement2 *iframe = _get_iframe2_iface(line, (IUnknown*)elem);
VARIANT v;
HRESULT hres;
V_VT(&v) = VT_BSTR;
- V_BSTR(&v) = a2bstr(val);
+ V_BSTR(&v) = SysAllocString(val);
hres = IHTMLIFrameElement2_put_height(iframe, v);
ok_(__FILE__,line)(hres == S_OK, "put_height failed: %08x\n", hres);
VariantClear(&v);
@@ -8139,14 +8124,14 @@ static void _test_iframe_width(unsigned line, IHTMLElement *elem, const WCHAR *e
}
#define set_iframe_width(a,b) _set_iframe_width(__LINE__,a,b)
-static void _set_iframe_width(unsigned line, IHTMLElement *elem, const char *val)
+static void _set_iframe_width(unsigned line, IHTMLElement *elem, const WCHAR *val)
{
IHTMLIFrameElement2 *iframe = _get_iframe2_iface(line, (IUnknown*)elem);
VARIANT v;
HRESULT hres;
V_VT(&v) = VT_BSTR;
- V_BSTR(&v) = a2bstr(val);
+ V_BSTR(&v) = SysAllocString(val);
hres = IHTMLIFrameElement2_put_width(iframe, v);
ok_(__FILE__,line)(hres == S_OK, "put_width failed: %08x\n", hres);
VariantClear(&v);
@@ -8196,13 +8181,13 @@ static void test_iframe_elem(IHTMLElement *elem)
}
test_iframe_height(elem, NULL);
- set_iframe_height(elem, "100px");
- set_iframe_height(elem, "50%");
+ set_iframe_height(elem, L"100px");
+ set_iframe_height(elem, L"50%");
test_iframe_height(elem, L"50%");
test_iframe_width(elem, NULL);
- set_iframe_width(elem, "150px");
- set_iframe_width(elem, "70%");
+ set_iframe_width(elem, L"150px");
+ set_iframe_width(elem, L"70%");
test_iframe_width(elem, L"70%");
test_framebase_src(elem, L"about:blank");
@@ -8216,10 +8201,10 @@ static void test_iframe_elem(IHTMLElement *elem)
ok(iface_cmp((IUnknown*)disp, (IUnknown*)content_window), "disp != content_window\n");
IDispatch_Release(disp);
- doc_write(content_doc, FALSE, "<html><head><title>test</title></head>");
+ doc_write(content_doc, FALSE, L"<html><head><title>test</title></head>");
doc_complex_write(content_doc);
- doc_write(content_doc, TRUE, "<br />");
- doc_write(content_doc, TRUE, "</html>");
+ doc_write(content_doc, TRUE, L"<br />");
+ doc_write(content_doc, TRUE, L"</html>");
hres = IHTMLDocument2_get_all(content_doc, &col);
ok(hres == S_OK, "get_all failed: %08x\n", hres);
@@ -8227,8 +8212,8 @@ static void test_iframe_elem(IHTMLElement *elem)
IHTMLElementCollection_Release(col);
body = doc_get_body(content_doc);
- test_elem_attr(body, "i4val", L"4");
- test_elem_attr(body, "r8val", L"3.14");
+ test_elem_attr(body, L"i4val", L"4");
+ test_elem_attr(body, L"r8val", L"3.14");
IHTMLElement_Release(body);
hres = IHTMLDocument2_close(content_doc);
@@ -8259,9 +8244,9 @@ static void _test_stylesheet_csstext(unsigned line, IHTMLStyleSheet *stylesheet,
}
#define set_stylesheet_csstext(a,b,c) _set_stylesheet_csstext(__LINE__,a,b,c)
-static void _set_stylesheet_csstext(unsigned line, IHTMLStyleSheet *stylesheet, const char *csstext, BOOL is_todo)
+static void _set_stylesheet_csstext(unsigned line, IHTMLStyleSheet *stylesheet, const WCHAR *csstext, BOOL is_todo)
{
- BSTR str = a2bstr(csstext);
+ BSTR str = SysAllocString(csstext);
HRESULT hres;
hres = IHTMLStyleSheet_put_cssText(stylesheet, str);
@@ -8297,11 +8282,11 @@ static void test_stylesheet(IDispatch *disp)
SysFreeString(href);
test_stylesheet_csstext(stylesheet, L".body {", FALSE);
- set_stylesheet_csstext(stylesheet, ".div { margin-right: 1px; }\n.body { margin-right: 2px; }", TRUE);
+ set_stylesheet_csstext(stylesheet, L".div { margin-right: 1px; }\n.body { margin-right: 2px; }", TRUE);
test_stylesheet_csstext(stylesheet, L".div {", TRUE);
- set_stylesheet_csstext(stylesheet, "", FALSE);
+ set_stylesheet_csstext(stylesheet, L"", FALSE);
test_stylesheet_csstext(stylesheet, NULL, FALSE);
- set_stylesheet_csstext(stylesheet, ".div { margin-right: 1px; }", FALSE);
+ set_stylesheet_csstext(stylesheet, L".div { margin-right: 1px; }", FALSE);
test_stylesheet_csstext(stylesheet, L".div {", FALSE);
hres = IHTMLStyleSheet_get_rules(stylesheet, &col);
@@ -8462,7 +8447,7 @@ static void test_selectors(IHTMLDocument2 *doc, IHTMLElement *div)
BSTR str;
HRESULT hres;
- test_elem_set_innerhtml((IUnknown*)div, "<div class=\"cl1\"><form class=\"cl1\"></form></div><div class=\"cl2\"></div>");
+ test_elem_set_innerhtml((IUnknown*)div, L"<div class=\"cl1\"><form class=\"cl1\"></form></div><div class=\"cl2\"></div>");
hres = IHTMLDocument2_QueryInterface(doc, &IID_IDocumentSelector, (void**)&doc_selector);
ok(hres == S_OK || broken(hres == E_NOINTERFACE), "Could not get IDocumentSelector iface: %08x\n", hres);
@@ -8524,7 +8509,7 @@ static void test_elemsbyclass(IHTMLElement *div)
static const elem_type_t types[] = {ET_DIV, ET_FORM};
- test_elem_set_innerhtml((IUnknown*)div, "<div class=\"cl1\"><form class=\"cl1\"></form></div><div class=\"cl2\"></div>");
+ test_elem_set_innerhtml((IUnknown*)div, L"<div class=\"cl1\"><form class=\"cl1\"></form></div><div class=\"cl2\"></div>");
hres = IHTMLElement_QueryInterface(div, &IID_IHTMLElement6, (void**)&elem);
ok(hres == S_OK || broken(hres == E_NOINTERFACE), "Could not get IHTMLElement6 iface: %08x\n", hres);
@@ -8610,7 +8595,7 @@ static void test_elems(IHTMLDocument2 *doc)
hres = IHTMLDocument2_get_all(doc, &col);
ok(hres == S_OK, "get_all failed: %08x\n", hres);
test_elem_collection((IUnknown*)col, all_types, ARRAY_SIZE(all_types));
- test_elem_col_item(col, "x", item_types, ARRAY_SIZE(item_types));
+ test_elem_col_item(col, L"x", item_types, ARRAY_SIZE(item_types));
elem = get_elem_col_item_idx(col, 0);
test_elem_source_index(elem, 0);
@@ -8667,16 +8652,16 @@ static void test_elems(IHTMLDocument2 *doc)
test_elem_all((IUnknown*)elem, all_types+1, ARRAY_SIZE(all_types)-1);
IHTMLElement_Release(elem);
- get_elem_by_id(doc, "xxx", FALSE);
- elem = get_doc_elem_by_id(doc, "xxx");
+ get_elem_by_id(doc, L"xxx", FALSE);
+ elem = get_doc_elem_by_id(doc, L"xxx");
ok(!elem, "elem != NULL\n");
- elem = get_doc_elem_by_id(doc, "s");
+ elem = get_doc_elem_by_id(doc, L"s");
ok(elem != NULL, "elem == NULL\n");
if(elem) {
test_elem_type((IUnknown*)elem, ET_SELECT);
- test_elem_attr(elem, "xxx", NULL);
- test_elem_attr(elem, "id", L"s");
+ test_elem_attr(elem, L"xxx", NULL);
+ test_elem_attr(elem, L"id", L"s");
test_elem_class((IUnknown*)elem, NULL);
test_elem_set_class((IUnknown*)elem, L"cl");
test_elem_set_class((IUnknown*)elem, NULL);
@@ -8737,7 +8722,7 @@ static void test_elems(IHTMLDocument2 *doc)
IHTMLElement_Release(elem);
}
- elem = get_elem_by_id(doc, "s", TRUE);
+ elem = get_elem_by_id(doc, L"s", TRUE);
if(elem) {
IHTMLSelectElement *select = get_select_iface((IUnknown*)elem);
IHTMLDocument2 *doc_node, *elem_doc;
@@ -8746,7 +8731,7 @@ static void test_elems(IHTMLDocument2 *doc)
test_elem_istextedit(elem, VARIANT_FALSE);
test_elem_title((IUnknown*)select, NULL);
- test_elem_set_title((IUnknown*)select, "Title");
+ test_elem_set_title((IUnknown*)select, L"Title");
test_elem_title((IUnknown*)select, L"Title");
test_elem_offset((IUnknown*)select, L"BODY");
test_elem_bounding_client_rect((IUnknown*)select);
@@ -8773,7 +8758,7 @@ static void test_elems(IHTMLDocument2 *doc)
IHTMLElement_Release(elem);
}
- elem = get_elem_by_id(doc, "sc", TRUE);
+ elem = get_elem_by_id(doc, L"sc", TRUE);
if(elem) {
IHTMLScriptElement *script;
BSTR type;
@@ -8833,7 +8818,7 @@ static void test_elems(IHTMLDocument2 *doc)
set_elem_language(elem, L"xxx");
}
- elem = get_elem_by_id(doc, "in", TRUE);
+ elem = get_elem_by_id(doc, L"in", TRUE);
if(elem) {
IHTMLInputElement *input;
@@ -8854,7 +8839,7 @@ static void test_elems(IHTMLDocument2 *doc)
test_elem_istextedit(elem, VARIANT_TRUE);
test_node_get_value_str((IUnknown*)elem, NULL);
- test_node_put_value_str((IUnknown*)elem, "test");
+ test_node_put_value_str((IUnknown*)elem, L"test");
test_node_get_value_str((IUnknown*)elem, NULL);
test_input_value((IUnknown*)elem, NULL);
test_input_defaultValue((IUnknown*)elem, NULL);
@@ -8899,12 +8884,12 @@ static void test_elems(IHTMLDocument2 *doc)
IHTMLElement_Release(elem);
}
- elem = get_elem_by_id(doc, "imgid", TRUE);
+ elem = get_elem_by_id(doc, L"imgid", TRUE);
if(elem) {
test_img_align((IUnknown*)elem, L"left");
test_img_name((IUnknown*)elem, L"WineImg");
test_img_src((IUnknown*)elem, L"", NULL);
- test_img_set_src((IUnknown*)elem, "about:blank");
+ test_img_set_src((IUnknown*)elem, L"about:blank");
test_img_src((IUnknown*)elem, L"about:blank", NULL);
test_img_alt((IUnknown*)elem, NULL);
test_img_set_alt((IUnknown*)elem, L"alt test");
@@ -8915,7 +8900,7 @@ static void test_elems(IHTMLDocument2 *doc)
IHTMLElement_Release(elem);
}
- elem = get_elem_by_id(doc, "attr", TRUE);
+ elem = get_elem_by_id(doc, L"attr", TRUE);
if(elem) {
test_dynamic_properties(elem);
test_attr_collection(elem);
@@ -8923,7 +8908,7 @@ static void test_elems(IHTMLDocument2 *doc)
IHTMLElement_Release(elem);
}
- elem = get_elem_by_id(doc, "styleid", TRUE);
+ elem = get_elem_by_id(doc, L"styleid", TRUE);
if(elem) {
test_style_media((IUnknown*)elem, NULL);
test_style_put_media((IUnknown*)elem, L"screen");
@@ -8932,35 +8917,35 @@ static void test_elems(IHTMLDocument2 *doc)
IHTMLElement_Release(elem);
}
- elem = get_doc_elem_by_id(doc, "tbl");
+ elem = get_doc_elem_by_id(doc, L"tbl");
ok(elem != NULL, "elem == NULL\n");
if(elem) {
test_table_elem(elem);
IHTMLElement_Release(elem);
}
- elem = get_doc_elem_by_id(doc, "labelid");
+ elem = get_doc_elem_by_id(doc, L"labelid");
ok(elem != NULL, "elem == NULL\n");
if(elem) {
test_label_elem(elem);
IHTMLElement_Release(elem);
}
- elem = get_doc_elem_by_id(doc, "row2");
+ elem = get_doc_elem_by_id(doc, L"row2");
ok(elem != NULL, "elem == NULL\n");
if(elem) {
test_tr_elem(elem);
IHTMLElement_Release(elem);
}
- elem = get_doc_elem_by_id(doc, "ifr");
+ elem = get_doc_elem_by_id(doc, L"ifr");
ok(elem != NULL, "elem == NULL\n");
if(elem) {
test_iframe_elem(elem);
IHTMLElement_Release(elem);
}
- elem = get_doc_elem_by_id(doc, "btnid");
+ elem = get_doc_elem_by_id(doc, L"btnid");
ok(elem != NULL, "elem == NULL\n");
if(elem) {
test_button_elem(elem);
@@ -8971,7 +8956,7 @@ static void test_elems(IHTMLDocument2 *doc)
IHTMLElement_Release(elem);
}
- elem = get_doc_elem_by_id(doc, "objid");
+ elem = get_doc_elem_by_id(doc, L"objid");
ok(elem != NULL, "elem == NULL\n");
if(elem) {
test_object_vspace((IUnknown*)elem, 100);
@@ -8981,7 +8966,7 @@ static void test_elems(IHTMLDocument2 *doc)
IHTMLElement_Release(elem);
}
- elem = get_elem_by_id(doc, "a", TRUE);
+ elem = get_elem_by_id(doc, L"a", TRUE);
if(elem) {
test_anchor_href((IUnknown*)elem, L"http://test/");
@@ -9000,11 +8985,11 @@ static void test_elems(IHTMLDocument2 *doc)
test_anchor_get_target((IUnknown*)elem, NULL);
test_anchor_rel((IUnknown*)elem, NULL);
- test_anchor_put_rel((IUnknown*)elem, "Next");
+ test_anchor_put_rel((IUnknown*)elem, L"Next");
test_anchor_rel((IUnknown*)elem, L"Next");
/* Change the target */
- test_anchor_put_target((IUnknown*)elem, "wine");
+ test_anchor_put_target((IUnknown*)elem, L"wine");
test_anchor_get_target((IUnknown*)elem, L"wine");
/* Restore the target */
@@ -9020,26 +9005,26 @@ static void test_elems(IHTMLDocument2 *doc)
test_anchor_hash(elem, L"#hash");
test_anchor_search((IUnknown*)elem, L"?how", FALSE);
- test_anchor_put_search((IUnknown*)elem, "?word=press");
+ test_anchor_put_search((IUnknown*)elem, L"?word=press");
test_anchor_search((IUnknown*)elem, L"?word=press", FALSE);
- test_anchor_put_search((IUnknown*)elem, "?????word???press");
+ test_anchor_put_search((IUnknown*)elem, L"?????word???press");
test_anchor_search((IUnknown*)elem, L"?????word???press", FALSE);
- test_anchor_put_search((IUnknown*)elem, "?q=%E4%BD%A0%E5%A5%BD"); /* encoded cjk characters */
+ test_anchor_put_search((IUnknown*)elem, L"?q=%E4%BD%A0%E5%A5%BD"); /* encoded cjk characters */
test_anchor_search((IUnknown*)elem, L"?q=%E4%BD%A0%E5%A5%BD", FALSE);
- test_anchor_put_search((IUnknown*)elem, "?how?old=are");
+ test_anchor_put_search((IUnknown*)elem, L"?how?old=are");
test_anchor_search((IUnknown*)elem, L"?how?old=are", FALSE);
/* due to incorrect behavior of ie6, search string without leading "?" is interpreted
as part of the pathname, and cannot be accessed by get_search. */
- test_anchor_put_search((IUnknown*)elem, "word=abc");
+ test_anchor_put_search((IUnknown*)elem, L"word=abc");
test_anchor_search((IUnknown*)elem, L"?word=abc", TRUE);
IHTMLElement_Release(elem);
}
- elem = get_doc_elem_by_id(doc, "metaid");
+ elem = get_doc_elem_by_id(doc, L"metaid");
if(elem) {
test_meta_name((IUnknown*)elem, L"meta name");
test_meta_content((IUnknown*)elem, L"text/html; charset=utf-8");
@@ -9064,7 +9049,7 @@ static void test_elems(IHTMLDocument2 *doc)
ok(type == 3, "type=%d\n", type);
test_node_get_value_str((IUnknown*)node, L"text test");
- test_node_put_value_str((IUnknown*)elem, "test text");
+ test_node_put_value_str((IUnknown*)elem, L"test text");
test_node_get_value_str((IUnknown*)node, L"text test");
hres = IHTMLDOMNode_get_attributes(node, &disp);
@@ -9142,7 +9127,7 @@ static void test_elems(IHTMLDocument2 *doc)
IHTMLElement_Release(elem);
- elem = get_doc_elem_by_id(doc, "frm");
+ elem = get_doc_elem_by_id(doc, L"frm");
ok(elem != NULL, "elem == NULL\n");
if(elem) {
test_form_length((IUnknown*)elem, 0);
@@ -9154,7 +9139,7 @@ static void test_elems(IHTMLDocument2 *doc)
test_create_option_elem(doc);
test_create_img_elem(doc);
- elem = get_doc_elem_by_id(doc, "tbl");
+ elem = get_doc_elem_by_id(doc, L"tbl");
ok(elem != NULL, "elem = NULL\n");
test_elem_set_innertext(elem, L"inner text");
IHTMLElement_Release(elem);
@@ -9186,15 +9171,15 @@ static void test_elems(IHTMLDocument2 *doc)
test_doc_getelembytag(doc, "Img", ET_IMG, 1);
- elem = get_doc_elem_by_id(doc, "y");
- test_elem_set_innerhtml((IUnknown*)elem, "inner html");
+ elem = get_doc_elem_by_id(doc, L"y");
+ test_elem_set_innerhtml((IUnknown*)elem, L"inner html");
test_elem_innerhtml((IUnknown*)elem, L"inner html");
- test_elem_set_innerhtml((IUnknown*)elem, "");
+ test_elem_set_innerhtml((IUnknown*)elem, L"");
test_elem_innerhtml((IUnknown*)elem, NULL);
node = node_get_next((IUnknown*)elem);
ok(!node, "node = %p\n", node);
- elem2 = get_doc_elem_by_id(doc, "x");
+ elem2 = get_doc_elem_by_id(doc, L"x");
test_elem_tag((IUnknown*)elem2, L"A");
node = node_get_next((IUnknown*)elem2);
IHTMLDOMNode_Release(node);
@@ -9209,7 +9194,7 @@ static void test_elems(IHTMLDocument2 *doc)
IHTMLDocument3_Release(doc3);
- elem = get_elem_by_id(doc, "s", TRUE);
+ elem = get_elem_by_id(doc, L"s", TRUE);
if(elem) {
static const elem_type_t select_types[] = { ET_OPTION, ET_OPTION, ET_OPTION };
@@ -9234,9 +9219,9 @@ static void test_attr(IHTMLDocument2 *doc, IHTMLElement *elem)
VARIANT v;
HRESULT hres;
- get_elem_attr_node((IUnknown*)elem, "noattr", FALSE);
+ get_elem_attr_node((IUnknown*)elem, L"noattr", FALSE);
- attr = get_elem_attr_node((IUnknown*)elem, "id", TRUE);
+ attr = get_elem_attr_node((IUnknown*)elem, L"id", TRUE);
test_disp((IUnknown*)attr, &DIID_DispHTMLDOMAttribute, NULL, L"[object]");
test_ifaces((IUnknown*)attr, attr_iids);
@@ -9244,7 +9229,7 @@ static void test_attr(IHTMLDocument2 *doc, IHTMLElement *elem)
test_attr_specified(attr, VARIANT_TRUE);
test_attr_parent(attr);
- attr2 = get_elem_attr_node((IUnknown*)elem, "id", TRUE);
+ attr2 = get_elem_attr_node((IUnknown*)elem, L"id", TRUE);
ok(iface_cmp((IUnknown*)attr, (IUnknown*)attr2), "attr != attr2\n");
IHTMLDOMAttribute_Release(attr2);
@@ -9261,7 +9246,7 @@ static void test_attr(IHTMLDocument2 *doc, IHTMLElement *elem)
ok(!lstrcmpW(V_BSTR(&v), L"divid2"), "V_BSTR(v) = %s\n", wine_dbgstr_w(V_BSTR(&v)));
VariantClear(&v);
- put_attr_value(attr, "divid3");
+ put_attr_value(attr, L"divid3");
get_attr_node_value(attr, &v, VT_BSTR);
ok(!lstrcmpW(V_BSTR(&v), L"divid3"), "V_BSTR(v) = %s\n", wine_dbgstr_w(V_BSTR(&v)));
@@ -9269,7 +9254,7 @@ static void test_attr(IHTMLDocument2 *doc, IHTMLElement *elem)
IHTMLDOMAttribute_Release(attr);
- attr = get_elem_attr_node((IUnknown*)elem, "emptyattr", TRUE);
+ attr = get_elem_attr_node((IUnknown*)elem, L"emptyattr", TRUE);
get_attr_node_value(attr, &v, VT_BSTR);
ok(!V_BSTR(&v), "V_BSTR(v) = %s\n", wine_dbgstr_w(V_BSTR(&v)));
VariantClear(&v);
@@ -9279,7 +9264,7 @@ static void test_attr(IHTMLDocument2 *doc, IHTMLElement *elem)
put_attr_node_value(attr, v);
VariantClear(&v);
- attr = get_elem_attr_node((IUnknown*)elem, "emptyattr", TRUE);
+ attr = get_elem_attr_node((IUnknown*)elem, L"emptyattr", TRUE);
get_attr_node_value(attr, &v, VT_BSTR);
ok(!lstrcmpW(V_BSTR(&v), L"newvalue"), "V_BSTR(v) = %s\n", wine_dbgstr_w(V_BSTR(&v)));
VariantClear(&v);
@@ -9289,8 +9274,8 @@ static void test_attr(IHTMLDocument2 *doc, IHTMLElement *elem)
V_VT(&v) = VT_I4;
V_I4(&v) = 100;
- set_dispex_value((IUnknown*)elem, "dispprop", &v);
- attr = get_elem_attr_node((IUnknown*)elem, "dispprop", TRUE);
+ set_dispex_value((IUnknown*)elem, L"dispprop", &v);
+ attr = get_elem_attr_node((IUnknown*)elem, L"dispprop", TRUE);
get_attr_node_value(attr, &v, VT_I4);
ok(V_I4(&v) == 100, "V_I4(v) = %d\n", V_I4(&v));
test_attr_specified(attr, VARIANT_TRUE);
@@ -9302,14 +9287,14 @@ static void test_attr(IHTMLDocument2 *doc, IHTMLElement *elem)
get_attr_node_value(attr, &v, VT_I4);
ok(V_I4(&v) == 150, "V_I4(v) = %d\n", V_I4(&v));
- put_attr_value(attr, "160");
+ put_attr_value(attr, L"160");
get_attr_node_value(attr, &v, VT_BSTR);
ok(!lstrcmpW(V_BSTR(&v), L"160"), "V_BSTR(v) = %s\n", wine_dbgstr_w(V_BSTR(&v)));
VariantClear(&v);
IHTMLDOMAttribute_Release(attr);
- attr = get_elem_attr_node((IUnknown*)elem, "tabIndex", TRUE);
+ attr = get_elem_attr_node((IUnknown*)elem, L"tabIndex", TRUE);
test_attr_specified(attr, VARIANT_FALSE);
test_attr_expando(attr, VARIANT_FALSE);
IHTMLDOMAttribute_Release(attr);
@@ -9350,37 +9335,37 @@ static void test_attr(IHTMLDocument2 *doc, IHTMLElement *elem)
ok(hres == S_OK, "setAttributeNode failed: %08x\n", hres);
ok(!attr2, "attr2 != NULL\n");
- test_elem_attr(elem, "Test", L"testing");
- put_attr_value(attr, "new value");
- test_elem_attr(elem, "Test", L"new value");
+ test_elem_attr(elem, L"Test", L"testing");
+ put_attr_value(attr, L"new value");
+ test_elem_attr(elem, L"Test", L"new value");
- attr2 = get_elem_attr_node((IUnknown*)elem, "Test", TRUE);
+ attr2 = get_elem_attr_node((IUnknown*)elem, L"Test", TRUE);
ok(iface_cmp((IUnknown*)attr2, (IUnknown*)attr), "attr2 != attr\n");
IHTMLDOMAttribute_Release(attr2);
attr3 = create_attr((IUnknown*)doc, "Test");
- put_attr_value(attr3, "replace test");
+ put_attr_value(attr3, L"replace test");
hres = IHTMLElement4_setAttributeNode(elem4, attr3, &attr2);
ok(hres == S_OK, "setAttributeNode failed: %08x\n", hres);
ok(iface_cmp((IUnknown*)attr2, (IUnknown*)attr), "attr2 != attr\n");
IHTMLDOMAttribute_Release(attr2);
- test_elem_attr(elem, "Test", L"replace test");
+ test_elem_attr(elem, L"Test", L"replace test");
test_attr_value(attr, L"new value");
test_attr_value(attr3, L"replace test");
- attr2 = get_elem_attr_node((IUnknown*)elem, "Test", TRUE);
+ attr2 = get_elem_attr_node((IUnknown*)elem, L"Test", TRUE);
ok(iface_cmp((IUnknown*)attr2, (IUnknown*)attr3), "attr2 != attr3\n");
IHTMLDOMAttribute_Release(attr2);
- put_attr_value(attr, "new value2");
- test_elem_attr(elem, "Test", L"replace test");
+ put_attr_value(attr, L"new value2");
+ test_elem_attr(elem, L"Test", L"replace test");
test_attr_value(attr, L"new value2");
test_attr_value(attr3, L"replace test");
- put_attr_value(attr3, "new replace value");
- test_elem_attr(elem, "Test", L"new replace value");
+ put_attr_value(attr3, L"new replace value");
+ test_elem_attr(elem, L"Test", L"new replace value");
test_attr_value(attr, L"new value2");
test_attr_value(attr3, L"new replace value");
@@ -9389,7 +9374,7 @@ static void test_attr(IHTMLDocument2 *doc, IHTMLElement *elem)
ok(hres == E_INVALIDARG, "setAttributeNode failed: %08x, expected E_INVALIDARG\n", hres);
IHTMLDOMAttribute_Release(attr3);
- attr2 = get_elem_attr_node((IUnknown*)elem, "id", TRUE);
+ attr2 = get_elem_attr_node((IUnknown*)elem, L"id", TRUE);
hres = IHTMLElement4_setAttributeNode(elem4, attr2, &attr3);
ok(hres == E_INVALIDARG, "setAttributeNode failed: %08x, expected E_INVALIDARG\n", hres);
IHTMLDOMAttribute_Release(attr2);
@@ -9403,32 +9388,32 @@ static void test_blocked(IHTMLDocument2 *doc, IHTMLElement *outer_elem)
IHTMLElement *elem;
test_elem_set_innerhtml((IUnknown*)outer_elem,
- "<img id=\"imgid\" src=\"BLOCKED::http://www.winehq.org/img.png\" />");
- elem = get_elem_by_id(doc, "imgid", TRUE);
+ L"<img id=\"imgid\" src=\"BLOCKED::http://www.winehq.org/img.png\" />");
+ elem = get_elem_by_id(doc, L"imgid", TRUE);
if(elem) {
test_img_src((IUnknown*)elem, L"BLOCKED::", L"blocked::http://www.winehq.org/img.png");
IHTMLElement_Release(elem);
}
test_elem_set_innerhtml((IUnknown*)outer_elem,
- "<img id=\"imgid\" src=\"BLOCKE::http://www.winehq.org/img.png\" />");
- elem = get_elem_by_id(doc, "imgid", TRUE);
+ L"<img id=\"imgid\" src=\"BLOCKE::http://www.winehq.org/img.png\" />");
+ elem = get_elem_by_id(doc, L"imgid", TRUE);
if(elem) {
test_img_src((IUnknown*)elem, L"blocke::http://www.winehq.org/img.png", NULL);
- test_img_set_src((IUnknown*)elem, "BLOCKED:http://www.winehq.org/img.png");
+ test_img_set_src((IUnknown*)elem, L"BLOCKED:http://www.winehq.org/img.png");
test_img_src((IUnknown*)elem, L"blocked:http://www.winehq.org/img.png", NULL);
- test_img_set_src((IUnknown*)elem, "blocked::http://www.winehq.org/img.png");
+ test_img_set_src((IUnknown*)elem, L"blocked::http://www.winehq.org/img.png");
test_img_src((IUnknown*)elem, L"BLOCKED::", L"blocked::http://www.winehq.org/img.png");
IHTMLElement_Release(elem);
}
}
#define doc_get_elems_by_name(a,b) _doc_get_elems_by_name(__LINE__,a,b)
-static IHTMLElementCollection *_doc_get_elems_by_name(unsigned line, IHTMLDocument2 *doc, const char *name)
+static IHTMLElementCollection *_doc_get_elems_by_name(unsigned line, IHTMLDocument2 *doc, const WCHAR *name)
{
IHTMLDocument3 *doc3 = _get_doc3_iface(line, doc);
IHTMLElementCollection *col;
- BSTR str = a2bstr(name);
+ BSTR str = SysAllocString(name);
HRESULT hres;
hres = IHTMLDocument3_getElementsByName(doc3, str, &col);
@@ -9448,17 +9433,17 @@ static void test_elem_names(IHTMLDocument2 *doc)
static const elem_type_t test1_types[] = {ET_INPUT, ET_A, ET_DIV};
- set_body_html(doc, "<input name=\"test\"><a name=\"test\"></a><a name=\"xxx\"></a><div id=\"test\"></div>");
- col = doc_get_elems_by_name(doc, "test");
+ set_body_html(doc, L"<input name=\"test\"><a name=\"test\"></a><a name=\"xxx\"></a><div id=\"test\"></div>");
+ col = doc_get_elems_by_name(doc, L"test");
test_elem_collection((IUnknown*)col, test1_types, ARRAY_SIZE(test1_types));
IHTMLElementCollection_Release(col);
- col = doc_get_elems_by_name(doc, "yyy");
+ col = doc_get_elems_by_name(doc, L"yyy");
test_elem_collection((IUnknown*)col, NULL, 0);
IHTMLElementCollection_Release(col);
/* case insensivity test */
- col = doc_get_elems_by_name(doc, "Xxx");
+ col = doc_get_elems_by_name(doc, L"Xxx");
hres = IHTMLElementCollection_get_length(col, &len);
ok(hres == S_OK, "get_length failed: %08x\n", hres);
todo_wine ok(len == 1, "len = %d\n", len);
@@ -9474,9 +9459,9 @@ static void test_elems2(IHTMLDocument2 *doc)
ET_A
};
- div = get_doc_elem_by_id(doc, "divid");
+ div = get_doc_elem_by_id(doc, L"divid");
- elem = get_elem_by_id(doc, "linkid", TRUE);
+ elem = get_elem_by_id(doc, L"linkid", TRUE);
if(elem) {
test_link_disabled(elem, VARIANT_FALSE);
test_link_rel(elem, L"stylesheet");
@@ -9492,22 +9477,22 @@ static void test_elems2(IHTMLDocument2 *doc)
IHTMLElement_Release(elem);
}
- test_elem_set_innerhtml((IUnknown*)div, "<div id=\"innerid\"></div>");
- elem2 = get_doc_elem_by_id(doc, "innerid");
+ test_elem_set_innerhtml((IUnknown*)div, L"<div id=\"innerid\"></div>");
+ elem2 = get_doc_elem_by_id(doc, L"innerid");
ok(elem2 != NULL, "elem2 == NULL\n");
- test_elem_set_outerhtml((IUnknown*)elem2, "<br><a href=\"about:blank\" id=\"aid\">a</a>");
+ test_elem_set_outerhtml((IUnknown*)elem2, L"<br><a href=\"about:blank\" id=\"aid\">a</a>");
test_elem_all((IUnknown*)div, outer_types, ARRAY_SIZE(outer_types));
IHTMLElement_Release(elem2);
- elem2 = get_doc_elem_by_id(doc, "aid");
+ elem2 = get_doc_elem_by_id(doc, L"aid");
ok(elem2 != NULL, "elem2 == NULL\n");
- test_elem_set_outerhtml((IUnknown*)elem2, "");
+ test_elem_set_outerhtml((IUnknown*)elem2, L"");
test_elem_all((IUnknown*)div, outer_types, 1);
IHTMLElement_Release(elem2);
test_elem_set_innerhtml((IUnknown*)div,
- "<input value=\"val\" id =\"inputid\" />");
- elem = get_elem_by_id(doc, "inputid", TRUE);
+ L"<input value=\"val\" id =\"inputid\" />");
+ elem = get_elem_by_id(doc, L"inputid", TRUE);
if(elem) {
test_input_defaultValue((IUnknown*)elem, L"val");
test_input_put_value((IUnknown*)elem, L"test");
@@ -9516,26 +9501,26 @@ static void test_elems2(IHTMLDocument2 *doc)
IHTMLElement_Release(elem);
}
- test_elem_set_innerhtml((IUnknown*)div, "");
+ test_elem_set_innerhtml((IUnknown*)div, L"");
test_insert_adjacent_elems(doc, div);
test_elem_set_innerhtml((IUnknown*)div,
- "<form id=\"form\" name=\"form_name\"><select id=\"sform\"><option id=\"oform\"></option></select><button id=\"btnid\"></button></form>");
- elem = get_elem_by_id(doc, "sform", TRUE);
- elem2 = get_elem_by_id(doc, "form", TRUE);
+ L"<form id=\"form\" name=\"form_name\"><select id=\"sform\"><option id=\"oform\"></option></select><button id=\"btnid\"></button></form>");
+ elem = get_elem_by_id(doc, L"sform", TRUE);
+ elem2 = get_elem_by_id(doc, L"form", TRUE);
if(elem && elem2) {
IHTMLFormElement *form;
test_select_form((IUnknown*)elem, (IUnknown*)elem2);
IHTMLElement_Release(elem);
- elem = get_elem_by_id(doc, "oform", TRUE);
+ elem = get_elem_by_id(doc, L"oform", TRUE);
if(elem) {
test_option_form((IUnknown*)elem, (IUnknown*)elem2);
IHTMLElement_Release(elem);
}
- elem = get_elem_by_id(doc, "btnid", TRUE);
+ elem = get_elem_by_id(doc, L"btnid", TRUE);
form = get_button_form(elem);
ok(iface_cmp((IUnknown*)form, (IUnknown*)elem2), "form != elem2\n");
@@ -9548,11 +9533,11 @@ static void test_elems2(IHTMLDocument2 *doc)
test_selectors(doc, div);
test_elemsbyclass(div);
- test_elem_set_innerhtml((IUnknown*)div, "<div id=\"elemid\">test</div>");
- elem = get_elem_by_id(doc, "elemid", TRUE);
+ test_elem_set_innerhtml((IUnknown*)div, L"<div id=\"elemid\">test</div>");
+ elem = get_elem_by_id(doc, L"elemid", TRUE);
if(elem) {
test_elem_outertext(elem, L"test");
- test_elem_set_outertext(elem, "outer text");
+ test_elem_set_outertext(elem, L"outer text");
test_elem_outertext(elem, NULL);
test_elem_all((IUnknown*)div, NULL, 0);
elem2 = test_elem_get_parent((IUnknown*)elem);
@@ -9560,8 +9545,8 @@ static void test_elems2(IHTMLDocument2 *doc)
IHTMLElement_Release(elem);
}
- test_elem_set_innerhtml((IUnknown*)div, "<map><area id=\"areaid\"></area></map>");
- elem = get_elem_by_id(doc, "areaid", TRUE);
+ test_elem_set_innerhtml((IUnknown*)div, L"<map><area id=\"areaid\"></area></map>");
+ elem = get_elem_by_id(doc, L"areaid", TRUE);
if(elem) {
test_elem_type((IUnknown*)elem, ET_AREA);
IHTMLElement_Release(elem);
@@ -9581,11 +9566,11 @@ static void test_textarea_element(IHTMLDocument2 *doc, IHTMLElement *parent)
IHTMLFormElement *form;
test_elem_set_innerhtml((IUnknown*)parent,
- "<form id=\"fid\"><textarea id=\"ta\"></textarea></form>");
- elem = get_elem_by_id(doc, "ta", TRUE);
+ L"<form id=\"fid\"><textarea id=\"ta\"></textarea></form>");
+ elem = get_elem_by_id(doc, L"ta", TRUE);
test_elem_type((IUnknown*)elem, ET_TEXTAREA);
- form_elem = get_elem_by_id(doc, "fid", TRUE);
+ form_elem = get_elem_by_id(doc, L"fid", TRUE);
ok(form_elem != NULL, "form_elem == NULL\n");
form = get_textarea_form((IUnknown*)elem);
@@ -9596,8 +9581,8 @@ static void test_textarea_element(IHTMLDocument2 *doc, IHTMLElement *parent)
IHTMLElement_Release(form_elem);
IHTMLElement_Release(elem);
- test_elem_set_innerhtml((IUnknown*)parent, "<textarea id=\"ta\"></textarea>");
- elem = get_elem_by_id(doc, "ta", TRUE);
+ test_elem_set_innerhtml((IUnknown*)parent, L"<textarea id=\"ta\"></textarea>");
+ elem = get_elem_by_id(doc, L"ta", TRUE);
test_textarea_value((IUnknown*)elem, NULL);
test_textarea_put_value((IUnknown*)elem, L"test");
@@ -9616,8 +9601,8 @@ static void test_textarea_element(IHTMLDocument2 *doc, IHTMLElement *parent)
IHTMLElement_Release(elem);
- test_elem_set_innerhtml((IUnknown*)parent, "<textarea id=\"ta\">default text</textarea>");
- elem = get_elem_by_id(doc, "ta", TRUE);
+ test_elem_set_innerhtml((IUnknown*)parent, L"<textarea id=\"ta\">default text</textarea>");
+ elem = get_elem_by_id(doc, L"ta", TRUE);
test_textarea_defaultvalue((IUnknown*)elem, L"default text");
IHTMLElement_Release(elem);
}
@@ -9629,11 +9614,11 @@ static void test_form_element(IHTMLDocument2 *doc, IHTMLElement *parent)
static const elem_type_t elems_textarea_input[] = { ET_TEXTAREA, ET_INPUT };
test_elem_set_innerhtml((IUnknown*)parent,
- "<form id=\"form\">"
+ L"<form id=\"form\">"
"<textarea></textarea>"
"<div><input type=\"text\" id=\"inputid\" /></div>"
"</form>");
- elem = get_elem_by_id(doc, "form", TRUE);
+ elem = get_elem_by_id(doc, L"form", TRUE);
test_elem_type((IUnknown*)elem, ET_FORM);
test_form_length((IUnknown*)elem, 2);
@@ -9655,7 +9640,7 @@ static void test_form_element(IHTMLDocument2 *doc, IHTMLElement *parent)
test_form_reset((IUnknown*)elem);
test_form_target((IUnknown*)elem);
- input_elem = get_elem_by_id(doc, "inputid", TRUE);
+ input_elem = get_elem_by_id(doc, L"inputid", TRUE);
test_input_get_form((IUnknown*)input_elem, L"form");
IHTMLElement_Release(input_elem);
@@ -9667,7 +9652,7 @@ static void test_svg_element(IHTMLDocument2 *doc, IHTMLElement *parent)
IHTMLDOMNode *svg_node, *circle_node, *tspan_node;
test_elem_set_innerhtml((IUnknown*)parent,
- "<svg width=\"100\" height=\"100\" id=\"svgid\">"
+ L"<svg width=\"100\" height=\"100\" id=\"svgid\">"
"<circle cx=\"50\" cy=\"50\" r=\"40\" fill=\"black\" />"
"<tspan></tspan>"
"</svg>");
@@ -9700,8 +9685,8 @@ static void test_dom_elements(IHTMLDocument2 *doc)
{
IHTMLElement *div;
- set_body_html(doc, "<div id=\"parentdiv\"></div>");
- div = get_doc_elem_by_id(doc, "parentdiv");
+ set_body_html(doc, L"<div id=\"parentdiv\"></div>");
+ div = get_doc_elem_by_id(doc, L"parentdiv");
test_textarea_element(doc, div);
test_form_element(doc, div);
@@ -9723,7 +9708,7 @@ static void test_create_elems(IHTMLDocument2 *doc)
static const elem_type_t types1[] = { ET_TESTG };
- elem = test_create_elem(doc, "TEST");
+ elem = test_create_elem(doc, L"TEST");
test_elem_tag((IUnknown*)elem, L"TEST");
type = get_node_type((IUnknown*)elem);
ok(type == 1, "type=%d\n", type);
@@ -9755,24 +9740,24 @@ static void test_create_elems(IHTMLDocument2 *doc)
IHTMLElement_Release(elem);
IHTMLDOMNode_Release(node);
- node = test_create_text(doc, "abc");
+ node = test_create_text(doc, L"abc");
test_ifaces((IUnknown*)node, text_iids);
test_disp((IUnknown*)node, &DIID_DispHTMLDOMTextNode, NULL, L"[object]");
test_text_length((IUnknown*)node, 3);
test_text_data((IUnknown*)node, L"abc");
- set_text_data((IUnknown*)node, "test");
+ set_text_data((IUnknown*)node, L"test");
test_text_data((IUnknown*)node, L"test");
- text_append_data((IUnknown*)node, " append");
+ text_append_data((IUnknown*)node, L" append");
test_text_data((IUnknown*)node, L"test append");
text_append_data((IUnknown*)node, NULL);
test_text_data((IUnknown*)node, L"test append");
- set_text_data((IUnknown*)node, "test");
+ set_text_data((IUnknown*)node, L"test");
V_VT(&var) = VT_NULL;
node2 = test_node_insertbefore((IUnknown*)body, node, &var);
IHTMLDOMNode_Release(node);
- node = test_create_text(doc, "insert ");
+ node = test_create_text(doc, L"insert ");
V_VT(&var) = VT_DISPATCH;
V_DISPATCH(&var) = (IDispatch*)node2;
@@ -9784,7 +9769,7 @@ static void test_create_elems(IHTMLDocument2 *doc)
test_elem_innertext(body, L"insert test");
test_elem_innerhtml((IUnknown*)body, L"insert test");
- node = test_create_text(doc, " Test");
+ node = test_create_text(doc, L" Test");
V_VT(&var) = VT_DISPATCH;
V_DISPATCH(&var) = NULL;
test_node_insertbefore((IUnknown*)body, node, &var);
@@ -9804,7 +9789,7 @@ static void test_create_elems(IHTMLDocument2 *doc)
test_node_get_value_str((IUnknown*)comment, L"testing");
test_elem_title((IUnknown*)comment, NULL);
- test_elem_set_title((IUnknown*)comment, "comment title");
+ test_elem_set_title((IUnknown*)comment, L"comment title");
test_elem_title((IUnknown*)comment, L"comment title");
test_comment_text((IUnknown*)comment, L"<!--testing-->");
test_elem_outerhtml((IUnknown*)comment, L"<!--testing-->");
@@ -9835,7 +9820,7 @@ static void test_replacechild_elems(IHTMLDocument2 *doc)
body = doc_get_body(doc);
- node = test_create_text(doc, "insert");
+ node = test_create_text(doc, L"insert");
V_VT(&var) = VT_NULL;
V_DISPATCH(&var) = NULL;
@@ -9844,7 +9829,7 @@ static void test_replacechild_elems(IHTMLDocument2 *doc)
test_elem_innertext(body, L"insert");
- node3 = test_create_text(doc, "replaced");
+ node3 = test_create_text(doc, L"replaced");
nodeBody = _get_node_iface(__LINE__, (IUnknown *)body);
@@ -9886,7 +9871,7 @@ static void test_noscript(IHTMLDocument2 *doc)
IHTMLElementCollection_Release(col);
body = doc_get_body(doc);
- test_elem_set_innerhtml((IUnknown*)body, "<div>test</div><noscript><a href=\"about:blank\">A</a></noscript>");
+ test_elem_set_innerhtml((IUnknown*)body, L"<div>test</div><noscript><a href=\"about:blank\">A</a></noscript>");
test_elem_all((IUnknown*)body, body_all_types, ARRAY_SIZE(body_all_types));
IHTMLElement_Release(body);
}
@@ -10255,7 +10240,7 @@ static void test_frameset(IHTMLDocument2 *doc)
test_frames_collection((IHTMLFramesCollection2*)window, L"fr2");
/* getElementById with node name attributes */
- elem = get_doc_elem_by_id(doc, "nm1");
+ elem = get_doc_elem_by_id(doc, L"nm1");
test_elem_id((IUnknown*)elem, L"fr1");
hres = IHTMLDocument2_QueryInterface(doc, &IID_IHTMLDocument6, (void**)&doc6);
@@ -10290,7 +10275,7 @@ static void test_frameset(IHTMLDocument2 *doc)
IHTMLElement_Release(elem);
/* get_name with no name attr */
- elem = get_doc_elem_by_id(doc, "fr3");
+ elem = get_doc_elem_by_id(doc, L"fr3");
test_framebase_name(elem, NULL);
test_framebase_put_name(elem, L"frame name");
test_framebase_put_name(elem, NULL);
@@ -10347,7 +10332,7 @@ static void test_docfrag(IHTMLDocument2 *doc)
ok(hres == E_UNEXPECTED, "get_location failed: %08x\n", hres);
ok(location == (void*)0xdeadbeef, "location changed\n");
- br = test_create_elem(doc, "BR");
+ br = test_create_elem(doc, L"BR");
test_elem_source_index(br, -1);
test_node_append_child((IUnknown*)frag, (IUnknown*)br);
test_elem_source_index(br, 0);
@@ -10356,7 +10341,7 @@ static void test_docfrag(IHTMLDocument2 *doc)
test_doc_getelembytag(frag, "a", ET_A, 0);
test_doc_getelembytag(frag, "Br", ET_BR, 1);
- div = get_elem_by_id(doc, "divid", TRUE);
+ div = get_elem_by_id(doc, L"divid", TRUE);
test_node_append_child((IUnknown*)div, (IUnknown*)frag);
IHTMLElement_Release(div);
@@ -10365,7 +10350,7 @@ static void test_docfrag(IHTMLDocument2 *doc)
test_elem_collection((IUnknown*)col, all_types, ARRAY_SIZE(all_types));
IHTMLElementCollection_Release(col);
- div = test_create_elem(frag, "div");
+ div = test_create_elem(frag, L"div");
owner_doc = get_owner_doc((IUnknown*)div);
doc_node = get_doc_node(doc);
ok(iface_cmp((IUnknown*)owner_doc, (IUnknown*)doc_node), "owner_doc != doc_node\n");
--
2.24.1
3
2
[PATCH 1/2] mshtml/tests: Avoid a2bstr() on string literals in dom.c
by Michael Stefaniuc 12 Feb '20
by Michael Stefaniuc 12 Feb '20
12 Feb '20
Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org>
---
Just split out because of the size of the next patch.
dlls/mshtml/tests/dom.c | 134 ++++++++++++++++++++--------------------
1 file changed, 67 insertions(+), 67 deletions(-)
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index c758fb2907..64c20e11e6 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -1449,7 +1449,7 @@ static void test_get_set_attr(IHTMLDocument2 *doc)
ok(hres == S_OK, "get_documentElement failed: %08x\n", hres);
/* get a non-present attribute */
- bstr = a2bstr("notAnAttribute");
+ bstr = SysAllocString(L"notAnAttribute");
hres = IHTMLElement_getAttribute(elem, bstr, 0, &val);
ok(hres == S_OK, "getAttribute failed: %08x\n", hres);
ok(V_VT(&val) == VT_NULL, "variant type should have been VT_NULL (0x%x), was: 0x%x\n", VT_NULL, V_VT(&val));
@@ -1457,7 +1457,7 @@ static void test_get_set_attr(IHTMLDocument2 *doc)
SysFreeString(bstr);
/* get a present attribute */
- bstr = a2bstr("scrollHeight");
+ bstr = SysAllocString(L"scrollHeight");
hres = IHTMLElement_getAttribute(elem, bstr, 0, &val);
ok(hres == S_OK, "getAttribute failed: %08x\n", hres);
ok(V_VT(&val) == VT_I4, "variant type should have been VT_I4 (0x%x), was: 0x%x\n", VT_I4, V_VT(&val));
@@ -1465,10 +1465,10 @@ static void test_get_set_attr(IHTMLDocument2 *doc)
SysFreeString(bstr);
/* create a new BSTR attribute */
- bstr = a2bstr("newAttribute");
+ bstr = SysAllocString(L"newAttribute");
V_VT(&val) = VT_BSTR;
- V_BSTR(&val) = a2bstr("the value");
+ V_BSTR(&val) = SysAllocString(L"the value");
hres = IHTMLElement_setAttribute(elem, bstr, val, 0);
ok(hres == S_OK, "setAttribute failed: %08x\n", hres);
VariantClear(&val);
@@ -1495,7 +1495,7 @@ static void test_get_set_attr(IHTMLDocument2 *doc)
SysFreeString(bstr);
/* case-insensitive */
- bstr = a2bstr("newattribute");
+ bstr = SysAllocString(L"newattribute");
hres = IHTMLElement_getAttribute(elem, bstr, 0, &val);
ok(hres == S_OK, "getAttribute failed: %08x\n", hres);
ok(V_VT(&val) == VT_BOOL, "variant type should have been VT_BOOL (0x%x), was: 0x%x\n", VT_BOOL, V_VT(&val));
@@ -1999,7 +1999,7 @@ static void _test_comment_text(unsigned line, IUnknown *unk, const WCHAR *extext
static IHTMLDOMAttribute *_create_attr(unsigned line, IUnknown *unk, const char *name)
{
IHTMLDocument5 *doc = _get_htmldoc5_iface(line, unk);
- BSTR str = a2bstr("Test");
+ BSTR str = SysAllocString(L"Test");
IHTMLDOMAttribute *attr;
HRESULT hres;
@@ -2061,7 +2061,7 @@ static void _test_comment_attrs(unsigned line, IUnknown *unk)
IHTMLElement *elem = _get_elem_iface(__LINE__,unk);
IHTMLElement4 *elem4 = _get_elem4_iface(__LINE__,unk);
IHTMLDOMAttribute *attr;
- BSTR name = a2bstr("test");
+ BSTR name = SysAllocString(L"test");
VARIANT val;
HRESULT hres;
@@ -2226,7 +2226,7 @@ static IHTMLImgElement *_create_img_elem(unsigned line, IHTMLDocument2 *doc,
IHTMLImgElement *img;
IHTMLWindow2 *window;
VARIANT width, height;
- char buf[16];
+ WCHAR buf[16];
HRESULT hres;
hres = IHTMLDocument2_get_parentWindow(doc, &window);
@@ -2240,18 +2240,18 @@ static IHTMLImgElement *_create_img_elem(unsigned line, IHTMLDocument2 *doc,
test_disp((IUnknown*)factory, &IID_IHTMLImageElementFactory, NULL, L"[object]");
if(wdth >= 0){
- sprintf(buf, "%d", wdth);
+ wsprintfW(buf, L"%d", wdth);
V_VT(&width) = VT_BSTR;
- V_BSTR(&width) = a2bstr(buf);
+ V_BSTR(&width) = SysAllocString(buf);
}else{
V_VT(&width) = VT_EMPTY;
wdth = 0;
}
if(hght >= 0){
- sprintf(buf, "%d", hght);
+ wsprintfW(buf, L"%d", hght);
V_VT(&height) = VT_BSTR;
- V_BSTR(&height) = a2bstr(buf);
+ V_BSTR(&height) = SysAllocString(buf);
}else{
V_VT(&height) = VT_EMPTY;
hght = 0;
@@ -2941,7 +2941,7 @@ static void _test_elem_set_outertext(unsigned line, IHTMLElement *elem, const ch
#define test_elem_set_outertext_fail(a) _test_elem_set_outertext_fail(__LINE__,a)
static void _test_elem_set_outertext_fail(unsigned line, IHTMLElement *elem)
{
- BSTR str = a2bstr("test");
+ BSTR str = SysAllocString(L"test");
HRESULT hres;
hres = IHTMLElement_put_outerText(elem, str);
@@ -3579,7 +3579,7 @@ static void test_attr_collection_disp(IDispatch *disp)
hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (void**)&dispex);
ok(hres == S_OK, "QueryInterface failed: %08x\n", hres);
- bstr = a2bstr("0");
+ bstr = SysAllocString(L"0");
hres = IDispatchEx_GetDispID(dispex, bstr, fdexNameCaseSensitive, &id);
ok(hres == S_OK, "GetDispID failed: %08x\n", hres);
SysFreeString(bstr);
@@ -3591,7 +3591,7 @@ static void test_attr_collection_disp(IDispatch *disp)
ok(V_DISPATCH(&var) != NULL, "V_DISPATCH(var) == NULL\n");
VariantClear(&var);
- bstr = a2bstr("attr1");
+ bstr = SysAllocString(L"attr1");
hres = IDispatchEx_GetDispID(dispex, bstr, fdexNameCaseSensitive, &id);
ok(hres == S_OK, "GetDispID failed: %08x\n", hres);
SysFreeString(bstr);
@@ -3717,7 +3717,7 @@ static void test_attr_collection(IHTMLElement *elem)
ok(hres == E_INVALIDARG, "item failed: %08x\n", hres);
V_VT(&id) = VT_BSTR;
- V_BSTR(&id) = a2bstr("nonexisting");
+ V_BSTR(&id) = SysAllocString(L"nonexisting");
hres = IHTMLAttributeCollection_item(attr_col, &id, &attr);
ok(hres == E_INVALIDARG, "item failed: %08x\n", hres);
VariantClear(&id);
@@ -3831,7 +3831,7 @@ static void test_contenteditable(IUnknown *unk)
hres = IHTMLElement3_get_contentEditable(elem3, &strDefault);
ok(hres == S_OK, "get_contentEditable failed: 0x%08x\n", hres);
- str = a2bstr("true");
+ str = SysAllocString(L"true");
hres = IHTMLElement3_put_contentEditable(elem3, str);
ok(hres == S_OK, "put_contentEditable(%s) failed: 0x%08x\n", wine_dbgstr_w(str), hres);
SysFreeString(str);
@@ -6169,7 +6169,7 @@ static void test_framebase(IUnknown *unk)
ok(!lstrcmpW(str, L"auto"), "get_scrolling should have given 'auto', gave: %s\n", wine_dbgstr_w(str));
SysFreeString(str);
- str = a2bstr("no");
+ str = SysAllocString(L"no");
hres = IHTMLFrameBase_put_scrolling(fbase, str);
ok(hres == S_OK, "IHTMLFrameBase_put_scrolling failed: 0x%08x\n", hres);
SysFreeString(str);
@@ -6179,7 +6179,7 @@ static void test_framebase(IUnknown *unk)
ok(!lstrcmpW(str, L"no"), "get_scrolling should have given 'no', gave: %s\n", wine_dbgstr_w(str));
SysFreeString(str);
- str = a2bstr("junk");
+ str = SysAllocString(L"junk");
hres = IHTMLFrameBase_put_scrolling(fbase, str);
ok(hres == E_INVALIDARG, "IHTMLFrameBase_put_scrolling should have failed "
"with E_INVALIDARG, instead: 0x%08x\n", hres);
@@ -6194,7 +6194,7 @@ static void test_framebase(IUnknown *unk)
ok(hres == S_OK, "get_frameBorder failed: %08x\n", hres);
ok(!str, "frameBorder = %s\n", wine_dbgstr_w(str));
- str = a2bstr("1");
+ str = SysAllocString(L"1");
hres = IHTMLFrameBase_put_frameBorder(fbase, str);
ok(hres == S_OK, "put_frameBorder failed: %08x\n", hres);
SysFreeString(str);
@@ -6498,7 +6498,7 @@ static void test_doc_dir(IHTMLDocument2 *doc2)
ok(hres == S_OK, "get_dir failed: %08x\n", hres);
ok(!dir, "dir = %s\n", wine_dbgstr_w(dir));
- dir = a2bstr("rtl");
+ dir = SysAllocString(L"rtl");
hres = IHTMLDocument3_put_dir(doc, dir);
ok(hres == S_OK, "put_dir failed: %08x\n", hres);
SysFreeString(dir);
@@ -6509,7 +6509,7 @@ static void test_doc_dir(IHTMLDocument2 *doc2)
ok(!lstrcmpW(dir, L"rtl"), "dir = %s\n", wine_dbgstr_w(dir));
SysFreeString(dir);
- dir = a2bstr("ltr");
+ dir = SysAllocString(L"ltr");
hres = IHTMLDocument3_put_dir(doc, dir);
ok(hres == S_OK, "put_dir failed: %08x\n", hres);
SysFreeString(dir);
@@ -6648,7 +6648,7 @@ static void test_default_body(IHTMLBodyElement *body)
/* get_text - Invalid Text */
V_VT(&v) = VT_BSTR;
- V_BSTR(&v) = a2bstr("Invalid");
+ V_BSTR(&v) = SysAllocString(L"Invalid");
hres = IHTMLBodyElement_put_text(body, v);
ok(hres == S_OK, "expect S_OK got 0x%08d\n", hres);
VariantClear(&v);
@@ -6662,7 +6662,7 @@ static void test_default_body(IHTMLBodyElement *body)
/* get_text - Valid Text */
V_VT(&v) = VT_BSTR;
- V_BSTR(&v) = a2bstr("#FF0000");
+ V_BSTR(&v) = SysAllocString(L"#FF0000");
hres = IHTMLBodyElement_put_text(body, v);
ok(hres == S_OK, "expect S_OK got 0x%08d\n", hres);
VariantClear(&v);
@@ -6711,7 +6711,7 @@ static void test_body_funs(IHTMLBodyElement *body, IHTMLDocument2 *doc)
ok(!V_BSTR(&vDefaultbg), "V_BSTR(bgColor) = %s\n", wine_dbgstr_w(V_BSTR(&vDefaultbg)));
V_VT(&vbg) = VT_BSTR;
- V_BSTR(&vbg) = a2bstr("red");
+ V_BSTR(&vbg) = SysAllocString(L"red");
hres = IHTMLBodyElement_put_bgColor(body, vbg);
ok(hres == S_OK, "put_bgColor failed: %08x\n", hres);
VariantClear(&vbg);
@@ -6735,7 +6735,7 @@ static void test_body_funs(IHTMLBodyElement *body, IHTMLDocument2 *doc)
/* Set via IHTMLDocument2 */
V_VT(&vbg) = VT_BSTR;
- V_BSTR(&vbg) = a2bstr("red");
+ V_BSTR(&vbg) = SysAllocString(L"red");
hres = IHTMLDocument2_put_bgColor(doc, vbg);
ok(hres == S_OK, "put_bgColor failed: %08x\n", hres);
VariantClear(&vbg);
@@ -6820,7 +6820,7 @@ static void test_xmlhttprequest(IHTMLWindow5 *window)
static void test_read_only_style(IHTMLCSSStyleDeclaration *style)
{
- BSTR none = a2bstr("none"), display = a2bstr("display"), str;
+ BSTR none = SysAllocString(L"none"), display = SysAllocString(L"display"), str;
VARIANT v;
HRESULT hres;
@@ -7028,9 +7028,9 @@ static void test_dom_implementation(IHTMLDocument2 *doc)
ok(hres == S_OK, "get_implementation failed: %08x\n", hres);
ok(dom_implementation != NULL, "dom_implementation == NULL\n");
- str = a2bstr("test");
+ str = SysAllocString(L"test");
V_VT(&v) = VT_BSTR;
- V_BSTR(&v) = a2bstr("1.0");
+ V_BSTR(&v) = SysAllocString(L"1.0");
b = 100;
hres = IHTMLDOMImplementation_hasFeature(dom_implementation, str, v, &b);
SysFreeString(str);
@@ -7050,7 +7050,7 @@ static void test_dom_implementation(IHTMLDocument2 *doc)
test_disp((IUnknown*)dom_implementation, &DIID_DispHTMLDOMImplementation, NULL, L"[object]");
- str = a2bstr("test");
+ str = SysAllocString(L"test");
hres = IHTMLDOMImplementation2_createHTMLDocument(dom_implementation2, str, &new_document);
ok(hres == S_OK, "createHTMLDocument failed: %08x\n", hres);
@@ -7107,7 +7107,7 @@ static void test_xhr(IHTMLDocument2 *doc)
hres = IHTMLWindow2_QueryInterface(window, &IID_IDispatchEx, (void**)&dispex);
ok(hres == S_OK, "Could not get IDispatchEx iface: %08x\n", hres);
- str = a2bstr("XMLHttpRequest");
+ str = SysAllocString(L"XMLHttpRequest");
hres = IDispatchEx_GetDispID(dispex, str, 0, &id);
ok(hres == S_OK, "GetDispID failed: %08x\n", hres);
SysFreeString(str);
@@ -7264,7 +7264,7 @@ static void test_defaults(IHTMLDocument2 *doc)
hres = IHTMLElement_QueryInterface(elem, &IID_IHTMLFiltersCollection, (void**)&body);
ok(hres == E_NOINTERFACE, "got interface IHTMLFiltersCollection\n");
- str = a2bstr("xxx");
+ str = SysAllocString(L"xxx");
b = 100;
V_VT(&v) = VT_EMPTY;
hres = IHTMLDocument2_execCommand(doc, str, FALSE, v, &b);
@@ -7272,7 +7272,7 @@ static void test_defaults(IHTMLDocument2 *doc)
"execCommand failed: %08x, expected OLECMDERR_E_NOTSUPPORTED or E_INVALIDARG\n", hres);
SysFreeString(str);
- str = a2bstr("respectvisibilityindesign");
+ str = SysAllocString(L"respectvisibilityindesign");
b = 100;
V_VT(&v) = VT_BOOL;
V_BOOL(&v) = VARIANT_TRUE;
@@ -7499,7 +7499,7 @@ static void test_tr_elem(IHTMLElement *elem)
test_elem_collection((IUnknown*)col, cell_types, ARRAY_SIZE(cell_types));
IHTMLElementCollection_Release(col);
- bstr = a2bstr("left");
+ bstr = SysAllocString(L"left");
hres = IHTMLTableRow_put_align(row, bstr);
ok(hres == S_OK, "set_align failed: %08x\n", hres);
SysFreeString(bstr);
@@ -7511,7 +7511,7 @@ static void test_tr_elem(IHTMLElement *elem)
ok(!lstrcmpW(bstr, L"left"), "get_align returned %s\n", wine_dbgstr_w(bstr));
SysFreeString(bstr);
- bstr = a2bstr("top");
+ bstr = SysAllocString(L"top");
hres = IHTMLTableRow_put_vAlign(row, bstr);
ok(hres == S_OK, "set_valign failed: %08x\n", hres);
SysFreeString(bstr);
@@ -7539,7 +7539,7 @@ static void test_tr_elem(IHTMLElement *elem)
ok(!V_BSTR(&vDefaultbg), "V_BSTR(bgColor) = %s\n", wine_dbgstr_w(V_BSTR(&vDefaultbg)));
V_VT(&vbg) = VT_BSTR;
- V_BSTR(&vbg) = a2bstr("red");
+ V_BSTR(&vbg) = SysAllocString(L"red");
hres = IHTMLTableRow_put_bgColor(row, vbg);
ok(hres == S_OK, "put_bgColor failed: %08x\n", hres);
VariantClear(&vbg);
@@ -7598,7 +7598,7 @@ static void test_td_elem(IHTMLDocument2 *doc, IHTMLElement *div)
ok(hres == S_OK, "get cellIndex failed: %08x\n", hres);
ok(!lval, "Expected 0, got %d\n", lval);
- str = a2bstr("left");
+ str = SysAllocString(L"left");
hres = IHTMLTableCell_put_align(cell, str);
ok(hres == S_OK, "put_align failed: %08x\n", hres);
SysFreeString(str);
@@ -7618,7 +7618,7 @@ static void test_td_elem(IHTMLDocument2 *doc, IHTMLElement *div)
ok(!V_BSTR(&vDefaultbg), "V_BSTR(bgColor) = %s\n", wine_dbgstr_w(V_BSTR(&vDefaultbg)));
V_VT(&vbg) = VT_BSTR;
- V_BSTR(&vbg) = a2bstr("red");
+ V_BSTR(&vbg) = SysAllocString(L"red");
hres = IHTMLTableCell_put_bgColor(cell, vbg);
ok(hres == S_OK, "put_bgColor failed: %08x\n", hres);
VariantClear(&vbg);
@@ -7697,7 +7697,7 @@ static void test_label_elem(IHTMLElement *elem)
ok(!lstrcmpW(str, L"in"), "htmlFor = %s\n", wine_dbgstr_w(str));
SysFreeString(str);
- str = a2bstr("");
+ str = SysAllocString(L"");
hres = IHTMLLabelElement_put_htmlFor(label, str);
ok(hres == S_OK, "put_htmlFor failed: %08x\n", hres);
SysFreeString(str);
@@ -7708,7 +7708,7 @@ static void test_label_elem(IHTMLElement *elem)
ok(!lstrcmpW(str, L""), "htmlFor = %s\n", wine_dbgstr_w(str));
SysFreeString(str);
- str = a2bstr("abc");
+ str = SysAllocString(L"abc");
hres = IHTMLLabelElement_put_htmlFor(label, str);
ok(hres == S_OK, "put_htmlFor failed: %08x\n", hres);
SysFreeString(str);
@@ -7852,7 +7852,7 @@ static void test_table_elem(IHTMLElement *elem)
test_table_cell_spacing(table, L"10");
V_VT(&v) = VT_BSTR;
- V_BSTR(&v) = a2bstr("11");
+ V_BSTR(&v) = SysAllocString(L"11");
hres = IHTMLTable_put_cellSpacing(table, v);
ok(hres == S_OK, "put_cellSpacing = %08x\n", hres);
test_table_cell_spacing(table, L"11");
@@ -7867,7 +7867,7 @@ static void test_table_elem(IHTMLElement *elem)
test_table_cell_padding(table, L"10");
V_VT(&v) = VT_BSTR;
- V_BSTR(&v) = a2bstr("11");
+ V_BSTR(&v) = SysAllocString(L"11");
hres = IHTMLTable_put_cellPadding(table, v);
ok(hres == S_OK, "put_cellPadding = %08x\n", hres);
test_table_cell_padding(table, L"11");
@@ -7879,7 +7879,7 @@ static void test_table_elem(IHTMLElement *elem)
ok(hres == S_OK, "put_cellPadding = %08x\n", hres);
test_table_cell_padding(table, L"5");
- bstr = a2bstr("left");
+ bstr = SysAllocString(L"left");
hres = IHTMLTable_put_align(table, bstr);
ok(hres == S_OK, "set_align failed: %08x\n", hres);
SysFreeString(bstr);
@@ -7897,7 +7897,7 @@ static void test_table_elem(IHTMLElement *elem)
ok(!V_BSTR(&vDefaultbg), "V_BSTR(bgColor) = %s\n", wine_dbgstr_w(V_BSTR(&vDefaultbg)));
V_VT(&vbg) = VT_BSTR;
- V_BSTR(&vbg) = a2bstr("red");
+ V_BSTR(&vbg) = SysAllocString(L"red");
hres = IHTMLTable_put_bgColor(table, vbg);
ok(hres == S_OK, "put_bgColor failed: %08x\n", hres);
VariantClear(&vbg);
@@ -7926,7 +7926,7 @@ static void test_table_elem(IHTMLElement *elem)
VariantClear(&vDefaultbg);
V_VT(&v) = VT_BSTR;
- V_BSTR(&v) = a2bstr("11");
+ V_BSTR(&v) = SysAllocString(L"11");
hres = IHTMLTable_put_width(table, v);
ok(hres == S_OK, "put_width = %08x\n", hres);
VariantClear(&v);
@@ -7936,7 +7936,7 @@ static void test_table_elem(IHTMLElement *elem)
VariantClear(&v);
V_VT(&v) = VT_BSTR;
- V_BSTR(&v) = a2bstr("11.9");
+ V_BSTR(&v) = SysAllocString(L"11.9");
hres = IHTMLTable_put_width(table, v);
ok(hres == S_OK, "put_width = %08x\n", hres);
VariantClear(&v);
@@ -7946,7 +7946,7 @@ static void test_table_elem(IHTMLElement *elem)
VariantClear(&v);
V_VT(&v) = VT_BSTR;
- V_BSTR(&v) = a2bstr("40.2%");
+ V_BSTR(&v) = SysAllocString(L"40.2%");
hres = IHTMLTable_put_width(table, v);
ok(hres == S_OK, "put_width = %08x\n", hres);
VariantClear(&v);
@@ -7973,7 +7973,7 @@ static void test_table_elem(IHTMLElement *elem)
ok(!lstrcmpW(V_BSTR(&v), L"11"), "Expected 11, got %s\n", wine_dbgstr_w(V_BSTR(&v)));
VariantClear(&v);
- bstr = a2bstr("box");
+ bstr = SysAllocString(L"box");
hres = IHTMLTable_put_frame(table, bstr);
ok(hres == S_OK, "put_frame = %08x\n", hres);
SysFreeString(bstr);
@@ -7983,7 +7983,7 @@ static void test_table_elem(IHTMLElement *elem)
SysFreeString(bstr);
test_table_modify(table);
- bstr = a2bstr("summary");
+ bstr = SysAllocString(L"summary");
hres = IHTMLTable3_put_summary(table3, bstr);
ok(hres == S_OK, "put_summary = %08x\n", hres);
SysFreeString(bstr);
@@ -8034,15 +8034,15 @@ static void doc_complex_write(IHTMLDocument2 *doc)
ok(hres == S_OK, "Failed to access array data: %08x\n", hres);
V_VT(args) = VT_BSTR;
- V_BSTR(args) = a2bstr("<body i4val=\"");
+ V_BSTR(args) = SysAllocString(L"<body i4val=\"");
V_VT(args+1) = VT_I4;
V_I4(args+1) = 4;
V_VT(args+2) = VT_BSTR;
- V_BSTR(args+2) = a2bstr("\" r8val=\"");
+ V_BSTR(args+2) = SysAllocString(L"\" r8val=\"");
V_VT(args+3) = VT_R8;
V_R8(args+3) = 3.14;
V_VT(args+4) = VT_BSTR;
- V_BSTR(args+4) = a2bstr("\">");
+ V_BSTR(args+4) = SysAllocString(L"\">");
SafeArrayUnaccessData(sa);
hres = IHTMLDocument2_write(doc, sa);
@@ -8206,7 +8206,7 @@ static void test_iframe_elem(IHTMLElement *elem)
test_iframe_width(elem, L"70%");
test_framebase_src(elem, L"about:blank");
- str = a2bstr("text/html");
+ str = SysAllocString(L"text/html");
V_VT(&errv) = VT_ERROR;
disp = NULL;
hres = IHTMLDocument2_open(content_doc, str, errv, errv, errv, &disp);
@@ -8472,7 +8472,7 @@ static void test_selectors(IHTMLDocument2 *doc, IHTMLElement *div)
}
collection = NULL;
- str = a2bstr("nomatch");
+ str = SysAllocString(L"nomatch");
hres = IDocumentSelector_querySelectorAll(doc_selector, str, &collection);
ok(hres == S_OK, "querySelectorAll failed: %08x\n", hres);
ok(collection != NULL, "collection == NULL\n");
@@ -8481,7 +8481,7 @@ static void test_selectors(IHTMLDocument2 *doc, IHTMLElement *div)
SysFreeString(str);
collection = NULL;
- str = a2bstr(".cl1");
+ str = SysAllocString(L".cl1");
hres = IDocumentSelector_querySelectorAll(doc_selector, str, &collection);
ok(hres == S_OK, "querySelectorAll failed: %08x\n", hres);
ok(collection != NULL, "collection == NULL\n");
@@ -8495,7 +8495,7 @@ static void test_selectors(IHTMLDocument2 *doc, IHTMLElement *div)
ok(hres == S_OK, "Could not get IElementSelector iface: %08x\n", hres);
collection = NULL;
- str = a2bstr("nomatch");
+ str = SysAllocString(L"nomatch");
hres = IElementSelector_querySelectorAll(elem_selector, str, &collection);
ok(hres == S_OK, "querySelectorAll failed: %08x\n", hres);
ok(collection != NULL, "collection == NULL\n");
@@ -8504,7 +8504,7 @@ static void test_selectors(IHTMLDocument2 *doc, IHTMLElement *div)
SysFreeString(str);
collection = NULL;
- str = a2bstr(".cl1");
+ str = SysAllocString(L".cl1");
hres = IElementSelector_querySelectorAll(elem_selector, str, &collection);
ok(hres == S_OK, "querySelectorAll failed: %08x\n", hres);
ok(collection != NULL, "collection == NULL\n");
@@ -8534,7 +8534,7 @@ static void test_elemsbyclass(IHTMLElement *div)
}
collection = NULL;
- str = a2bstr("nomatch");
+ str = SysAllocString(L"nomatch");
hres = IHTMLElement6_getElementsByClassName(elem, str, &collection);
ok(hres == S_OK, "getElementsByClassName failed: %08x\n", hres);
ok(collection != NULL, "collection == NULL\n");
@@ -8543,7 +8543,7 @@ static void test_elemsbyclass(IHTMLElement *div)
SysFreeString(str);
collection = NULL;
- str = a2bstr("cl1");
+ str = SysAllocString(L"cl1");
hres = IHTMLElement6_getElementsByClassName(elem, str, &collection);
ok(hres == S_OK, "getElementsByClassName failed: %08x\n", hres);
ok(collection != NULL, "collection == NULL\n");
@@ -8794,7 +8794,7 @@ static void test_elems(IHTMLDocument2 *doc)
ok(hres == S_OK, "get_type failed: %08x\n", hres);
ok(type == NULL, "Unexpected type %s\n", wine_dbgstr_w(type));
- type = a2bstr("text/javascript");
+ type = SysAllocString(L"text/javascript");
hres = IHTMLScriptElement_put_type (script, type);
ok(hres == S_OK, "put_type failed: %08x\n", hres);
SysFreeString(type);
@@ -9174,7 +9174,7 @@ static void test_elems(IHTMLDocument2 *doc)
if(hres == S_OK)
{
DISPID pid = -1;
- BSTR str = a2bstr("Testing");
+ BSTR str = SysAllocString(L"Testing");
hres = IDispatchEx_GetDispID(dispex, str, 1, &pid);
ok(hres == S_OK, "GetDispID failed: %08x\n", hres);
ok(pid != -1, "pid == -1\n");
@@ -9253,7 +9253,7 @@ static void test_attr(IHTMLDocument2 *doc, IHTMLElement *elem)
VariantClear(&v);
V_VT(&v) = VT_BSTR;
- V_BSTR(&v) = a2bstr("divid2");
+ V_BSTR(&v) = SysAllocString(L"divid2");
put_attr_node_value(attr, v);
VariantClear(&v);
@@ -9275,7 +9275,7 @@ static void test_attr(IHTMLDocument2 *doc, IHTMLElement *elem)
VariantClear(&v);
V_VT(&v) = VT_BSTR;
- V_BSTR(&v) = a2bstr("newvalue");
+ V_BSTR(&v) = SysAllocString(L"newvalue");
put_attr_node_value(attr, v);
VariantClear(&v);
@@ -9339,7 +9339,7 @@ static void test_attr(IHTMLDocument2 *doc, IHTMLElement *elem)
get_attr_node_value(attr, &v, VT_EMPTY);
V_VT(&v) = VT_BSTR;
- V_BSTR(&v) = a2bstr("testing");
+ V_BSTR(&v) = SysAllocString(L"testing");
put_attr_node_value(attr, v);
SysFreeString(V_BSTR(&v));
test_attr_value(attr, L"testing");
@@ -9793,7 +9793,7 @@ static void test_create_elems(IHTMLDocument2 *doc)
doc5 = get_htmldoc5_iface((IUnknown*)doc);
if(doc5) {
- str = a2bstr("testing");
+ str = SysAllocString(L"testing");
hres = IHTMLDocument5_createComment(doc5, str, &comment);
SysFreeString(str);
ok(hres == S_OK, "createComment failed: %08x\n", hres);
@@ -10263,13 +10263,13 @@ static void test_frameset(IHTMLDocument2 *doc)
IHTMLElement2 *elem2;
BSTR str;
- str = a2bstr("nm1");
+ str = SysAllocString(L"nm1");
hres = IHTMLDocument6_getElementById(doc6, str, &elem2);
ok(hres == S_OK, "getElementById failed: %08x\n", hres);
ok(!elem2, "elem = %p\n", elem2);
SysFreeString(str);
- str = a2bstr("fr1");
+ str = SysAllocString(L"fr1");
hres = IHTMLDocument6_getElementById(doc6, str, &elem2);
ok(hres == S_OK, "getElementById failed: %08x\n", hres);
ok(elem2 != NULL, "elem2 is NULL\n");
--
2.24.1
3
2