From 9ed6b36924bd91b046f3df62512d6b8369b917d0 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 29 Jul 2019 09:09:41 +1000
Subject: [PATCH] directmanipulation/tests: Initial tests

---
 configure                                    |  1 +
 configure.ac                                 |  1 +
 dlls/directmanipulation/tests/Makefile.in    |  5 ++
 dlls/directmanipulation/tests/manipulation.c | 60 ++++++++++++++++++++
 4 files changed, 67 insertions(+)
 create mode 100644 dlls/directmanipulation/tests/Makefile.in
 create mode 100644 dlls/directmanipulation/tests/manipulation.c

diff --git a/configure b/configure
index bc376a6686..d23b90c6a4 100755
--- a/configure
+++ b/configure
@@ -20164,6 +20164,7 @@ wine_fn_config_makefile dlls/dinput/tests enable_tests
 wine_fn_config_makefile dlls/dinput8 enable_dinput8
 wine_fn_config_makefile dlls/dinput8/tests enable_tests
 wine_fn_config_makefile dlls/directmanipulation enable_directmanipulation
+wine_fn_config_makefile dlls/directmanipulation/tests enable_tests
 wine_fn_config_makefile dlls/dispdib.dll16 enable_win16
 wine_fn_config_makefile dlls/dispex enable_dispex
 wine_fn_config_makefile dlls/dispex/tests enable_tests
diff --git a/configure.ac b/configure.ac
index 51519fdd9b..6d8562da0d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3149,6 +3149,7 @@ WINE_CONFIG_MAKEFILE(dlls/dinput/tests)
 WINE_CONFIG_MAKEFILE(dlls/dinput8)
 WINE_CONFIG_MAKEFILE(dlls/dinput8/tests)
 WINE_CONFIG_MAKEFILE(dlls/directmanipulation)
+WINE_CONFIG_MAKEFILE(dlls/directmanipulation/tests)
 WINE_CONFIG_MAKEFILE(dlls/dispdib.dll16,enable_win16)
 WINE_CONFIG_MAKEFILE(dlls/dispex)
 WINE_CONFIG_MAKEFILE(dlls/dispex/tests)
diff --git a/dlls/directmanipulation/tests/Makefile.in b/dlls/directmanipulation/tests/Makefile.in
new file mode 100644
index 0000000000..29ec0db511
--- /dev/null
+++ b/dlls/directmanipulation/tests/Makefile.in
@@ -0,0 +1,5 @@
+TESTDLL   = directmanipulation.dll
+IMPORTS   = uuid ole32
+
+C_SRCS = \
+	manipulation.c
diff --git a/dlls/directmanipulation/tests/manipulation.c b/dlls/directmanipulation/tests/manipulation.c
new file mode 100644
index 0000000000..9ecc3d54be
--- /dev/null
+++ b/dlls/directmanipulation/tests/manipulation.c
@@ -0,0 +1,60 @@
+/* 
+ *
+ * Copyright 2019 Alistair Leslie-Hughes
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ *
+ */
+#define COBJMACROS
+
+#include <stdarg.h>
+
+#include "windows.h"
+#include "directmanipulation.h"
+
+#include "wine/test.h"
+
+static void test_IDirectManipulationManager2(void)
+{
+    IDirectManipulationManager2 *manager2;
+    IDirectManipulationUpdateManager *update;
+    HRESULT hres;
+
+    hres = CoCreateInstance(&CLSID_DirectManipulationManager, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER,
+            &IID_IDirectManipulationManager2, (void**)&manager2);
+    if(FAILED(hres))
+    {
+        win_skip("Failed to create XMLView instance\n");
+        return;
+    }
+    ok(hres == S_OK, "CoCreateInstance returned %x, expected S_OK\n", hres);
+
+    hres = IDirectManipulationManager2_GetUpdateManager(manager2, &IID_IDirectManipulationUpdateManager, (void**)&update);
+    ok(hres == S_OK, "returned %x, expected S_OK\n", hres);
+
+    if(update)
+        IDirectManipulationUpdateManager_Release(update);
+
+    IDirectManipulationManager2_Release(manager2);
+}
+
+START_TEST(manipulation)
+{
+    CoInitialize(NULL);
+
+    test_IDirectManipulationManager2();
+
+    CoUninitialize();
+}
-- 
2.17.1