| /* Unit test suite for edit control. |
| * |
| * Copyright 2004 Vitaliy Margolen |
| * |
| * This library is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| */ |
| |
| #include <assert.h> |
| #include <windows.h> |
| #include <commctrl.h> |
| |
| #include "wine/test.h" |
| |
| HWND create_editcontrol (DWORD style) |
| { |
| HWND handle; |
| |
| handle = CreateWindow("EDIT", |
| NULL, |
| ES_AUTOHSCROLL | ES_AUTOVSCROLL | style, |
| 10, 10, 300, 300, |
| NULL, NULL, NULL, NULL); |
| assert (handle); |
| if (winetest_interactive) |
| ShowWindow (handle, SW_SHOW); |
| return handle; |
| } |
| |
| static LONG get_edit_style (HWND hwnd) |
| { |
| return GetWindowLongA( hwnd, GWL_STYLE ) & ( |
| ES_LEFT | |
| /* FIXME: not implemented |
| ES_CENTER | |
| ES_RIGHT | |
| ES_OEMCONVERT | |
| */ |
| ES_MULTILINE | |
| ES_UPPERCASE | |
| ES_LOWERCASE | |
| ES_PASSWORD | |
| ES_AUTOVSCROLL | |
| ES_AUTOHSCROLL | |
| ES_NOHIDESEL | |
| ES_COMBO | |
| ES_READONLY | |
| ES_WANTRETURN | |
| ES_NUMBER |
| ); |
| } |
| |
| static void test_edit_control(void) |
| { |
| HWND hwEdit; |
| MSG msMessage; |
| int i; |
| LONG r; |
| |
| msMessage.message = WM_KEYDOWN; |
| |
| trace("EDIT: Single line\n"); |
| hwEdit = create_editcontrol(0); |
| r = get_edit_style(hwEdit); |
| ok(r == (ES_AUTOVSCROLL | ES_AUTOHSCROLL), "Wrong style expected 0xc0 got: 0x%lx\n", r); |
| for (i=0;i<65535;i++) |
| { |
| msMessage.wParam = i; |
| r = SendMessage(hwEdit, WM_GETDLGCODE, 0, (LPARAM) &msMessage); |
| ok(r == (DLGC_WANTCHARS | DLGC_HASSETSEL | DLGC_WANTARROWS), |
| "Expected DLGC_WANTCHARS | DLGC_HASSETSEL | DLGC_WANTARROWS got %lx\n", r); |
| } |
| DestroyWindow (hwEdit); |
| |
| trace("EDIT: Single line want returns\n"); |
| hwEdit = create_editcontrol(ES_WANTRETURN); |
| r = get_edit_style(hwEdit); |
| ok(r == (ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN), "Wrong style expected 0x10c0 got: 0x%lx\n", r); |
| for (i=0;i<65535;i++) |
| { |
| msMessage.wParam = i; |
| r = SendMessage(hwEdit, WM_GETDLGCODE, 0, (LPARAM) &msMessage); |
| ok(r == (DLGC_WANTCHARS | DLGC_HASSETSEL | DLGC_WANTARROWS), |
| "Expected DLGC_WANTCHARS | DLGC_HASSETSEL | DLGC_WANTARROWS got %lx\n", r); |
| } |
| DestroyWindow (hwEdit); |
| |
| trace("EDIT: Multiline line\n"); |
| hwEdit = create_editcontrol(ES_MULTILINE | WS_VSCROLL | ES_AUTOVSCROLL); |
| r = get_edit_style(hwEdit); |
| ok(r == (ES_AUTOHSCROLL | ES_AUTOVSCROLL | ES_MULTILINE), "Wrong style expected 0xc4 got: 0x%lx\n", r); |
| for (i=0;i<65535;i++) |
| { |
| msMessage.wParam = i; |
| r = SendMessage(hwEdit, WM_GETDLGCODE, 0, (LPARAM) &msMessage); |
| ok(r == (DLGC_WANTCHARS | DLGC_HASSETSEL | DLGC_WANTALLKEYS | DLGC_WANTARROWS), |
| "Expected DLGC_WANTCHARS | DLGC_HASSETSEL | DLGC_WANTALLKEYS | DLGC_WANTARROWS got %lx\n", r); |
| } |
| DestroyWindow (hwEdit); |
| |
| trace("EDIT: Multi line want returns\n"); |
| hwEdit = create_editcontrol(ES_MULTILINE | WS_VSCROLL | ES_AUTOVSCROLL | ES_WANTRETURN); |
| r = get_edit_style(hwEdit); |
| ok(r == (ES_WANTRETURN | ES_AUTOHSCROLL | ES_AUTOVSCROLL | ES_MULTILINE), "Wrong style expected 0x10c4 got: 0x%lx\n", r); |
| for (i=0;i<65535;i++) |
| { |
| msMessage.wParam = i; |
| r = SendMessage(hwEdit, WM_GETDLGCODE, 0, (LPARAM) &msMessage); |
| ok(r == (DLGC_WANTCHARS | DLGC_HASSETSEL | DLGC_WANTALLKEYS | DLGC_WANTARROWS), |
| "Expected DLGC_WANTCHARS | DLGC_HASSETSEL | DLGC_WANTALLKEYS | DLGC_WANTARROWS got %lx\n", r); |
| } |
| DestroyWindow (hwEdit); |
| } |
| |
| START_TEST(edit) |
| { |
| test_edit_control(); |
| } |