Alistair Leslie-Hughes : gdi32/tests: Add tests for GetPath using metafile.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Feb 23 11:24:21 CST 2016
Module: wine
Branch: master
Commit: bd571e7d1d9749195941988a7c267eed7260e28d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bd571e7d1d9749195941988a7c267eed7260e28d
Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Tue Feb 23 18:16:49 2016 +1100
gdi32/tests: Add tests for GetPath using metafile.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/gdi32/tests/metafile.c | 57 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 57 insertions(+)
diff --git a/dlls/gdi32/tests/metafile.c b/dlls/gdi32/tests/metafile.c
index f464720..a90c533 100644
--- a/dlls/gdi32/tests/metafile.c
+++ b/dlls/gdi32/tests/metafile.c
@@ -2661,6 +2661,62 @@ static void test_mf_clipping(void)
DestroyWindow(hwnd);
}
+static const unsigned char MF_PATH_BITS[] =
+{
+ 0x01, 0x00, 0x09, 0x00, 0x00, 0x03, 0x2c, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x02,
+ 0x32, 0x00, 0x32, 0x00, 0x05, 0x00, 0x00, 0x00,
+ 0x13, 0x02, 0x96, 0x00, 0x32, 0x00, 0x05, 0x00,
+ 0x00, 0x00, 0x13, 0x02, 0x96, 0x00, 0x96, 0x00,
+ 0x05, 0x00, 0x00, 0x00, 0x13, 0x02, 0x32, 0x00,
+ 0x96, 0x00, 0x05, 0x00, 0x00, 0x00, 0x13, 0x02,
+ 0x32, 0x00, 0x32, 0x00, 0x07, 0x00, 0x00, 0x00,
+ 0x1b, 0x04, 0x14, 0x00, 0x14, 0x00, 0x0a, 0x00,
+ 0x0a, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static void test_mf_GetPath(void)
+{
+ HDC hdc;
+ HMETAFILE hmf;
+ BOOL ret;
+ int size;
+
+ SetLastError(0xdeadbeef);
+ hdc = CreateMetaFileA(NULL);
+ ok(hdc != 0, "CreateMetaFileA error %d\n", GetLastError());
+
+ BeginPath(hdc);
+ ret = MoveToEx(hdc, 50, 50, NULL);
+ ok( ret, "MoveToEx error %d.\n", GetLastError());
+ ret = LineTo(hdc, 50, 150);
+ ok( ret, "LineTo error %d.\n", GetLastError());
+ ret = LineTo(hdc, 150, 150);
+ ok( ret, "LineTo error %d.\n", GetLastError());
+ ret = LineTo(hdc, 150, 50);
+ ok( ret, "LineTo error %d.\n", GetLastError());
+ ret = LineTo(hdc, 50, 50);
+ ok( ret, "LineTo error %d.\n", GetLastError());
+ Rectangle(hdc, 10, 10, 20, 20);
+ EndPath(hdc);
+
+ size = GetPath(hdc, NULL, NULL, 0);
+ ok( size == -1, "GetPath returned %d.\n", size);
+
+ hmf = CloseMetaFile(hdc);
+ ok(hmf != 0, "CloseMetaFile error %d\n", GetLastError());
+
+ if (compare_mf_bits (hmf, MF_PATH_BITS, sizeof(MF_PATH_BITS), "mf_GetPath") != 0)
+ {
+ dump_mf_bits(hmf, "mf_GetPath");
+ EnumMetaFile(0, hmf, mf_enum_proc, 0);
+ }
+
+ ret = DeleteMetaFile(hmf);
+ ok( ret, "DeleteMetaFile error %d\n", GetLastError());
+}
+
static INT CALLBACK EmfEnumProc(HDC hdc, HANDLETABLE *lpHTable, const ENHMETARECORD *lpEMFR, INT nObj, LPARAM lpData)
{
LPMETAFILEPICT lpMFP = (LPMETAFILEPICT)lpData;
@@ -3461,6 +3517,7 @@ START_TEST(metafile)
test_SetMetaFileBits();
test_mf_ExtTextOut_on_path();
test_mf_clipping();
+ test_mf_GetPath();
/* For metafile conversions */
test_mf_conversions();
More information about the wine-cvs
mailing list