msi: Set all folders' source paths to the root directory if the source type is compre...
[wine] / dlls / winhttp / tests / winhttp.c
1 /*
2  * WinHTTP - tests
3  *
4  * Copyright 2008 Google (Zac Brown)
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19  */
20 #include <stdarg.h>
21 #include <stdlib.h>
22
23 #include <windef.h>
24 #include <winbase.h>
25 #include <winhttp.h>
26
27 #include "wine/test.h"
28
29 static const WCHAR test_useragent[] =
30     {'W','i','n','e',' ','R','e','g','r','e','s','s','i','o','n',' ','T','e','s','t',0};
31 static const WCHAR test_server[] = {'w','i','n','e','h','q','.','o','r','g',0};
32
33 static void test_OpenRequest (void)
34 {
35     BOOL ret;
36     HINTERNET session, request, connection;
37
38     session = WinHttpOpen(test_useragent, WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,
39         WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0);
40     todo_wine ok(session != NULL, "WinHttpOpen failed to open session.\n");
41
42     /* Test with a bad server name */
43     SetLastError(0xdeadbeef);
44     connection = WinHttpConnect(session, NULL, INTERNET_DEFAULT_HTTP_PORT, 0);
45     ok (connection == NULL, "WinHttpConnect succeeded in opening connection to NULL server argument.\n");
46     todo_wine ok(GetLastError() == ERROR_INVALID_PARAMETER,
47         "Expected ERROR_INVALID_PARAMETER, got %u.\n", GetLastError());
48
49     /* Test with a valid server name */
50     connection = WinHttpConnect (session, test_server, INTERNET_DEFAULT_HTTP_PORT, 0);
51     todo_wine ok(connection != NULL,
52         "WinHttpConnect failed to open a connection, error: %u.\n", GetLastError());
53
54     request = WinHttpOpenRequest(connection, NULL, NULL, NULL, WINHTTP_NO_REFERER,
55         WINHTTP_DEFAULT_ACCEPT_TYPES, 0);
56     if (request == NULL && GetLastError() == ERROR_WINHTTP_NAME_NOT_RESOLVED)
57     {
58         skip("Network unreachable, skipping.\n");
59         goto done;
60     }
61     todo_wine ok(request != NULL,
62         "WinHttpOpenrequest failed to open a request, error: %u.\n", GetLastError());
63
64     ret = WinHttpSendRequest(request, WINHTTP_NO_ADDITIONAL_HEADERS, 0, NULL, 0, 0, 0);
65     todo_wine ok(ret == TRUE, "WinHttpSendRequest failed: %u\n", GetLastError());
66     ret = WinHttpCloseHandle(request);
67     todo_wine ok(ret == TRUE, "WinHttpCloseHandle failed on closing request, got %d.\n", ret);
68
69  done:
70     ret = WinHttpCloseHandle(connection);
71     todo_wine ok(ret == TRUE, "WinHttpCloseHandle failed on closing connection, got %d.\n", ret);
72     ret = WinHttpCloseHandle(session);
73     todo_wine ok(ret == TRUE, "WinHttpCloseHandle failed on closing session, got %d.\n", ret);
74
75 }
76
77 START_TEST (winhttp)
78 {
79     test_OpenRequest();
80 }