Module: wine Branch: master Commit: 4e14c45b8b1b4104b4ed21da95952f117f83988a URL: http://source.winehq.org/git/wine.git/?a=commit;h=4e14c45b8b1b4104b4ed21da95... Author: Dmitry Timoshkov <dmitry(a)baikal.ru> Date: Thu Oct 17 10:08:53 2013 +0900 gdiplus/tests: Add a test for GdipCloneBitmapArea called on an already locked bitmap. --- dlls/gdiplus/tests/image.c | 28 ++++++++++++++++++++++++++++ 1 files changed, 28 insertions(+), 0 deletions(-) diff --git a/dlls/gdiplus/tests/image.c b/dlls/gdiplus/tests/image.c index 9f5730e..650d12f 100644 --- a/dlls/gdiplus/tests/image.c +++ b/dlls/gdiplus/tests/image.c @@ -4240,6 +4240,33 @@ static void test_ARGB_conversion(void) GdipDisposeImage((GpImage *)bitmap); } + +static void test_CloneBitmapArea(void) +{ + GpStatus status; + GpBitmap *bitmap, *copy; + BitmapData data, data2; + + status = GdipCreateBitmapFromScan0(1, 1, 0, PixelFormat24bppRGB, NULL, &bitmap); + expect(Ok, status); + + status = GdipBitmapLockBits(bitmap, NULL, ImageLockModeRead | ImageLockModeWrite, PixelFormat24bppRGB, &data); + expect(Ok, status); + + status = GdipBitmapLockBits(bitmap, NULL, ImageLockModeRead, PixelFormat24bppRGB, &data2); + expect(WrongState, status); + + status = GdipCloneBitmapAreaI(0, 0, 1, 1, PixelFormat24bppRGB, bitmap, ©); +todo_wine + expect(Ok, status); + + status = GdipBitmapUnlockBits(bitmap, &data); + expect(Ok, status); + + GdipDisposeImage((GpImage *)copy); + GdipDisposeImage((GpImage *)bitmap); +} + START_TEST(image) { struct GdiplusStartupInput gdiplusStartupInput; @@ -4252,6 +4279,7 @@ START_TEST(image) GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); + test_CloneBitmapArea(); test_ARGB_conversion(); test_DrawImage_scale(); test_image_format();