comctl32/tests: Changed rebar layout tests to load data dynamically.

oldstable
Austin Lund 2010-11-11 09:12:53 +10:00 committed by Alexandre Julliard
parent c1f7b45751
commit cddcf039fc
1 changed files with 232 additions and 113 deletions

View File

@ -190,121 +190,238 @@ typedef struct {
RECT rcClient;
int cyBarHeight;
int nRows;
int cyRowHeights[50];
int *cyRowHeights;
int nBands;
rbband_result_t bands[50];
rbband_result_t *bands;
} rbsize_result_t;
static const rbsize_result_t rbsize_results[] = {
{ {0, 0, 672, 0}, 0, 0, {0, }, 0, {{{0, 0, 0, 0}, 0, 0},
}, },
{ {0, 0, 672, 4}, 4, 1, {4, }, 1, {
{ { 0, 0, 672, 4}, 0x00, 200},
}, },
{ {0, 0, 672, 4}, 4, 1, {4, }, 2, {
{ { 0, 0, 200, 4}, 0x00, 200}, { {200, 0, 672, 4}, 0x04, 200},
}, },
{ {0, 0, 672, 30}, 30, 1, {30, }, 3, {
{ { 0, 0, 200, 30}, 0x00, 200}, { {200, 0, 400, 30}, 0x04, 200},
{ {400, 0, 672, 30}, 0x00, 200},
}, },
{ {0, 0, 672, 34}, 34, 1, {34, }, 4, {
{ { 0, 0, 200, 34}, 0x00, 200}, { {200, 0, 400, 34}, 0x04, 200},
{ {400, 0, 604, 34}, 0x00, 200}, { {604, 0, 672, 34}, 0x04, 68},
}, },
{ {0, 0, 672, 34}, 34, 1, {34, }, 4, {
{ { 0, 0, 200, 34}, 0x00, 200}, { {200, 0, 400, 34}, 0x04, 200},
{ {400, 0, 604, 34}, 0x00, 200}, { {604, 0, 672, 34}, 0x04, 68},
}, },
{ {0, 0, 672, 34}, 34, 1, {34, }, 4, {
{ { 0, 0, 200, 34}, 0x00, 200}, { {202, 0, 402, 34}, 0x04, 200},
{ {404, 0, 604, 34}, 0x00, 200}, { {606, 0, 672, 34}, 0x04, 66},
}, },
{ {0, 0, 672, 70}, 70, 2, {34, 34, }, 5, {
{ { 0, 0, 142, 34}, 0x00, 200}, { {144, 0, 557, 34}, 0x00, 200},
{ {559, 0, 672, 34}, 0x04, 200}, { { 0, 36, 200, 70}, 0x00, 200},
{ {202, 36, 672, 70}, 0x04, 66},
}, },
{ {0, 0, 672, 34}, 34, 1, {34, }, 5, {
{ { 0, 0, 167, 34}, 0x00, 200}, { {169, 0, 582, 34}, 0x00, 200},
{ {559, 0, 759, 34}, 0x08, 200}, { {584, 0, 627, 34}, 0x00, 200},
{ {629, 0, 672, 34}, 0x04, 66},
}, },
{ {0, 0, 672, 34}, 34, 1, {34, }, 4, {
{ { 0, 0, 167, 34}, 0x00, 200}, { {169, 0, 582, 34}, 0x00, 200},
{ {584, 0, 627, 34}, 0x00, 200}, { {629, 0, 672, 34}, 0x04, 66},
}, },
{ {0, 0, 672, 34}, 34, 1, {34, }, 3, {
{ { 0, 0, 413, 34}, 0x00, 200}, { {415, 0, 615, 34}, 0x00, 200},
{ {617, 0, 672, 34}, 0x04, 66},
}, },
{ {0, 0, 672, 34}, 34, 1, {34, }, 2, {
{ { 0, 0, 604, 34}, 0x00, 200}, { {606, 0, 672, 34}, 0x04, 66},
}, },
{ {0, 0, 672, 40}, 40, 2, {20, 20, }, 5, {
{ { 0, 0, 114, 20}, 0x00, 40}, { {114, 0, 184, 20}, 0x00, 70},
{ {184, 0, 424, 20}, 0x00, 240}, { {424, 0, 672, 20}, 0x00, 60},
{ { 0, 20, 672, 40}, 0x00, 200},
}, },
{ {0, 0, 672, 40}, 40, 2, {20, 20, }, 5, {
{ { 0, 0, 114, 20}, 0x00, 40}, { {114, 0, 227, 20}, 0x00, 113},
{ {227, 0, 424, 20}, 0x00, 197}, { {424, 0, 672, 20}, 0x00, 60},
{ { 0, 20, 672, 40}, 0x00, 200},
}, },
{ {0, 0, 672, 40}, 40, 2, {20, 20, }, 5, {
{ { 0, 0, 114, 20}, 0x00, 40}, { {114, 0, 328, 20}, 0x00, 214},
{ {328, 0, 511, 20}, 0x00, 183}, { {511, 0, 672, 20}, 0x00, 161},
{ { 0, 20, 672, 40}, 0x00, 200},
}, },
{ {0, 0, 672, 40}, 40, 2, {20, 20, }, 5, {
{ { 0, 0, 114, 20}, 0x00, 40}, { {114, 0, 167, 20}, 0x00, 53},
{ {167, 0, 511, 20}, 0x00, 344}, { {511, 0, 672, 20}, 0x00, 161},
{ { 0, 20, 672, 40}, 0x00, 200},
}, },
{ {0, 0, 672, 40}, 40, 2, {20, 20, }, 5, {
{ { 0, 0, 114, 20}, 0x00, 40}, { {114, 0, 328, 20}, 0x00, 214},
{ {328, 0, 511, 20}, 0x00, 183}, { {511, 0, 672, 20}, 0x00, 161},
{ { 0, 20, 672, 40}, 0x00, 200},
}, },
{ {0, 0, 672, 40}, 40, 2, {20, 20, }, 5, {
{ { 0, 0, 114, 20}, 0x00, 40}, { {114, 0, 328, 20}, 0x00, 214},
{ {328, 0, 511, 20}, 0x00, 183}, { {511, 0, 672, 20}, 0x00, 161},
{ { 0, 20, 672, 40}, 0x00, 200},
}, },
{ {0, 0, 672, 56}, 56, 2, {28, 28, }, 5, {
{ { 0, 0, 114, 28}, 0x00, 40}, { {114, 0, 328, 28}, 0x00, 214},
{ {328, 0, 511, 28}, 0x00, 183}, { {511, 0, 672, 28}, 0x00, 161},
{ { 0, 28, 672, 56}, 0x00, 200},
}, },
{ {0, 0, 672, 40}, 40, 2, {20, 20, }, 5, {
{ { 0, 0, 114, 20}, 0x00, 40}, { {114, 0, 328, 20}, 0x00, 214},
{ {328, 0, 511, 20}, 0x00, 183}, { {511, 0, 672, 20}, 0x00, 161},
{ { 0, 20, 672, 40}, 0x00, 200},
}, },
{ {0, 0, 672, 56}, 56, 2, {28, 28, }, 5, {
{ { 0, 0, 114, 28}, 0x00, 40}, { {114, 0, 328, 28}, 0x00, 214},
{ {328, 0, 511, 28}, 0x00, 183}, { {511, 0, 672, 28}, 0x00, 161},
{ { 0, 28, 672, 56}, 0x00, 200},
}, },
{ {0, 0, 672, 0}, 0, 0, {0, }, 0, {{{0, 0, 0, 0}, 0, 0},
}, },
{ {0, 0, 672, 65}, 65, 1, {65, }, 3, {
{ { 0, 0, 90, 65}, 0x40, 90}, { { 90, 0, 180, 65}, 0x40, 90},
{ {180, 0, 672, 65}, 0x40, 90},
}, },
{ {0, 0, 0, 226}, 0, 0, {0, }, 0, {{{0, 0, 0, 0}, 0, 0},
}, },
{ {0, 0, 65, 226}, 65, 1, {65, }, 1, {
{ { 0, 0, 226, 65}, 0x40, 90},
}, },
{ {0, 0, 65, 226}, 65, 1, {65, }, 2, {
{ { 0, 0, 90, 65}, 0x40, 90}, { { 90, 0, 226, 65}, 0x40, 90},
}, },
{ {0, 0, 65, 226}, 65, 1, {65, }, 3, {
{ { 0, 0, 90, 65}, 0x40, 90}, { { 90, 0, 163, 65}, 0x40, 90},
{ {163, 0, 226, 65}, 0x40, 90},
}, },
};
static rbsize_result_t rbsize_init(int cleft, int ctop, int cright, int cbottom, int cyBarHeight, int nRows, int nBands)
{
rbsize_result_t *temp;
temp = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(rbsize_result_t));
SetRect(&temp->rcClient, cleft, ctop, cright, cbottom);
temp->cyBarHeight = cyBarHeight;
temp->nRows = 0;
temp->cyRowHeights = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, nRows*sizeof(int));
temp->nBands = 0;
temp->bands = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, nBands*sizeof(rbband_result_t));
return *temp;
}
static void rbsize_add_row(rbsize_result_t *rbsr, int rowHeight) {
rbsr->cyRowHeights[rbsr->nRows] = rowHeight;
rbsr->nRows++;
}
static void rbsize_add_band(rbsize_result_t *rbsr, int left, int top, int right, int bottom, DWORD fStyle, INT cx)
{
SetRect(&(rbsr->bands[rbsr->nBands].rc), left, top, right, bottom);
rbsr->bands[rbsr->nBands].fStyle = fStyle;
rbsr->bands[rbsr->nBands].cx = cx;
rbsr->nBands++;
}
static rbsize_result_t *rbsize_results = NULL;
#define rbsize_results_num 27
static void rbsize_results_init(void)
{
rbsize_results = HeapAlloc(GetProcessHeap(), 0, rbsize_results_num*sizeof(rbsize_result_t));
rbsize_results[0] = rbsize_init(0, 0, 672, 0, 0, 0, 0);
rbsize_results[1] = rbsize_init(0, 0, 672, 4, 4, 1, 1);
rbsize_add_row(&rbsize_results[1], 4);
rbsize_add_band(&rbsize_results[1], 0, 0, 672, 4, 0x00, 200);
rbsize_results[2] = rbsize_init(0, 0, 672, 4, 4, 1, 2);
rbsize_add_row(&rbsize_results[2], 4);
rbsize_add_band(&rbsize_results[2], 0, 0, 200, 4, 0x00, 200);
rbsize_add_band(&rbsize_results[2], 200, 0, 672, 4, 0x04, 200);
rbsize_results[3] = rbsize_init(0, 0, 672, 30, 30, 1, 3);
rbsize_add_row(&rbsize_results[3], 30);
rbsize_add_band(&rbsize_results[3], 0, 0, 200, 30, 0x00, 200);
rbsize_add_band(&rbsize_results[3], 200, 0, 400, 30, 0x04, 200);
rbsize_add_band(&rbsize_results[3], 400, 0, 672, 30, 0x00, 200);
rbsize_results[4] = rbsize_init(0, 0, 672, 34, 34, 1, 4);
rbsize_add_row(&rbsize_results[4], 34);
rbsize_add_band(&rbsize_results[4], 0, 0, 200, 34, 0x00, 200);
rbsize_add_band(&rbsize_results[4], 200, 0, 400, 34, 0x04, 200);
rbsize_add_band(&rbsize_results[4], 400, 0, 604, 34, 0x00, 200);
rbsize_add_band(&rbsize_results[4], 604, 0, 672, 34, 0x04, 68);
rbsize_results[5] = rbsize_init(0, 0, 672, 34, 34, 1, 4);
rbsize_add_row(&rbsize_results[5], 34);
rbsize_add_band(&rbsize_results[5], 0, 0, 200, 34, 0x00, 200);
rbsize_add_band(&rbsize_results[5], 200, 0, 400, 34, 0x04, 200);
rbsize_add_band(&rbsize_results[5], 400, 0, 604, 34, 0x00, 200);
rbsize_add_band(&rbsize_results[5], 604, 0, 672, 34, 0x04, 68);
rbsize_results[6] = rbsize_init(0, 0, 672, 34, 34, 1, 4);
rbsize_add_row(&rbsize_results[6], 34);
rbsize_add_band(&rbsize_results[6], 0, 0, 200, 34, 0x00, 200);
rbsize_add_band(&rbsize_results[6], 202, 0, 402, 34, 0x04, 200);
rbsize_add_band(&rbsize_results[6], 404, 0, 604, 34, 0x00, 200);
rbsize_add_band(&rbsize_results[6], 606, 0, 672, 34, 0x04, 66);
rbsize_results[7] = rbsize_init(0, 0, 672, 70, 70, 2, 5);
rbsize_add_row(&rbsize_results[7], 34);
rbsize_add_row(&rbsize_results[7], 34);
rbsize_add_band(&rbsize_results[7], 0, 0, 142, 34, 0x00, 200);
rbsize_add_band(&rbsize_results[7], 144, 0, 557, 34, 0x00, 200);
rbsize_add_band(&rbsize_results[7], 559, 0, 672, 34, 0x04, 200);
rbsize_add_band(&rbsize_results[7], 0, 36, 200, 70, 0x00, 200);
rbsize_add_band(&rbsize_results[7], 202, 36, 672, 70, 0x04, 66);
rbsize_results[8] = rbsize_init(0, 0, 672, 34, 34, 1, 5);
rbsize_add_row(&rbsize_results[8], 34);
rbsize_add_band(&rbsize_results[8], 0, 0, 167, 34, 0x00, 200);
rbsize_add_band(&rbsize_results[8], 169, 0, 582, 34, 0x00, 200);
rbsize_add_band(&rbsize_results[8], 559, 0, 759, 34, 0x08, 200);
rbsize_add_band(&rbsize_results[8], 584, 0, 627, 34, 0x00, 200);
rbsize_add_band(&rbsize_results[8], 629, 0, 672, 34, 0x04, 66);
rbsize_results[9] = rbsize_init(0, 0, 672, 34, 34, 1, 4);
rbsize_add_row(&rbsize_results[9], 34);
rbsize_add_band(&rbsize_results[9], 0, 0, 167, 34, 0x00, 200);
rbsize_add_band(&rbsize_results[9], 169, 0, 582, 34, 0x00, 200);
rbsize_add_band(&rbsize_results[9], 584, 0, 627, 34, 0x00, 200);
rbsize_add_band(&rbsize_results[9], 629, 0, 672, 34, 0x04, 66);
rbsize_results[10] = rbsize_init(0, 0, 672, 34, 34, 1, 3);
rbsize_add_row(&rbsize_results[10], 34);
rbsize_add_band(&rbsize_results[10], 0, 0, 413, 34, 0x00, 200);
rbsize_add_band(&rbsize_results[10], 415, 0, 615, 34, 0x00, 200);
rbsize_add_band(&rbsize_results[10], 617, 0, 672, 34, 0x04, 66);
rbsize_results[11] = rbsize_init(0, 0, 672, 34, 34, 1, 2);
rbsize_add_row(&rbsize_results[11], 34);
rbsize_add_band(&rbsize_results[11], 0, 0, 604, 34, 0x00, 200);
rbsize_add_band(&rbsize_results[11], 606, 0, 672, 34, 0x04, 66);
rbsize_results[12] = rbsize_init(0, 0, 672, 40, 40, 2, 5);
rbsize_add_row(&rbsize_results[12], 20);
rbsize_add_row(&rbsize_results[12], 20);
rbsize_add_band(&rbsize_results[12], 0, 0, 114, 20, 0x00, 40);
rbsize_add_band(&rbsize_results[12], 114, 0, 184, 20, 0x00, 70);
rbsize_add_band(&rbsize_results[12], 184, 0, 424, 20, 0x00, 240);
rbsize_add_band(&rbsize_results[12], 424, 0, 672, 20, 0x00, 60);
rbsize_add_band(&rbsize_results[12], 0, 20, 672, 40, 0x00, 200);
rbsize_results[13] = rbsize_init(0, 0, 672, 40, 40, 2, 5);
rbsize_add_row(&rbsize_results[13], 20);
rbsize_add_row(&rbsize_results[13], 20);
rbsize_add_band(&rbsize_results[13], 0, 0, 114, 20, 0x00, 40);
rbsize_add_band(&rbsize_results[13], 114, 0, 227, 20, 0x00, 113);
rbsize_add_band(&rbsize_results[13], 227, 0, 424, 20, 0x00, 197);
rbsize_add_band(&rbsize_results[13], 424, 0, 672, 20, 0x00, 60);
rbsize_add_band(&rbsize_results[13], 0, 20, 672, 40, 0x00, 200);
rbsize_results[14] = rbsize_init(0, 0, 672, 40, 40, 2, 5);
rbsize_add_row(&rbsize_results[14], 20);
rbsize_add_row(&rbsize_results[14], 20);
rbsize_add_band(&rbsize_results[14], 0, 0, 114, 20, 0x00, 40);
rbsize_add_band(&rbsize_results[14], 114, 0, 328, 20, 0x00, 214);
rbsize_add_band(&rbsize_results[14], 328, 0, 511, 20, 0x00, 183);
rbsize_add_band(&rbsize_results[14], 511, 0, 672, 20, 0x00, 161);
rbsize_add_band(&rbsize_results[14], 0, 20, 672, 40, 0x00, 200);
rbsize_results[15] = rbsize_init(0, 0, 672, 40, 40, 2, 5);
rbsize_add_row(&rbsize_results[15], 20);
rbsize_add_row(&rbsize_results[15], 20);
rbsize_add_band(&rbsize_results[15], 0, 0, 114, 20, 0x00, 40);
rbsize_add_band(&rbsize_results[15], 114, 0, 167, 20, 0x00, 53);
rbsize_add_band(&rbsize_results[15], 167, 0, 511, 20, 0x00, 344);
rbsize_add_band(&rbsize_results[15], 511, 0, 672, 20, 0x00, 161);
rbsize_add_band(&rbsize_results[15], 0, 20, 672, 40, 0x00, 200);
rbsize_results[16] = rbsize_init(0, 0, 672, 40, 40, 2, 5);
rbsize_add_row(&rbsize_results[16], 20);
rbsize_add_row(&rbsize_results[16], 20);
rbsize_add_band(&rbsize_results[16], 0, 0, 114, 20, 0x00, 40);
rbsize_add_band(&rbsize_results[16], 114, 0, 328, 20, 0x00, 214);
rbsize_add_band(&rbsize_results[16], 328, 0, 511, 20, 0x00, 183);
rbsize_add_band(&rbsize_results[16], 511, 0, 672, 20, 0x00, 161);
rbsize_add_band(&rbsize_results[16], 0, 20, 672, 40, 0x00, 200);
rbsize_results[17] = rbsize_init(0, 0, 672, 40, 40, 2, 5);
rbsize_add_row(&rbsize_results[17], 20);
rbsize_add_row(&rbsize_results[17], 20);
rbsize_add_band(&rbsize_results[17], 0, 0, 114, 20, 0x00, 40);
rbsize_add_band(&rbsize_results[17], 114, 0, 328, 20, 0x00, 214);
rbsize_add_band(&rbsize_results[17], 328, 0, 511, 20, 0x00, 183);
rbsize_add_band(&rbsize_results[17], 511, 0, 672, 20, 0x00, 161);
rbsize_add_band(&rbsize_results[17], 0, 20, 672, 40, 0x00, 200);
rbsize_results[18] = rbsize_init(0, 0, 672, 56, 56, 2, 5);
rbsize_add_row(&rbsize_results[18], 28);
rbsize_add_row(&rbsize_results[18], 28);
rbsize_add_band(&rbsize_results[18], 0, 0, 114, 28, 0x00, 40);
rbsize_add_band(&rbsize_results[18], 114, 0, 328, 28, 0x00, 214);
rbsize_add_band(&rbsize_results[18], 328, 0, 511, 28, 0x00, 183);
rbsize_add_band(&rbsize_results[18], 511, 0, 672, 28, 0x00, 161);
rbsize_add_band(&rbsize_results[18], 0, 28, 672, 56, 0x00, 200);
rbsize_results[19] = rbsize_init(0, 0, 672, 40, 40, 2, 5);
rbsize_add_row(&rbsize_results[19], 20);
rbsize_add_row(&rbsize_results[19], 20);
rbsize_add_band(&rbsize_results[19], 0, 0, 114, 20, 0x00, 40);
rbsize_add_band(&rbsize_results[19], 114, 0, 328, 20, 0x00, 214);
rbsize_add_band(&rbsize_results[19], 328, 0, 511, 20, 0x00, 183);
rbsize_add_band(&rbsize_results[19], 511, 0, 672, 20, 0x00, 161);
rbsize_add_band(&rbsize_results[19], 0, 20, 672, 40, 0x00, 200);
rbsize_results[20] = rbsize_init(0, 0, 672, 56, 56, 2, 5);
rbsize_add_row(&rbsize_results[20], 28);
rbsize_add_row(&rbsize_results[20], 28);
rbsize_add_band(&rbsize_results[20], 0, 0, 114, 28, 0x00, 40);
rbsize_add_band(&rbsize_results[20], 114, 0, 328, 28, 0x00, 214);
rbsize_add_band(&rbsize_results[20], 328, 0, 511, 28, 0x00, 183);
rbsize_add_band(&rbsize_results[20], 511, 0, 672, 28, 0x00, 161);
rbsize_add_band(&rbsize_results[20], 0, 28, 672, 56, 0x00, 200);
rbsize_results[21] = rbsize_init(0, 0, 672, 0, 0, 0, 0);
rbsize_results[22] = rbsize_init(0, 0, 672, 65, 56, 1, 3);
rbsize_add_row(&rbsize_results[22], 65);
rbsize_add_band(&rbsize_results[22], 0, 0, 90, 65, 0x40, 90);
rbsize_add_band(&rbsize_results[22], 90, 0, 180, 65, 0x40, 90);
rbsize_add_band(&rbsize_results[22], 180, 0, 672, 65, 0x40, 90);
rbsize_results[23] = rbsize_init(0, 0, 0, 226, 0, 0, 0);
rbsize_results[24] = rbsize_init(0, 0, 65, 226, 65, 1, 1);
rbsize_add_row(&rbsize_results[24], 65);
rbsize_add_band(&rbsize_results[24], 0, 0, 226, 65, 0x40, 90);
rbsize_results[25] = rbsize_init(0, 0, 65, 226, 65, 1, 2);
rbsize_add_row(&rbsize_results[25], 65);
rbsize_add_band(&rbsize_results[25], 0, 0, 90, 65, 0x40, 90);
rbsize_add_band(&rbsize_results[25], 90, 0, 226, 65, 0x40, 90);
rbsize_results[26] = rbsize_init(0, 0, 65, 226, 65, 1, 3);
rbsize_add_row(&rbsize_results[26], 65);
rbsize_add_band(&rbsize_results[26], 0, 0, 90, 65, 0x40, 90);
rbsize_add_band(&rbsize_results[26], 90, 0, 163, 65, 0x40, 90);
rbsize_add_band(&rbsize_results[26], 163, 0, 226, 65, 0x40, 90);
}
static void rbsize_results_free(void)
{
int i;
for (i = 0; i < rbsize_results_num; i++) {
HeapFree(GetProcessHeap(), 0, rbsize_results[i].cyRowHeights);
HeapFree(GetProcessHeap(), 0, rbsize_results[i].bands);
}
HeapFree(GetProcessHeap(), 0, rbsize_results);
rbsize_results = NULL;
}
static int rbsize_numtests = 0;
@ -313,7 +430,6 @@ static int rbsize_numtests = 0;
REBARBANDINFO rbi; \
int count, i/*, mask=(todomask)*/; \
const rbsize_result_t *res = &rbsize_results[rbsize_numtests]; \
assert(rbsize_numtests < sizeof(rbsize_results)/sizeof(rbsize_results[0])); \
GetClientRect(hRebar, &rc); \
check_rect("client", rc, res->rcClient); \
count = SendMessage(hRebar, RB_GETROWCOUNT, 0, 0); \
@ -366,6 +482,8 @@ static void test_layout(void)
HIMAGELIST himl;
REBARINFO ri;
rbsize_results_init();
hRebar = create_rebar_control();
check_sizes();
rbi.cbSize = REBARBANDINFOA_V6_SIZE;
@ -523,6 +641,7 @@ static void test_layout(void)
SendMessageA(hRebar, RB_INSERTBAND, -1, (LPARAM)&rbi);
check_sizes();
rbsize_results_free();
DestroyWindow(hRebar);
ImageList_Destroy(himl);
}