2 * PROJECT: ReactOS api tests
3 * LICENSE: LGPLv2.1+ - See COPYING.LIB in the top level directory
4 * PURPOSE: Test for Control_RunDLLW
5 * PROGRAMMER: Giannis Adamopoulos
14 void WINAPI
Control_RunDLLW(HWND hWnd
, HINSTANCE hInst
, LPCWSTR cmd
, DWORD nCmdShow
);
18 WCHAR g_wstrParams
[MAX_PATH
];
22 CPlApplet(HWND hwndCPl
,
39 CPLINFO
*CPlInfo
= (CPLINFO
*)lParam2
;
41 CPlInfo
->idIcon
= CPL_DYNAMIC_RES
;
42 CPlInfo
->idName
= CPL_DYNAMIC_RES
;
43 CPlInfo
->idInfo
= CPL_DYNAMIC_RES
;
48 LPNEWCPLINFOW pinfo
= (LPNEWCPLINFOW
)lParam2
;
50 memset(pinfo
, 0, sizeof(NEWCPLINFOW
));
51 pinfo
->dwSize
= sizeof(NEWCPLINFOW
);
52 pinfo
->hIcon
= LoadIcon(NULL
, IDI_APPLICATION
);
55 wcscpy(pinfo
->szName
, L
"name0");
56 wcscpy(pinfo
->szInfo
, L
"info0");
57 wcscpy(pinfo
->szHelpFile
, L
"help0");
61 wcscpy(pinfo
->szName
, L
"name1");
62 wcscpy(pinfo
->szInfo
, L
"info1");
63 wcscpy(pinfo
->szHelpFile
, L
"help1");
70 case CPL_STARTWPARMSW
:
72 ok(lParam2
!= NULL
, "Got NULL lParam2!\n");
74 wcscpy(g_wstrParams
, (LPCWSTR
)lParam2
);
82 #define MSG_NOT_CALLED -1
88 INT iStartParams
; /* MSG_NOT_CALLED when CPL_STARTWPARMS is not sent */
89 LPCWSTR params
; /* second param of CPL_STARTWPARMS */
90 INT iClick
; /* MSG_NOT_CALLED when CPL_DBLCLK is not sent */
93 struct param_test tests
[] =
95 {__LINE__
, L
"", MSG_NOT_CALLED
, L
"", 0},
96 {__LINE__
, L
",name0", MSG_NOT_CALLED
, L
"", 0},
97 {__LINE__
, L
",name1", MSG_NOT_CALLED
, L
"", 1},
98 {__LINE__
, L
",@0", MSG_NOT_CALLED
, L
"", 0},
99 {__LINE__
, L
",@1", MSG_NOT_CALLED
, L
"", 1},
100 {__LINE__
, L
",0", MSG_NOT_CALLED
, L
"", MSG_NOT_CALLED
},
101 {__LINE__
, L
",1", MSG_NOT_CALLED
, L
"", MSG_NOT_CALLED
},
102 {__LINE__
, L
",@name0", MSG_NOT_CALLED
, L
"", 0},
103 {__LINE__
, L
",@name1", MSG_NOT_CALLED
, L
"", 0},
104 {__LINE__
, L
" name0", MSG_NOT_CALLED
, L
"", 0},
105 {__LINE__
, L
" name1", MSG_NOT_CALLED
, L
"", 1},
106 {__LINE__
, L
" @0", MSG_NOT_CALLED
, L
"", 0},
107 {__LINE__
, L
" @1", MSG_NOT_CALLED
, L
"", 1},
108 {__LINE__
, L
" 0", MSG_NOT_CALLED
, L
"", MSG_NOT_CALLED
},
109 {__LINE__
, L
" 1", MSG_NOT_CALLED
, L
"", MSG_NOT_CALLED
},
110 {__LINE__
, L
" @name0", MSG_NOT_CALLED
, L
"", 0},
111 {__LINE__
, L
" @name1", MSG_NOT_CALLED
, L
"", 0},
112 {__LINE__
, L
"\"name0\"", MSG_NOT_CALLED
, L
"", MSG_NOT_CALLED
},
113 {__LINE__
, L
"\"name1\"", MSG_NOT_CALLED
, L
"", MSG_NOT_CALLED
},
114 {__LINE__
, L
",\"name0\"", MSG_NOT_CALLED
, L
"", 0},
115 {__LINE__
, L
",\"name1\"", MSG_NOT_CALLED
, L
"", 1},
116 {__LINE__
, L
"\",name0\"", MSG_NOT_CALLED
, L
"", MSG_NOT_CALLED
},
117 {__LINE__
, L
"\",name1\"", MSG_NOT_CALLED
, L
"", MSG_NOT_CALLED
},
118 {__LINE__
, L
",name0,@1", 0, L
"@1", 0},
119 {__LINE__
, L
",name1,@0", 1, L
"@0", 1},
120 {__LINE__
, L
",name0, ", 0, L
" ", 0},
121 {__LINE__
, L
",name1, ", 1, L
" ", 1},
122 {__LINE__
, L
",@0,@1", 0, L
"@1", 0},
123 {__LINE__
, L
",@1,@0", 1, L
"@0", 1},
124 {__LINE__
, L
",\"@0\",@1", 0, L
"@1", 0},
125 {__LINE__
, L
",\"@1\",@0", 1, L
"@0", 1},
126 {__LINE__
, L
",\"@0\",\"@1\"", 0, L
"\"@1\"", 0},
127 {__LINE__
, L
",\"@1\",\"@0\"", 1, L
"\"@0\"", 1},
128 {__LINE__
, L
",\"@0\",@1,2,3,4,5", 0, L
"@1,2,3,4,5", 0},
129 {__LINE__
, L
",\"@1\",@0,2,3,4,5", 1, L
"@0,2,3,4,5", 1},
130 {__LINE__
, L
",\"@0\",@1,2,\"3\",4,5", 0, L
"@1,2,\"3\",4,5", 0},
131 {__LINE__
, L
",\"@1\",@0,2,\"3\",4,5", 1, L
"@0,2,\"3\",4,5", 1},
132 {__LINE__
, L
",\"@0\", @1 , 2 , 3 , 4 , 5", 0, L
" @1 , 2 , 3 , 4 , 5", 0},
133 {__LINE__
, L
",\"@1\", @0 , 2 , 3 , 4 , 5", 1, L
" @0 , 2 , 3 , 4 , 5", 1},
134 {__LINE__
, L
",\"@0\", @1 , 2 , /3 , 4 , 5", 0, L
" @1 , 2 , /3 , 4 , 5", 0},
135 {__LINE__
, L
",\"@1\", @0 , 2 , /3 , 4 , 5", 1, L
" @0 , 2 , /3 , 4 , 5", 1},
136 {__LINE__
, L
",\"@0\", @1 , 2 , /3 , 4 , 5", 0, L
" @1 , 2 , /3 , 4 , 5", 0},
137 {__LINE__
, L
",\"@1\", @0 , 2 , /3 , 4 , 5", 1, L
" @0 , 2 , /3 , 4 , 5", 1},
141 START_TEST(Control_RunDLLW
)
143 WCHAR finename
[MAX_PATH
];
144 WCHAR buffer
[MAX_PATH
];
146 GetModuleFileNameW(NULL
, finename
, MAX_PATH
);
148 for (UINT i
= 0; i
< _countof(tests
); i
++)
150 swprintf(buffer
, L
"%s%s", finename
, tests
[i
].cmd
);
152 g_iClk
= MSG_NOT_CALLED
;
153 g_iParams
= MSG_NOT_CALLED
;
155 Control_RunDLLW( GetDesktopWindow (), 0, buffer
, 0);
156 ok (tests
[i
].iClick
== g_iClk
, "%d, CPL_DBLCLK: expected %d got %d\n", tests
[i
].srcLine
, tests
[i
].iClick
, g_iClk
);
157 ok (tests
[i
].iStartParams
== g_iParams
, "%d, CPL_STARTWPARMSW: expected %d got %d\n", tests
[i
].srcLine
, tests
[i
].iStartParams
, g_iParams
);
158 ok (wcscmp(tests
[i
].params
, g_wstrParams
) == 0, "%d, CPL_STARTWPARMSW: expected %S got %S\n", tests
[i
].srcLine
, tests
[i
].params
, g_wstrParams
);