gdiplus: Some tests for LinearGradientBrush.

This commit is contained in:
Nikolay Sivov 2009-02-09 16:58:59 +03:00 committed by Alexandre Julliard
parent 17db41c349
commit 8496db4976
1 changed files with 62 additions and 0 deletions

View File

@ -283,6 +283,67 @@ static void test_texturewrap(void)
ReleaseDC(0, hdc);
}
static void test_gradientgetrect(void)
{
GpLineGradient *brush;
GpRectF rectf;
GpStatus status;
GpPointF pt1, pt2;
pt1.X = pt1.Y = 1.0;
pt2.X = pt2.Y = 100.0;
status = GdipCreateLineBrush(&pt1, &pt2, 0, 0, WrapModeTile, &brush);
expect(Ok, status);
memset(&rectf, 0, sizeof(GpRectF));
status = GdipGetLineRect(brush, &rectf);
expect(Ok, status);
expectf(1.0, rectf.X);
expectf(1.0, rectf.Y);
expectf(99.0, rectf.Width);
expectf(99.0, rectf.Height);
status = GdipDeleteBrush((GpBrush*)brush);
/* vertical gradient */
pt1.X = pt1.Y = pt2.X = 0.0;
pt2.Y = 10.0;
status = GdipCreateLineBrush(&pt1, &pt2, 0, 0, WrapModeTile, &brush);
expect(Ok, status);
memset(&rectf, 0, sizeof(GpRectF));
status = GdipGetLineRect(brush, &rectf);
expect(Ok, status);
todo_wine expectf(-5.0, rectf.X);
expectf(0.0, rectf.Y);
todo_wine expectf(10.0, rectf.Width);
expectf(10.0, rectf.Height);
status = GdipDeleteBrush((GpBrush*)brush);
/* horizontal gradient */
pt1.X = pt1.Y = pt2.Y = 0.0;
pt2.X = 10.0;
status = GdipCreateLineBrush(&pt1, &pt2, 0, 0, WrapModeTile, &brush);
expect(Ok, status);
memset(&rectf, 0, sizeof(GpRectF));
status = GdipGetLineRect(brush, &rectf);
expect(Ok, status);
expectf(0.0, rectf.X);
todo_wine expectf(-5.0, rectf.Y);
expectf(10.0, rectf.Width);
todo_wine expectf(10.0, rectf.Height);
status = GdipDeleteBrush((GpBrush*)brush);
/* from rect with LinearGradientModeHorizontal */
rectf.X = rectf.Y = 10.0;
rectf.Width = rectf.Height = 100.0;
status = GdipCreateLineBrushFromRect(&rectf, 0, 0, LinearGradientModeHorizontal,
WrapModeTile, &brush);
expect(Ok, status);
memset(&rectf, 0, sizeof(GpRectF));
status = GdipGetLineRect(brush, &rectf);
expect(Ok, status);
expectf(10.0, rectf.X);
expectf(10.0, rectf.Y);
expectf(100.0, rectf.Width);
expectf(100.0, rectf.Height);
status = GdipDeleteBrush((GpBrush*)brush);
}
START_TEST(brush)
{
struct GdiplusStartupInput gdiplusStartupInput;
@ -303,6 +364,7 @@ START_TEST(brush)
test_getgamma();
test_transform();
test_texturewrap();
test_gradientgetrect();
GdiplusShutdown(gdiplusToken);
}