Module: wine Branch: master Commit: ff5076c0082d090133be8c8fa1a4bee66e6b9ed8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ff5076c0082d090133be8c8fa1...
Author: Evan Stade estade@gmail.com Date: Mon Jul 30 19:09:08 2007 -0700
gdi32: Added more tests for ExtCreatePen on PS_USERSTLYE.
---
dlls/gdi32/tests/pen.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 75 insertions(+), 0 deletions(-)
diff --git a/dlls/gdi32/tests/pen.c b/dlls/gdi32/tests/pen.c index 77073f1..0de3f0d 100644 --- a/dlls/gdi32/tests/pen.c +++ b/dlls/gdi32/tests/pen.c @@ -482,8 +482,83 @@ static void test_ps_alternate(void) DeleteDC(hdc); }
+static void test_ps_userstyle(void) +{ + static DWORD style[17] = {0, 2, 0, 4, 5, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 17}; + static DWORD bad_style[5] = {0, 0, 0, 0, 0}; + static DWORD bad_style2[5] = {4, 7, 8, 3, -1}; + + LOGBRUSH lb; + HPEN pen; + INT size, i; + + struct + { + EXTLOGPEN elp; + DWORD style_data[15]; + } ext_pen; + + lb.lbColor = 0x00ff0000; + lb.lbStyle = BS_SOLID; + lb.lbHatch = 0; + + pen = ExtCreatePen(PS_GEOMETRIC | PS_USERSTYLE, 50, &lb, 3, NULL); + ok(pen == 0, "ExtCreatePen should fail\n"); + expect(ERROR_INVALID_PARAMETER, GetLastError()); + DeleteObject(pen); + SetLastError(0xdeadbeef); + + pen = ExtCreatePen(PS_GEOMETRIC | PS_USERSTYLE, 50, &lb, 0, style); + ok(pen == 0, "ExtCreatePen should fail\n"); + todo_wine + expect(0xdeadbeef, GetLastError()); + DeleteObject(pen); + SetLastError(0xdeadbeef); + + pen = ExtCreatePen(PS_GEOMETRIC | PS_USERSTYLE, 50, &lb, 17, style); + ok(pen == 0, "ExtCreatePen should fail\n"); + expect(ERROR_INVALID_PARAMETER, GetLastError()); + DeleteObject(pen); + SetLastError(0xdeadbeef); + + pen = ExtCreatePen(PS_GEOMETRIC | PS_USERSTYLE, 50, &lb, -1, style); + ok(pen == 0, "ExtCreatePen should fail\n"); + todo_wine + expect(0xdeadbeef, GetLastError()); + DeleteObject(pen); + SetLastError(0xdeadbeef); + + pen = ExtCreatePen(PS_GEOMETRIC | PS_USERSTYLE, 50, &lb, 5, bad_style); + todo_wine + ok(pen == 0, "ExtCreatePen should fail\n"); + todo_wine + expect(ERROR_INVALID_PARAMETER, GetLastError()); + DeleteObject(pen); + SetLastError(0xdeadbeef); + + pen = ExtCreatePen(PS_GEOMETRIC | PS_USERSTYLE, 50, &lb, 5, bad_style2); + todo_wine + ok(pen == 0, "ExtCreatePen should fail\n"); + todo_wine + expect(ERROR_INVALID_PARAMETER, GetLastError()); + DeleteObject(pen); + SetLastError(0xdeadbeef); + + pen = ExtCreatePen(PS_GEOMETRIC | PS_USERSTYLE, 50, &lb, 16, style); + ok(pen != 0, "ExtCreatePen should not fail\n"); + + size = GetObject(pen, sizeof(ext_pen), &ext_pen); + expect(88, size); + + for(i = 0; i < 16; i++) + expect(style[i], ext_pen.elp.elpStyleEntry[i]); + + DeleteObject(pen); +} + START_TEST(pen) { test_logpen(); test_ps_alternate(); + test_ps_userstyle(); }