Nikolay Sivov : ole32/tests: Add some tests for class moniker composition.

Alexandre Julliard julliard at winehq.org
Fri Sep 24 15:32:00 CDT 2021


Module: wine
Branch: master
Commit: 25061d23b042b8b5048cc47949c6a42beb7f57c6
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=25061d23b042b8b5048cc47949c6a42beb7f57c6

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Fri Sep 24 15:51:45 2021 +0300

ole32/tests: Add some tests for class moniker composition.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ole32/tests/moniker.c | 26 ++++++++++++++++++++++++--
 1 file changed, 24 insertions(+), 2 deletions(-)

diff --git a/dlls/ole32/tests/moniker.c b/dlls/ole32/tests/moniker.c
index 6b21a2e732e..ae46db110b6 100644
--- a/dlls/ole32/tests/moniker.c
+++ b/dlls/ole32/tests/moniker.c
@@ -1830,7 +1830,7 @@ static void test_class_moniker(void)
         { L"clsid:{11111111-0000-0000-2222-444444444444", 0, MK_E_SYNTAX },
         { L"clsid:11111111-0000-0000-2222-444444444444}", 43 },
     };
-    IMoniker *moniker, *moniker2, *inverse, *reduced, *anti;
+    IMoniker *moniker, *moniker2, *inverse, *reduced, *anti, *c;
     IEnumMoniker *enummoniker;
     ULONG length, eaten;
     ULARGE_INTEGER size;
@@ -2036,13 +2036,35 @@ todo_wine
     ok(!moniker2, "Unexpected pointer.\n");
     IMoniker_Release(anti);
 
-    /* C + A2 -> A */
+    /* C + A2 -> () */
     anti = create_antimoniker(2);
     hr = IMoniker_ComposeWith(moniker, anti, TRUE, &moniker2);
     ok(hr == S_OK, "Failed to compose, hr %#x.\n", hr);
     ok(!moniker2, "Unexpected pointer.\n");
     IMoniker_Release(anti);
 
+    /* C + (A,I) -> I */
+    hr = create_moniker_from_desc("CA1I1", &c);
+    ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+    hr = IMoniker_ComposeWith(moniker, c, TRUE, &moniker2);
+    ok(hr == MK_E_NEEDGENERIC, "Unexpected hr %#x.\n", hr);
+    hr = IMoniker_ComposeWith(moniker, c, FALSE, &moniker2);
+    ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+    TEST_MONIKER_TYPE(moniker2, MKSYS_ITEMMONIKER);
+    IMoniker_Release(moniker2);
+    IMoniker_Release(c);
+
+    /* C + (A2,I) -> I */
+    hr = create_moniker_from_desc("CA1I1", &c);
+    ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+    hr = IMoniker_ComposeWith(moniker, c, TRUE, &moniker2);
+    ok(hr == MK_E_NEEDGENERIC, "Unexpected hr %#x.\n", hr);
+    hr = IMoniker_ComposeWith(moniker, c, FALSE, &moniker2);
+    ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+    TEST_MONIKER_TYPE(moniker2, MKSYS_ITEMMONIKER);
+    IMoniker_Release(moniker2);
+    IMoniker_Release(c);
+
     IMoniker_Release(moniker);
 }
 




More information about the wine-cvs mailing list