1 /* 2 * PROJECT: ReactOS api tests 3 * LICENSE: GPL - See COPYING in the top level directory 4 * PURPOSE: Test for Rectangle 5 * PROGRAMMERS: J�r�me Gardou 6 */ 7 8 #include "precomp.h" 9 10 void Test_Rectangle(void) 11 { 12 HDC hdc; 13 HBITMAP hBmp; 14 BOOL ret; 15 HBRUSH hBrush; 16 HPEN hPen; 17 COLORREF color; 18 19 hdc = CreateCompatibleDC(NULL); 20 ok(hdc != NULL, "Failed to create the DC!\n"); 21 hBmp = CreateCompatibleBitmap(hdc, 4, 4); 22 ok(hBmp != NULL, "Failed to create the Bitmap!\n"); 23 hBmp = SelectObject(hdc, hBmp); 24 ok(hBmp != NULL, "Failed to select the Bitmap!\n"); 25 26 hBrush = CreateSolidBrush(RGB(0, 0, 0)); 27 ok(hBrush != NULL, "Failed to create a solid brush!\n"); 28 hBrush = SelectObject(hdc, hBrush); 29 ok(hBrush != NULL, "Failed to select the brush!\n"); 30 31 /* Blank the bitmap */ 32 ret = BitBlt(hdc, 0, 0, 4, 4, NULL, 0, 0, WHITENESS); 33 ok(ret, "BitBlt failed to blank the bitmap!\n"); 34 35 /* Try inverted rectangle coordinates */ 36 ret = Rectangle(hdc, 0, 2, 2, 0); 37 ok(ret, "Rectangle failed!"); 38 color = GetPixel(hdc, 0, 0); 39 ok( color == RGB(0, 0, 0), "Expected 0, got 0x%08x\n", (UINT)color); 40 color = GetPixel(hdc, 2, 2); 41 ok( color == RGB(255, 255, 255), "Expected 0x00FFFFFF, got 0x%08x\n", (UINT)color); 42 color = GetPixel(hdc, 0, 2); 43 ok( color == RGB(255, 255, 255), "Expected 0x00FFFFFF, got 0x%08x\n", (UINT)color); 44 color = GetPixel(hdc, 2, 0); 45 ok( color == RGB(255, 255, 255), "Expected 0x00FFFFFF, got 0x%08x\n", (UINT)color); 46 color = GetPixel(hdc, 1, 1); 47 ok( color == RGB(0, 0, 0), "Expected 0, got 0x%08x\n", (UINT)color); 48 49 ret = BitBlt(hdc, 0, 0, 4, 4, NULL, 0, 0, WHITENESS); 50 ok(ret, "BitBlt failed to blank the bitmap!\n"); 51 /* Try well ordered rectangle coordinates */ 52 ret = Rectangle(hdc, 0, 0, 2, 2); 53 ok(ret, "Rectangle failed!"); 54 color = GetPixel(hdc, 0, 0); 55 ok( color == RGB(0, 0, 0), "Expected 0, got 0x%08x\n", (UINT)color); 56 color = GetPixel(hdc, 2, 2); 57 ok( color == RGB(255, 255, 255), "Expected 0x00FFFFFF, got 0x%08x\n", (UINT)color); 58 color = GetPixel(hdc, 0, 2); 59 ok( color == RGB(255, 255, 255), "Expected 0x00FFFFFF, got 0x%08x\n", (UINT)color); 60 color = GetPixel(hdc, 2, 0); 61 ok( color == RGB(255, 255, 255), "Expected 0x00FFFFFF, got 0x%08x\n", (UINT)color); 62 color = GetPixel(hdc, 1, 1); 63 ok( color == RGB(0, 0, 0), "Expected 0, got 0x%08x\n", (UINT)color); 64 65 /* tests with NULL pen */ 66 hPen = SelectObject(hdc, GetStockObject(NULL_PEN)); 67 68 /* Blank the bitmap */ 69 ret = BitBlt(hdc, 0, 0, 4, 4, NULL, 0, 0, WHITENESS); 70 ok(ret, "BitBlt failed to blank the bitmap!\n"); 71 72 ret = Rectangle(hdc, 0, 0, 3, 3); 73 ok(ret, "Rectangle failed!"); 74 color = GetPixel(hdc, 0, 0); 75 ok( color == RGB(0, 0, 0), "Expected 0, got 0x%08x\n", (UINT)color); 76 color = GetPixel(hdc, 2, 2); 77 ok( color == RGB(255, 255, 255), "Expected 0x00FFFFFF, got 0x%08x\n", (UINT)color); 78 color = GetPixel(hdc, 0, 2); 79 ok( color == RGB(255, 255, 255), "Expected 0x00FFFFFF, got 0x%08x\n", (UINT)color); 80 color = GetPixel(hdc, 2, 0); 81 ok( color == RGB(255, 255, 255), "Expected 0x00FFFFFF, got 0x%08x\n", (UINT)color); 82 color = GetPixel(hdc, 1, 1); 83 ok( color == RGB(0, 0, 0), "Expected 0, got 0x%08x\n", (UINT)color); 84 85 SelectObject(hdc, hPen); 86 87 /* Same tests with GM_ADVANCED */ 88 ok(SetGraphicsMode(hdc, GM_ADVANCED) == GM_COMPATIBLE, "Default mode for the DC is not GM_COMPATIBLE.\n"); 89 90 /* Blank the bitmap */ 91 ret = BitBlt(hdc, 0, 0, 4, 4, NULL, 0, 0, WHITENESS); 92 ok(ret, "BitBlt failed to blank the bitmap!\n"); 93 94 /* Try inverted rectangle coordinates */ 95 ret = Rectangle(hdc, 0, 2, 2, 0); 96 ok(ret, "Rectangle failed!"); 97 color = GetPixel(hdc, 0, 0); 98 ok( color == RGB(0, 0, 0), "Expected 0, got 0x%08x\n", (UINT)color); 99 color = GetPixel(hdc, 2, 2); 100 ok( color == RGB(0, 0, 0), "Expected 0, got 0x%08x\n", (UINT)color); 101 color = GetPixel(hdc, 0, 2); 102 ok( color == RGB(0, 0, 0), "Expected 0, got 0x%08x\n", (UINT)color); 103 color = GetPixel(hdc, 2, 0); 104 ok( color == RGB(0, 0, 0), "Expected 0, got 0x%08x\n", (UINT)color); 105 color = GetPixel(hdc, 1, 1); 106 ok( color == RGB(0, 0, 0), "Expected 0, got 0x%08x\n", (UINT)color); 107 108 ret = BitBlt(hdc, 0, 0, 4, 4, NULL, 0, 0, WHITENESS); 109 ok(ret, "BitBlt failed to blank the bitmap!\n"); 110 /* Try well ordered rectangle coordinates */ 111 ret = Rectangle(hdc, 0, 0, 2, 2); 112 ok(ret, "Rectangle failed!"); 113 color = GetPixel(hdc, 0, 0); 114 ok( color == RGB(0, 0, 0), "Expected 0, got 0x%08x\n", (UINT)color); 115 color = GetPixel(hdc, 2, 2); 116 ok( color == RGB(0, 0, 0), "Expected 0, got 0x%08x\n", (UINT)color); 117 color = GetPixel(hdc, 0, 2); 118 ok( color == RGB(0, 0, 0), "Expected 0, got 0x%08x\n", (UINT)color); 119 color = GetPixel(hdc, 2, 0); 120 ok( color == RGB(0, 0, 0), "Expected 0, got 0x%08x\n", (UINT)color); 121 color = GetPixel(hdc, 1, 1); 122 ok( color == RGB(0, 0, 0), "Expected 0, got 0x%08x\n", (UINT)color); 123 124 125 hBmp = SelectObject(hdc, hBmp); 126 hBrush = SelectObject(hdc, hBrush); 127 DeleteObject(hBmp); 128 DeleteObject(hBrush); 129 DeleteDC(hdc); 130 } 131 132 133 START_TEST(Rectangle) 134 { 135 Test_Rectangle(); 136 } 137