Author: akhaldi
Date: Sun Jun 5 19:24:01 2016
New Revision: 71556
URL:
http://svn.reactos.org/svn/reactos?rev=71556&view=rev
Log:
[INETCOMM_WINETEST] Sync with Wine Staging 1.9.11. CORE-11368
Modified:
trunk/rostests/winetests/inetcomm/mimeole.c
Modified: trunk/rostests/winetests/inetcomm/mimeole.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/inetcomm/mimeol…
==============================================================================
--- trunk/rostests/winetests/inetcomm/mimeole.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/inetcomm/mimeole.c [iso-8859-1] Sun Jun 5 19:24:01 2016
@@ -332,6 +332,158 @@
IStream_Release(stream);
}
+static void test_MessageSetProp(void)
+{
+ static const char topic[] = "wine topic";
+ HRESULT hr;
+ IMimeMessage *msg;
+ IMimeBody *body;
+ PROPVARIANT prop;
+
+ hr = MimeOleCreateMessage(NULL, &msg);
+ ok(hr == S_OK, "ret %08x\n", hr);
+
+ PropVariantInit(&prop);
+
+ hr = IMimeMessage_BindToObject(msg, HBODY_ROOT, &IID_IMimeBody,
(void**)&body);
+ ok(hr == S_OK, "ret %08x\n", hr);
+
+ hr = IMimeBody_SetProp(body, NULL, 0, &prop);
+ ok(hr == E_INVALIDARG, "ret %08x\n", hr);
+
+ hr = IMimeBody_SetProp(body, "Thread-Topic", 0, NULL);
+ ok(hr == E_INVALIDARG, "ret %08x\n", hr);
+
+ prop.vt = VT_LPSTR;
+ prop.u.pszVal = CoTaskMemAlloc(strlen(topic)+1);
+ strcpy(prop.u.pszVal, topic);
+ hr = IMimeBody_SetProp(body, "Thread-Topic", 0, &prop);
+ ok(hr == S_OK, "ret %08x\n", hr);
+ PropVariantClear(&prop);
+
+ hr = IMimeBody_GetProp(body, NULL, 0, &prop);
+ ok(hr == E_INVALIDARG, "ret %08x\n", hr);
+
+ hr = IMimeBody_GetProp(body, "Thread-Topic", 0, NULL);
+ ok(hr == E_INVALIDARG, "ret %08x\n", hr);
+
+ hr = IMimeBody_GetProp(body, "Wine-Topic", 0, &prop);
+ ok(hr == MIME_E_NOT_FOUND, "ret %08x\n", hr);
+
+ hr = IMimeBody_GetProp(body, "Thread-Topic", 0, &prop);
+ ok(hr == S_OK, "ret %08x\n", hr);
+ if(hr == S_OK)
+ {
+ ok(prop.vt == VT_LPSTR, "type %d\n", prop.vt);
+ ok(!strcmp(prop.u.pszVal, topic), "got %s\n", prop.u.pszVal);
+ PropVariantClear(&prop);
+ }
+
+ IMimeBody_Release(body);
+ IMimeMessage_Release(msg);
+}
+
+static void test_MessageOptions(void)
+{
+ static const char string[] = "XXXXX";
+ static const char zero[] = "0";
+ HRESULT hr;
+ IMimeMessage *msg;
+ PROPVARIANT prop;
+
+ hr = MimeOleCreateMessage(NULL, &msg);
+ ok(hr == S_OK, "ret %08x\n", hr);
+
+ PropVariantInit(&prop);
+
+ prop.vt = VT_BOOL;
+ prop.u.boolVal = TRUE;
+ hr = IMimeMessage_SetOption(msg, OID_HIDE_TNEF_ATTACHMENTS, &prop);
+ ok(hr == S_OK, "ret %08x\n", hr);
+ PropVariantClear(&prop);
+
+ hr = IMimeMessage_GetOption(msg, OID_HIDE_TNEF_ATTACHMENTS, &prop);
+ todo_wine ok(hr == S_OK, "ret %08x\n", hr);
+ todo_wine ok(prop.vt == VT_BOOL, "vt %08x\n", prop.vt);
+ todo_wine ok(prop.u.boolVal == TRUE, "Hide Attachments got %d\n",
prop.u.boolVal);
+ PropVariantClear(&prop);
+
+ prop.vt = VT_LPSTR;
+ prop.u.pszVal = CoTaskMemAlloc(strlen(string)+1);
+ strcpy(prop.u.pszVal, string);
+ hr = IMimeMessage_SetOption(msg, OID_HIDE_TNEF_ATTACHMENTS, &prop);
+ ok(hr == S_OK, "ret %08x\n", hr);
+ PropVariantClear(&prop);
+
+ hr = IMimeMessage_GetOption(msg, OID_HIDE_TNEF_ATTACHMENTS, &prop);
+ todo_wine ok(hr == S_OK, "ret %08x\n", hr);
+ todo_wine ok(prop.vt == VT_BOOL, "vt %08x\n", prop.vt);
+ todo_wine ok(prop.u.boolVal == TRUE, "Hide Attachments got %d\n",
prop.u.boolVal);
+ PropVariantClear(&prop);
+
+ /* Invalid property type doesn't change the value */
+ prop.vt = VT_LPSTR;
+ prop.u.pszVal = CoTaskMemAlloc(strlen(zero)+1);
+ strcpy(prop.u.pszVal, zero);
+ hr = IMimeMessage_SetOption(msg, OID_HIDE_TNEF_ATTACHMENTS, &prop);
+ ok(hr == S_OK, "ret %08x\n", hr);
+ PropVariantClear(&prop);
+
+ hr = IMimeMessage_GetOption(msg, OID_HIDE_TNEF_ATTACHMENTS, &prop);
+ todo_wine ok(hr == S_OK, "ret %08x\n", hr);
+ todo_wine ok(prop.vt == VT_BOOL, "vt %08x\n", prop.vt);
+ todo_wine ok(prop.u.boolVal == TRUE, "Hide Attachments got %d\n",
prop.u.boolVal);
+ PropVariantClear(&prop);
+
+ /* Invalid OID */
+ prop.vt = VT_BOOL;
+ prop.u.boolVal = TRUE;
+ hr = IMimeMessage_SetOption(msg, 0xff00000a, &prop);
+ ok(hr == MIME_E_INVALID_OPTION_ID, "ret %08x\n", hr);
+ PropVariantClear(&prop);
+
+ /* Out of range before type. */
+ prop.vt = VT_I4;
+ prop.u.lVal = 1;
+ hr = IMimeMessage_SetOption(msg, 0xff00000a, &prop);
+ ok(hr == MIME_E_INVALID_OPTION_ID, "ret %08x\n", hr);
+ PropVariantClear(&prop);
+
+ IMimeMessage_Release(msg);
+}
+
+static void test_BindToObject(void)
+{
+ HRESULT hr;
+ IMimeMessage *msg;
+ IMimeBody *body;
+ ULONG count;
+
+ hr = MimeOleCreateMessage(NULL, &msg);
+ ok(hr == S_OK, "ret %08x\n", hr);
+
+ hr = IMimeMessage_CountBodies(msg, HBODY_ROOT, TRUE, &count);
+ ok(hr == S_OK, "ret %08x\n", hr);
+ ok(count == 1, "got %d\n", count);
+
+ hr = IMimeMessage_BindToObject(msg, HBODY_ROOT, &IID_IMimeBody,
(void**)&body);
+ ok(hr == S_OK, "ret %08x\n", hr);
+ IMimeBody_Release(body);
+
+ IMimeMessage_Release(msg);
+}
+
+static void test_MimeOleGetPropertySchema(void)
+{
+ HRESULT hr;
+ IMimePropertySchema *schema = NULL;
+
+ hr = MimeOleGetPropertySchema(&schema);
+ ok(hr == S_OK, "ret %08x\n", hr);
+
+ IMimePropertySchema_Release(schema);
+}
+
START_TEST(mimeole)
{
OleInitialize(NULL);
@@ -340,5 +492,9 @@
test_CreateBody();
test_Allocator();
test_CreateMessage();
+ test_MessageSetProp();
+ test_MessageOptions();
+ test_BindToObject();
+ test_MimeOleGetPropertySchema();
OleUninitialize();
}