diff --git a/dlls/comctl32/tests/tab.c b/dlls/comctl32/tests/tab.c index bab747a917c..6061507ef29 100644 --- a/dlls/comctl32/tests/tab.c +++ b/dlls/comctl32/tests/tab.c @@ -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);