comctl32/tab: Split tests to several functions not to depend from each other.
This commit is contained in:
parent
3371ba9f73
commit
336a68be54
|
@ -638,7 +638,292 @@ static void test_tab(INT nMinTabWidth)
|
|||
DeleteObject(hFont);
|
||||
}
|
||||
|
||||
static void test_getters_setters(HWND parent_wnd, INT nTabs)
|
||||
static void test_curfocus(HWND parent_wnd, INT nTabs)
|
||||
{
|
||||
INT focusIndex;
|
||||
HWND hTab;
|
||||
|
||||
hTab = createFilledTabControl(parent_wnd, TCS_FIXEDWIDTH, TCIF_TEXT|TCIF_IMAGE, nTabs);
|
||||
ok(hTab != NULL, "Failed to create tab control\n");
|
||||
|
||||
flush_sequences(sequences, NUM_MSG_SEQUENCES);
|
||||
|
||||
/* Testing CurFocus with largest appropriate value */
|
||||
SendMessage(hTab, TCM_SETCURFOCUS, nTabs-1, 0);
|
||||
focusIndex = SendMessage(hTab, TCM_GETCURFOCUS, 0, 0);
|
||||
expect(nTabs-1, focusIndex);
|
||||
|
||||
/* Testing CurFocus with negative value */
|
||||
SendMessage(hTab, TCM_SETCURFOCUS, -10, 0);
|
||||
focusIndex = SendMessage(hTab, TCM_GETCURFOCUS, 0, 0);
|
||||
expect(-1, focusIndex);
|
||||
|
||||
/* Testing CurFocus with value larger than number of tabs */
|
||||
focusIndex = SendMessage(hTab, TCM_SETCURSEL, 1, 0);
|
||||
todo_wine{
|
||||
expect(-1, focusIndex);
|
||||
}
|
||||
|
||||
SendMessage(hTab, TCM_SETCURFOCUS, nTabs+1, 0);
|
||||
focusIndex = SendMessage(hTab, TCM_GETCURFOCUS, 0, 0);
|
||||
expect(1, focusIndex);
|
||||
|
||||
ok_sequence(sequences, TAB_SEQ_INDEX, getset_cur_focus_seq, "Getset curFoc test sequence", FALSE);
|
||||
|
||||
DestroyWindow(hTab);
|
||||
}
|
||||
|
||||
static void test_cursel(HWND parent_wnd, INT nTabs)
|
||||
{
|
||||
INT selectionIndex;
|
||||
INT focusIndex;
|
||||
TCITEM tcItem;
|
||||
HWND hTab;
|
||||
|
||||
hTab = createFilledTabControl(parent_wnd, TCS_FIXEDWIDTH, TCIF_TEXT|TCIF_IMAGE, nTabs);
|
||||
ok(hTab != NULL, "Failed to create tab control\n");
|
||||
|
||||
flush_sequences(sequences, NUM_MSG_SEQUENCES);
|
||||
|
||||
/* Testing CurSel with largest appropriate value */
|
||||
selectionIndex = SendMessage(hTab, TCM_SETCURSEL, nTabs-1, 0);
|
||||
expect(0, selectionIndex);
|
||||
selectionIndex = SendMessage(hTab, TCM_GETCURSEL, 0, 0);
|
||||
expect(nTabs-1, selectionIndex);
|
||||
|
||||
/* Focus should switch with selection */
|
||||
focusIndex = SendMessage(hTab, TCM_GETCURFOCUS, 0, 0);
|
||||
expect(nTabs-1, focusIndex);
|
||||
|
||||
/* Testing CurSel with negative value */
|
||||
SendMessage(hTab, TCM_SETCURSEL, -10, 0);
|
||||
selectionIndex = SendMessage(hTab, TCM_GETCURSEL, 0, 0);
|
||||
expect(-1, selectionIndex);
|
||||
|
||||
/* Testing CurSel with value larger than number of tabs */
|
||||
selectionIndex = SendMessage(hTab, TCM_SETCURSEL, 1, 0);
|
||||
expect(-1, selectionIndex);
|
||||
|
||||
selectionIndex = SendMessage(hTab, TCM_SETCURSEL, nTabs+1, 0);
|
||||
expect(-1, selectionIndex);
|
||||
selectionIndex = SendMessage(hTab, TCM_GETCURFOCUS, 0, 0);
|
||||
expect(1, selectionIndex);
|
||||
|
||||
ok_sequence(sequences, TAB_SEQ_INDEX, getset_cur_sel_seq, "Getset curSel test sequence", FALSE);
|
||||
ok_sequence(sequences, PARENT_SEQ_INDEX, empty_sequence, "Getset curSel test parent sequence", FALSE);
|
||||
|
||||
/* selected item should have TCIS_BUTTONPRESSED state
|
||||
It doesn't depend on button state */
|
||||
memset(&tcItem, 0, sizeof(TCITEM));
|
||||
tcItem.mask = TCIF_STATE;
|
||||
tcItem.dwStateMask = TCIS_BUTTONPRESSED;
|
||||
selectionIndex = SendMessage(hTab, TCM_GETCURSEL, 0, 0);
|
||||
SendMessage(hTab, TCM_GETITEM, selectionIndex, (LPARAM) &tcItem);
|
||||
ok (tcItem.dwState & TCIS_BUTTONPRESSED || broken(tcItem.dwState == 0), /* older comctl32 */
|
||||
"Selected item should have TCIS_BUTTONPRESSED\n");
|
||||
|
||||
DestroyWindow(hTab);
|
||||
}
|
||||
|
||||
static void test_extendedstyle(HWND parent_wnd, INT nTabs)
|
||||
{
|
||||
DWORD prevExtendedStyle;
|
||||
DWORD extendedStyle;
|
||||
HWND hTab;
|
||||
|
||||
hTab = createFilledTabControl(parent_wnd, TCS_FIXEDWIDTH, TCIF_TEXT|TCIF_IMAGE, nTabs);
|
||||
ok(hTab != NULL, "Failed to create tab control\n");
|
||||
|
||||
flush_sequences(sequences, NUM_MSG_SEQUENCES);
|
||||
|
||||
/* Testing Flat Separators */
|
||||
extendedStyle = SendMessage(hTab, TCM_GETEXTENDEDSTYLE, 0, 0);
|
||||
prevExtendedStyle = SendMessage(hTab, TCM_SETEXTENDEDSTYLE, 0, TCS_EX_FLATSEPARATORS);
|
||||
expect(extendedStyle, prevExtendedStyle);
|
||||
|
||||
extendedStyle = SendMessage(hTab, TCM_GETEXTENDEDSTYLE, 0, 0);
|
||||
expect(TCS_EX_FLATSEPARATORS, extendedStyle);
|
||||
|
||||
/* Testing Register Drop */
|
||||
prevExtendedStyle = SendMessage(hTab, TCM_SETEXTENDEDSTYLE, 0, TCS_EX_REGISTERDROP);
|
||||
expect(extendedStyle, prevExtendedStyle);
|
||||
|
||||
extendedStyle = SendMessage(hTab, TCM_GETEXTENDEDSTYLE, 0, 0);
|
||||
todo_wine{
|
||||
expect(TCS_EX_REGISTERDROP, extendedStyle);
|
||||
}
|
||||
|
||||
ok_sequence(sequences, TAB_SEQ_INDEX, getset_extended_style_seq, "Getset extendedStyle test sequence", FALSE);
|
||||
ok_sequence(sequences, PARENT_SEQ_INDEX, empty_sequence, "Getset extendedStyle test parent sequence", FALSE);
|
||||
|
||||
DestroyWindow(hTab);
|
||||
}
|
||||
|
||||
static void test_unicodeformat(HWND parent_wnd, INT nTabs)
|
||||
{
|
||||
INT unicodeFormat;
|
||||
HWND hTab;
|
||||
|
||||
hTab = createFilledTabControl(parent_wnd, TCS_FIXEDWIDTH, TCIF_TEXT|TCIF_IMAGE, nTabs);
|
||||
ok(hTab != NULL, "Failed to create tab control\n");
|
||||
|
||||
flush_sequences(sequences, NUM_MSG_SEQUENCES);
|
||||
|
||||
unicodeFormat = SendMessage(hTab, TCM_SETUNICODEFORMAT, TRUE, 0);
|
||||
todo_wine{
|
||||
expect(0, unicodeFormat);
|
||||
}
|
||||
unicodeFormat = SendMessage(hTab, TCM_GETUNICODEFORMAT, 0, 0);
|
||||
expect(1, unicodeFormat);
|
||||
|
||||
unicodeFormat = SendMessage(hTab, TCM_SETUNICODEFORMAT, FALSE, 0);
|
||||
expect(1, unicodeFormat);
|
||||
unicodeFormat = SendMessage(hTab, TCM_GETUNICODEFORMAT, 0, 0);
|
||||
expect(0, unicodeFormat);
|
||||
|
||||
unicodeFormat = SendMessage(hTab, TCM_SETUNICODEFORMAT, TRUE, 0);
|
||||
expect(0, unicodeFormat);
|
||||
|
||||
ok_sequence(sequences, TAB_SEQ_INDEX, getset_unicode_format_seq, "Getset unicodeFormat test sequence", FALSE);
|
||||
ok_sequence(sequences, PARENT_SEQ_INDEX, empty_sequence, "Getset unicodeFormat test parent sequence", FALSE);
|
||||
|
||||
DestroyWindow(hTab);
|
||||
}
|
||||
|
||||
static void test_getset_item(HWND parent_wnd, INT nTabs)
|
||||
{
|
||||
TCITEM tcItem;
|
||||
DWORD ret;
|
||||
char szText[32] = "New Label";
|
||||
HWND hTab;
|
||||
|
||||
hTab = createFilledTabControl(parent_wnd, TCS_FIXEDWIDTH, TCIF_TEXT|TCIF_IMAGE, nTabs);
|
||||
ok(hTab != NULL, "Failed to create tab control\n");
|
||||
|
||||
/* passing invalid index should result in initialization to zero
|
||||
for members mentioned in mask requested */
|
||||
|
||||
/* valid range here is [0,4] */
|
||||
memset(&tcItem, 0xcc, sizeof(tcItem));
|
||||
tcItem.mask = TCIF_PARAM;
|
||||
ret = SendMessage(hTab, TCM_GETITEM, 5, (LPARAM)&tcItem);
|
||||
expect(FALSE, ret);
|
||||
ok(tcItem.lParam == 0, "Expected zero lParam, got %lu\n", tcItem.lParam);
|
||||
|
||||
memset(&tcItem, 0xcc, sizeof(tcItem));
|
||||
tcItem.mask = TCIF_IMAGE;
|
||||
ret = SendMessage(hTab, TCM_GETITEM, 5, (LPARAM)&tcItem);
|
||||
expect(FALSE, ret);
|
||||
expect(0, tcItem.iImage);
|
||||
|
||||
memset(&tcItem, 0xcc, sizeof(tcItem));
|
||||
tcItem.mask = TCIF_TEXT;
|
||||
tcItem.pszText = szText;
|
||||
szText[0] = 'a';
|
||||
ret = SendMessage(hTab, TCM_GETITEM, 5, (LPARAM)&tcItem);
|
||||
expect(FALSE, ret);
|
||||
expect('a', szText[0]);
|
||||
|
||||
memset(&tcItem, 0xcc, sizeof(tcItem));
|
||||
tcItem.mask = TCIF_STATE;
|
||||
tcItem.dwStateMask = 0;
|
||||
tcItem.dwState = TCIS_BUTTONPRESSED;
|
||||
ret = SendMessage(hTab, TCM_GETITEM, 5, (LPARAM)&tcItem);
|
||||
expect(FALSE, ret);
|
||||
ok(tcItem.dwState == 0, "Expected zero dwState, got %u\n", tcItem.dwState);
|
||||
|
||||
memset(&tcItem, 0xcc, sizeof(tcItem));
|
||||
tcItem.mask = TCIF_STATE;
|
||||
tcItem.dwStateMask = TCIS_BUTTONPRESSED;
|
||||
tcItem.dwState = TCIS_BUTTONPRESSED;
|
||||
ret = SendMessage(hTab, TCM_GETITEM, 5, (LPARAM)&tcItem);
|
||||
expect(FALSE, ret);
|
||||
ok(tcItem.dwState == 0, "Expected zero dwState\n");
|
||||
|
||||
/* check with negative index to be sure */
|
||||
memset(&tcItem, 0xcc, sizeof(tcItem));
|
||||
tcItem.mask = TCIF_PARAM;
|
||||
ret = SendMessage(hTab, TCM_GETITEM, -1, (LPARAM)&tcItem);
|
||||
expect(FALSE, ret);
|
||||
ok(tcItem.lParam == 0, "Expected zero lParam, got %lu\n", tcItem.lParam);
|
||||
|
||||
memset(&tcItem, 0xcc, sizeof(tcItem));
|
||||
tcItem.mask = TCIF_PARAM;
|
||||
ret = SendMessage(hTab, TCM_GETITEM, -2, (LPARAM)&tcItem);
|
||||
expect(FALSE, ret);
|
||||
ok(tcItem.lParam == 0, "Expected zero lParam, got %lu\n", tcItem.lParam);
|
||||
|
||||
flush_sequences(sequences, NUM_MSG_SEQUENCES);
|
||||
|
||||
tcItem.mask = TCIF_TEXT;
|
||||
tcItem.pszText = &szText[0];
|
||||
tcItem.cchTextMax = sizeof(szText);
|
||||
|
||||
strcpy(szText, "New Label");
|
||||
ok ( SendMessage(hTab, TCM_SETITEM, 0, (LPARAM) &tcItem), "Setting new item failed.\n");
|
||||
ok ( SendMessage(hTab, TCM_GETITEM, 0, (LPARAM) &tcItem), "Getting item failed.\n");
|
||||
expect_str("New Label", tcItem.pszText);
|
||||
|
||||
ok ( SendMessage(hTab, TCM_GETITEM, 1, (LPARAM) &tcItem), "Getting item failed.\n");
|
||||
expect_str("Tab 2", tcItem.pszText);
|
||||
|
||||
ok_sequence(sequences, TAB_SEQ_INDEX, getset_item_seq, "Getset item test sequence", FALSE);
|
||||
ok_sequence(sequences, PARENT_SEQ_INDEX, empty_sequence, "Getset item test parent sequence", FALSE);
|
||||
|
||||
/* TCIS_BUTTONPRESSED doesn't depend on tab style */
|
||||
memset(&tcItem, 0, sizeof(tcItem));
|
||||
tcItem.mask = TCIF_STATE;
|
||||
tcItem.dwStateMask = TCIS_BUTTONPRESSED;
|
||||
tcItem.dwState = TCIS_BUTTONPRESSED;
|
||||
ok ( SendMessage(hTab, TCM_SETITEM, 0, (LPARAM) &tcItem), "Setting new item failed.\n");
|
||||
tcItem.dwState = 0;
|
||||
ok ( SendMessage(hTab, TCM_GETITEM, 0, (LPARAM) &tcItem), "Getting item failed.\n");
|
||||
if (tcItem.dwState)
|
||||
{
|
||||
ok (tcItem.dwState == TCIS_BUTTONPRESSED, "TCIS_BUTTONPRESSED should be set.\n");
|
||||
/* next highlight item, test that dwStateMask actually masks */
|
||||
tcItem.mask = TCIF_STATE;
|
||||
tcItem.dwStateMask = TCIS_HIGHLIGHTED;
|
||||
tcItem.dwState = TCIS_HIGHLIGHTED;
|
||||
ok ( SendMessage(hTab, TCM_SETITEM, 0, (LPARAM) &tcItem), "Setting new item failed.\n");
|
||||
tcItem.dwState = 0;
|
||||
ok ( SendMessage(hTab, TCM_GETITEM, 0, (LPARAM) &tcItem), "Getting item failed.\n");
|
||||
ok (tcItem.dwState == TCIS_HIGHLIGHTED, "TCIS_HIGHLIGHTED should be set.\n");
|
||||
tcItem.mask = TCIF_STATE;
|
||||
tcItem.dwStateMask = TCIS_BUTTONPRESSED;
|
||||
tcItem.dwState = 0;
|
||||
ok ( SendMessage(hTab, TCM_GETITEM, 0, (LPARAM) &tcItem), "Getting item failed.\n");
|
||||
ok (tcItem.dwState == TCIS_BUTTONPRESSED, "TCIS_BUTTONPRESSED should be set.\n");
|
||||
}
|
||||
else win_skip( "Item state mask not supported\n" );
|
||||
|
||||
DestroyWindow(hTab);
|
||||
}
|
||||
|
||||
static void test_getset_tooltips(HWND parent_wnd, INT nTabs)
|
||||
{
|
||||
HWND hTab, toolTip;
|
||||
char toolTipText[32] = "ToolTip Text Test";
|
||||
|
||||
hTab = createFilledTabControl(parent_wnd, TCS_FIXEDWIDTH, TCIF_TEXT|TCIF_IMAGE, nTabs);
|
||||
ok(hTab != NULL, "Failed to create tab control\n");
|
||||
|
||||
flush_sequences(sequences, NUM_MSG_SEQUENCES);
|
||||
|
||||
toolTip = create_tooltip(hTab, toolTipText);
|
||||
SendMessage(hTab, TCM_SETTOOLTIPS, (LPARAM) toolTip, 0);
|
||||
ok (toolTip == (HWND) SendMessage(hTab,TCM_GETTOOLTIPS,0,0), "ToolTip was set incorrectly.\n");
|
||||
|
||||
SendMessage(hTab, TCM_SETTOOLTIPS, 0, 0);
|
||||
ok (NULL == (HWND) SendMessage(hTab,TCM_GETTOOLTIPS,0,0), "ToolTip was set incorrectly.\n");
|
||||
|
||||
ok_sequence(sequences, TAB_SEQ_INDEX, getset_tooltip_seq, "Getset tooltip test sequence", TRUE);
|
||||
ok_sequence(sequences, PARENT_SEQ_INDEX, getset_tooltip_parent_seq, "Getset tooltip test parent sequence", TRUE);
|
||||
|
||||
DestroyWindow(hTab);
|
||||
}
|
||||
|
||||
static void test_misc(HWND parent_wnd, INT nTabs)
|
||||
{
|
||||
HWND hTab;
|
||||
RECT rTab;
|
||||
|
@ -696,256 +981,6 @@ static void test_getters_setters(HWND parent_wnd, INT nTabs)
|
|||
ok_sequence(sequences, TAB_SEQ_INDEX, get_item_rect_seq, "Get itemRect test sequence", FALSE);
|
||||
ok_sequence(sequences, PARENT_SEQ_INDEX, empty_sequence, "Get itemRect test parent sequence", FALSE);
|
||||
|
||||
/* Testing CurFocus */
|
||||
{
|
||||
INT focusIndex;
|
||||
|
||||
flush_sequences(sequences, NUM_MSG_SEQUENCES);
|
||||
|
||||
/* Testing CurFocus with largest appropriate value */
|
||||
SendMessage(hTab, TCM_SETCURFOCUS, nTabs-1, 0);
|
||||
focusIndex = SendMessage(hTab, TCM_GETCURFOCUS, 0, 0);
|
||||
expect(nTabs-1, focusIndex);
|
||||
|
||||
/* Testing CurFocus with negative value */
|
||||
SendMessage(hTab, TCM_SETCURFOCUS, -10, 0);
|
||||
focusIndex = SendMessage(hTab, TCM_GETCURFOCUS, 0, 0);
|
||||
expect(-1, focusIndex);
|
||||
|
||||
/* Testing CurFocus with value larger than number of tabs */
|
||||
focusIndex = SendMessage(hTab, TCM_SETCURSEL, 1, 0);
|
||||
todo_wine{
|
||||
expect(-1, focusIndex);
|
||||
}
|
||||
|
||||
SendMessage(hTab, TCM_SETCURFOCUS, nTabs+1, 0);
|
||||
focusIndex = SendMessage(hTab, TCM_GETCURFOCUS, 0, 0);
|
||||
expect(1, focusIndex);
|
||||
|
||||
ok_sequence(sequences, TAB_SEQ_INDEX, getset_cur_focus_seq, "Getset curFoc test sequence", FALSE);
|
||||
}
|
||||
|
||||
/* Testing CurSel */
|
||||
{
|
||||
INT selectionIndex;
|
||||
INT focusIndex;
|
||||
TCITEM tcItem;
|
||||
|
||||
flush_sequences(sequences, NUM_MSG_SEQUENCES);
|
||||
|
||||
/* Testing CurSel with largest appropriate value */
|
||||
selectionIndex = SendMessage(hTab, TCM_SETCURSEL, nTabs-1, 0);
|
||||
expect(1, selectionIndex);
|
||||
selectionIndex = SendMessage(hTab, TCM_GETCURSEL, 0, 0);
|
||||
expect(nTabs-1, selectionIndex);
|
||||
|
||||
/* Focus should switch with selection */
|
||||
focusIndex = SendMessage(hTab, TCM_GETCURFOCUS, 0, 0);
|
||||
expect(nTabs-1, focusIndex);
|
||||
|
||||
/* Testing CurSel with negative value */
|
||||
SendMessage(hTab, TCM_SETCURSEL, -10, 0);
|
||||
selectionIndex = SendMessage(hTab, TCM_GETCURSEL, 0, 0);
|
||||
expect(-1, selectionIndex);
|
||||
|
||||
/* Testing CurSel with value larger than number of tabs */
|
||||
selectionIndex = SendMessage(hTab, TCM_SETCURSEL, 1, 0);
|
||||
expect(-1, selectionIndex);
|
||||
|
||||
selectionIndex = SendMessage(hTab, TCM_SETCURSEL, nTabs+1, 0);
|
||||
expect(-1, selectionIndex);
|
||||
selectionIndex = SendMessage(hTab, TCM_GETCURFOCUS, 0, 0);
|
||||
expect(1, selectionIndex);
|
||||
|
||||
ok_sequence(sequences, TAB_SEQ_INDEX, getset_cur_sel_seq, "Getset curSel test sequence", FALSE);
|
||||
ok_sequence(sequences, PARENT_SEQ_INDEX, empty_sequence, "Getset curSel test parent sequence", FALSE);
|
||||
|
||||
/* selected item should have TCIS_BUTTONPRESSED state
|
||||
It doesn't depend on button state */
|
||||
memset(&tcItem, 0, sizeof(TCITEM));
|
||||
tcItem.mask = TCIF_STATE;
|
||||
tcItem.dwStateMask = TCIS_BUTTONPRESSED;
|
||||
selectionIndex = SendMessage(hTab, TCM_GETCURSEL, 0, 0);
|
||||
SendMessage(hTab, TCM_GETITEM, selectionIndex, (LPARAM) &tcItem);
|
||||
ok (tcItem.dwState & TCIS_BUTTONPRESSED || broken(tcItem.dwState == 0), /* older comctl32 */
|
||||
"Selected item should have TCIS_BUTTONPRESSED\n");
|
||||
}
|
||||
|
||||
/* Testing ExtendedStyle */
|
||||
{
|
||||
DWORD prevExtendedStyle;
|
||||
DWORD extendedStyle;
|
||||
|
||||
flush_sequences(sequences, NUM_MSG_SEQUENCES);
|
||||
|
||||
/* Testing Flat Separators */
|
||||
extendedStyle = SendMessage(hTab, TCM_GETEXTENDEDSTYLE, 0, 0);
|
||||
prevExtendedStyle = SendMessage(hTab, TCM_SETEXTENDEDSTYLE, 0, TCS_EX_FLATSEPARATORS);
|
||||
expect(extendedStyle, prevExtendedStyle);
|
||||
|
||||
extendedStyle = SendMessage(hTab, TCM_GETEXTENDEDSTYLE, 0, 0);
|
||||
expect(TCS_EX_FLATSEPARATORS, extendedStyle);
|
||||
|
||||
/* Testing Register Drop */
|
||||
prevExtendedStyle = SendMessage(hTab, TCM_SETEXTENDEDSTYLE, 0, TCS_EX_REGISTERDROP);
|
||||
expect(extendedStyle, prevExtendedStyle);
|
||||
|
||||
extendedStyle = SendMessage(hTab, TCM_GETEXTENDEDSTYLE, 0, 0);
|
||||
todo_wine{
|
||||
expect(TCS_EX_REGISTERDROP, extendedStyle);
|
||||
}
|
||||
|
||||
ok_sequence(sequences, TAB_SEQ_INDEX, getset_extended_style_seq, "Getset extendedStyle test sequence", FALSE);
|
||||
ok_sequence(sequences, PARENT_SEQ_INDEX, empty_sequence, "Getset extendedStyle test parent sequence", FALSE);
|
||||
}
|
||||
|
||||
/* Testing UnicodeFormat */
|
||||
{
|
||||
INT unicodeFormat;
|
||||
|
||||
flush_sequences(sequences, NUM_MSG_SEQUENCES);
|
||||
|
||||
unicodeFormat = SendMessage(hTab, TCM_SETUNICODEFORMAT, TRUE, 0);
|
||||
todo_wine{
|
||||
expect(0, unicodeFormat);
|
||||
}
|
||||
unicodeFormat = SendMessage(hTab, TCM_GETUNICODEFORMAT, 0, 0);
|
||||
expect(1, unicodeFormat);
|
||||
|
||||
unicodeFormat = SendMessage(hTab, TCM_SETUNICODEFORMAT, FALSE, 0);
|
||||
expect(1, unicodeFormat);
|
||||
unicodeFormat = SendMessage(hTab, TCM_GETUNICODEFORMAT, 0, 0);
|
||||
expect(0, unicodeFormat);
|
||||
|
||||
unicodeFormat = SendMessage(hTab, TCM_SETUNICODEFORMAT, TRUE, 0);
|
||||
expect(0, unicodeFormat);
|
||||
|
||||
ok_sequence(sequences, TAB_SEQ_INDEX, getset_unicode_format_seq, "Getset unicodeFormat test sequence", FALSE);
|
||||
ok_sequence(sequences, PARENT_SEQ_INDEX, empty_sequence, "Getset unicodeFormat test parent sequence", FALSE);
|
||||
}
|
||||
|
||||
/* Testing GetSet Item */
|
||||
{
|
||||
TCITEM tcItem;
|
||||
DWORD ret;
|
||||
char szText[32] = "New Label";
|
||||
|
||||
/* passing invalid index should result in initialization to zero
|
||||
for members mentioned in mask requested */
|
||||
|
||||
/* valid range here is [0,4] */
|
||||
memset(&tcItem, 0xcc, sizeof(tcItem));
|
||||
tcItem.mask = TCIF_PARAM;
|
||||
ret = SendMessage(hTab, TCM_GETITEM, 5, (LPARAM)&tcItem);
|
||||
expect(FALSE, ret);
|
||||
ok(tcItem.lParam == 0, "Expected zero lParam, got %lu\n", tcItem.lParam);
|
||||
|
||||
memset(&tcItem, 0xcc, sizeof(tcItem));
|
||||
tcItem.mask = TCIF_IMAGE;
|
||||
ret = SendMessage(hTab, TCM_GETITEM, 5, (LPARAM)&tcItem);
|
||||
expect(FALSE, ret);
|
||||
expect(0, tcItem.iImage);
|
||||
|
||||
memset(&tcItem, 0xcc, sizeof(tcItem));
|
||||
tcItem.mask = TCIF_TEXT;
|
||||
tcItem.pszText = szText;
|
||||
szText[0] = 'a';
|
||||
ret = SendMessage(hTab, TCM_GETITEM, 5, (LPARAM)&tcItem);
|
||||
expect(FALSE, ret);
|
||||
expect('a', szText[0]);
|
||||
|
||||
memset(&tcItem, 0xcc, sizeof(tcItem));
|
||||
tcItem.mask = TCIF_STATE;
|
||||
tcItem.dwStateMask = 0;
|
||||
tcItem.dwState = TCIS_BUTTONPRESSED;
|
||||
ret = SendMessage(hTab, TCM_GETITEM, 5, (LPARAM)&tcItem);
|
||||
expect(FALSE, ret);
|
||||
ok(tcItem.dwState == 0, "Expected zero dwState, got %u\n", tcItem.dwState);
|
||||
|
||||
memset(&tcItem, 0xcc, sizeof(tcItem));
|
||||
tcItem.mask = TCIF_STATE;
|
||||
tcItem.dwStateMask = TCIS_BUTTONPRESSED;
|
||||
tcItem.dwState = TCIS_BUTTONPRESSED;
|
||||
ret = SendMessage(hTab, TCM_GETITEM, 5, (LPARAM)&tcItem);
|
||||
expect(FALSE, ret);
|
||||
ok(tcItem.dwState == 0, "Expected zero dwState\n");
|
||||
|
||||
/* check with negative index to be sure */
|
||||
memset(&tcItem, 0xcc, sizeof(tcItem));
|
||||
tcItem.mask = TCIF_PARAM;
|
||||
ret = SendMessage(hTab, TCM_GETITEM, -1, (LPARAM)&tcItem);
|
||||
expect(FALSE, ret);
|
||||
ok(tcItem.lParam == 0, "Expected zero lParam, got %lu\n", tcItem.lParam);
|
||||
|
||||
memset(&tcItem, 0xcc, sizeof(tcItem));
|
||||
tcItem.mask = TCIF_PARAM;
|
||||
ret = SendMessage(hTab, TCM_GETITEM, -2, (LPARAM)&tcItem);
|
||||
expect(FALSE, ret);
|
||||
ok(tcItem.lParam == 0, "Expected zero lParam, got %lu\n", tcItem.lParam);
|
||||
|
||||
flush_sequences(sequences, NUM_MSG_SEQUENCES);
|
||||
|
||||
tcItem.mask = TCIF_TEXT;
|
||||
tcItem.pszText = &szText[0];
|
||||
tcItem.cchTextMax = sizeof(szText);
|
||||
|
||||
strcpy(szText, "New Label");
|
||||
ok ( SendMessage(hTab, TCM_SETITEM, 0, (LPARAM) &tcItem), "Setting new item failed.\n");
|
||||
ok ( SendMessage(hTab, TCM_GETITEM, 0, (LPARAM) &tcItem), "Getting item failed.\n");
|
||||
expect_str("New Label", tcItem.pszText);
|
||||
|
||||
ok ( SendMessage(hTab, TCM_GETITEM, 1, (LPARAM) &tcItem), "Getting item failed.\n");
|
||||
expect_str("Tab 2", tcItem.pszText);
|
||||
|
||||
ok_sequence(sequences, TAB_SEQ_INDEX, getset_item_seq, "Getset item test sequence", FALSE);
|
||||
ok_sequence(sequences, PARENT_SEQ_INDEX, empty_sequence, "Getset item test parent sequence", FALSE);
|
||||
|
||||
/* TCIS_BUTTONPRESSED doesn't depend on tab style */
|
||||
memset(&tcItem, 0, sizeof(tcItem));
|
||||
tcItem.mask = TCIF_STATE;
|
||||
tcItem.dwStateMask = TCIS_BUTTONPRESSED;
|
||||
tcItem.dwState = TCIS_BUTTONPRESSED;
|
||||
ok ( SendMessage(hTab, TCM_SETITEM, 0, (LPARAM) &tcItem), "Setting new item failed.\n");
|
||||
tcItem.dwState = 0;
|
||||
ok ( SendMessage(hTab, TCM_GETITEM, 0, (LPARAM) &tcItem), "Getting item failed.\n");
|
||||
if (tcItem.dwState)
|
||||
{
|
||||
ok (tcItem.dwState == TCIS_BUTTONPRESSED, "TCIS_BUTTONPRESSED should be set.\n");
|
||||
/* next highlight item, test that dwStateMask actually masks */
|
||||
tcItem.mask = TCIF_STATE;
|
||||
tcItem.dwStateMask = TCIS_HIGHLIGHTED;
|
||||
tcItem.dwState = TCIS_HIGHLIGHTED;
|
||||
ok ( SendMessage(hTab, TCM_SETITEM, 0, (LPARAM) &tcItem), "Setting new item failed.\n");
|
||||
tcItem.dwState = 0;
|
||||
ok ( SendMessage(hTab, TCM_GETITEM, 0, (LPARAM) &tcItem), "Getting item failed.\n");
|
||||
ok (tcItem.dwState == TCIS_HIGHLIGHTED, "TCIS_HIGHLIGHTED should be set.\n");
|
||||
tcItem.mask = TCIF_STATE;
|
||||
tcItem.dwStateMask = TCIS_BUTTONPRESSED;
|
||||
tcItem.dwState = 0;
|
||||
ok ( SendMessage(hTab, TCM_GETITEM, 0, (LPARAM) &tcItem), "Getting item failed.\n");
|
||||
ok (tcItem.dwState == TCIS_BUTTONPRESSED, "TCIS_BUTTONPRESSED should be set.\n");
|
||||
}
|
||||
else win_skip( "Item state mask not supported\n" );
|
||||
}
|
||||
|
||||
/* Testing GetSet ToolTip */
|
||||
{
|
||||
HWND toolTip;
|
||||
char toolTipText[32] = "ToolTip Text Test";
|
||||
|
||||
flush_sequences(sequences, NUM_MSG_SEQUENCES);
|
||||
|
||||
toolTip = create_tooltip(hTab, toolTipText);
|
||||
SendMessage(hTab, TCM_SETTOOLTIPS, (LPARAM) toolTip, 0);
|
||||
ok (toolTip == (HWND) SendMessage(hTab,TCM_GETTOOLTIPS,0,0), "ToolTip was set incorrectly.\n");
|
||||
|
||||
SendMessage(hTab, TCM_SETTOOLTIPS, 0, 0);
|
||||
ok (NULL == (HWND) SendMessage(hTab,TCM_GETTOOLTIPS,0,0), "ToolTip was set incorrectly.\n");
|
||||
|
||||
ok_sequence(sequences, TAB_SEQ_INDEX, getset_tooltip_seq, "Getset tooltip test sequence", TRUE);
|
||||
ok_sequence(sequences, PARENT_SEQ_INDEX, getset_tooltip_parent_seq, "Getset tooltip test parent sequence", TRUE);
|
||||
}
|
||||
|
||||
DestroyWindow(hTab);
|
||||
}
|
||||
|
||||
|
@ -965,6 +1000,7 @@ static void test_adjustrect(HWND parent_wnd)
|
|||
r = SendMessage(hTab, TCM_ADJUSTRECT, TRUE, 0);
|
||||
expect(-1, r);
|
||||
}
|
||||
|
||||
static void test_insert_focus(HWND parent_wnd)
|
||||
{
|
||||
HWND hTab;
|
||||
|
@ -1170,8 +1206,13 @@ START_TEST(tab)
|
|||
parent_wnd = createParentWindow();
|
||||
ok(parent_wnd != NULL, "Failed to create parent window!\n");
|
||||
|
||||
/* Testing getters and setters with 5 tabs */
|
||||
test_getters_setters(parent_wnd, 5);
|
||||
test_curfocus(parent_wnd, 5);
|
||||
test_cursel(parent_wnd, 5);
|
||||
test_extendedstyle(parent_wnd, 5);
|
||||
test_unicodeformat(parent_wnd, 5);
|
||||
test_getset_item(parent_wnd, 5);
|
||||
test_getset_tooltips(parent_wnd, 5);
|
||||
test_misc(parent_wnd, 5);
|
||||
|
||||
test_adjustrect(parent_wnd);
|
||||
|
||||
|
|
Loading…
Reference in New Issue