1 /*
2  * PROJECT:         ReactOS api tests
3  * LICENSE:         GPL - See COPYING in the top level directory
4  * PURPOSE:         Test for AddFontResource
5  * PROGRAMMERS:     Timo Kreuzer
6  */
7 
8 #include "precomp.h"
9 
10 #define COUNT 26
11 
12 void Test_AddFontResourceA()
13 {
14     CHAR szFileNameA[MAX_PATH];
15     CHAR szFileNameFont1A[MAX_PATH];
16     CHAR szFileNameFont2A[MAX_PATH];
17     int result;
18 
19     GetWindowsDirectoryA(szFileNameA,MAX_PATH);
20 
21     memcpy(szFileNameFont1A,szFileNameA,MAX_PATH );
22     strcat(szFileNameFont1A, "\\bin\\testdata\\test.ttf");
23 
24     memcpy(szFileNameFont2A,szFileNameA,MAX_PATH );
25     strcat(szFileNameFont2A, "\\bin\\testdata\\test.otf");
26 
27     RtlZeroMemory(szFileNameA,MAX_PATH);
28 
29     /*
30      * Start testing Ansi version
31      *
32      */
33 
34     /* Testing NULL pointer */
35     SetLastError(ERROR_SUCCESS);
36     result = AddFontResourceA(NULL);
37     ok(result == 0, "AddFontResourceA succeeded, result=%d\n", result);
38     ok(GetLastError() == ERROR_SUCCESS, "GetLastError()=%ld\n", GetLastError());
39 
40     /* Testing -1 pointer */
41     SetLastError(ERROR_SUCCESS);
42     result = AddFontResourceA((CHAR*)-1);
43     ok(result == 0, "AddFontResourceA succeeded, result=%d\n", result);
44     ok(GetLastError() == ERROR_SUCCESS, "GetLastError()=%ld\n", GetLastError());
45 
46     /* Testing address 1 pointer */
47     SetLastError(ERROR_SUCCESS);
48     result = AddFontResourceA((CHAR*)1);
49     ok(result == 0, "AddFontResourceA succeeded, result=%d\n", result);
50     ok(GetLastError() == ERROR_SUCCESS, "GetLastError()=%ld\n", GetLastError());
51 
52     /* Testing address empty string */
53     SetLastError(ERROR_SUCCESS);
54     result = AddFontResourceA("");
55     ok(result == 0, "AddFontResourceA succeeded, result=%d\n", result);
56     ok(GetLastError() == ERROR_INVALID_PARAMETER, "GetLastError()=%ld\n", GetLastError());
57 
58     /* Testing one ttf font */
59     SetLastError(ERROR_SUCCESS);
60     result = AddFontResourceA(szFileNameFont1A);
61     ok(result == 1, "AddFontResourceA(\"%s\") failed, result=%d\n", szFileNameFont1A, result);
62     ok(GetLastError() == ERROR_SUCCESS, "GetLastError()=%ld\n", GetLastError());
63 
64     /* Testing one otf font */
65     SetLastError(ERROR_SUCCESS);
66     result = AddFontResourceA(szFileNameFont2A);
67     ok(result == 1, "AddFontResourceA failed, result=%d\n", result);
68     ok(GetLastError() == ERROR_SUCCESS, "GetLastError()=%ld\n", GetLastError());
69 
70     /* Testing two fonts */
71     SetLastError(ERROR_SUCCESS);
72     sprintf(szFileNameA,"%s|%s",szFileNameFont1A, szFileNameFont2A);
73     result = AddFontResourceA(szFileNameA);
74     ok(result == 0, "AddFontResourceA succeeded, result=%d\n", result);
75     ok(GetLastError() == ERROR_SUCCESS, "GetLastError()=%ld\n", GetLastError());
76 
77     SetLastError(ERROR_SUCCESS);
78     sprintf(szFileNameA,"%s |%s",szFileNameFont1A, szFileNameFont2A);
79     result = AddFontResourceA(szFileNameA);
80     ok(result == 0, "AddFontResourceA succeeded, result=%d\n", result);
81     ok(GetLastError() == ERROR_SUCCESS, "GetLastError()=%ld\n", GetLastError());
82 
83     SetLastError(ERROR_SUCCESS);
84     sprintf(szFileNameA,"%s | %s",szFileNameFont1A, szFileNameFont2A);
85     result = AddFontResourceA(szFileNameA);
86     ok(result == 0, "AddFontResourceA succeeded, result=%d\n", result);
87     ok(GetLastError() == ERROR_FILE_NOT_FOUND, "GetLastError()=%ld\n", GetLastError());
88 
89 
90     GetCurrentDirectoryA(MAX_PATH, szFileNameA);
91     strcpy(szFileNameFont1A, szFileNameA);
92     strcat(szFileNameFont1A, "\\bin\\testdata\\test.pfm");
93 
94     strcpy(szFileNameFont2A, szFileNameA);
95     strcat(szFileNameFont2A, "\\bin\\testdata\\test.pfb");
96 
97     SetLastError(ERROR_SUCCESS);
98 
99     sprintf(szFileNameA,"%s|%s", szFileNameFont1A, szFileNameFont2A);
100     result = AddFontResourceA(szFileNameA);
101     ok(result == 1, "AddFontResourceA(\"%s|%s\") failed, result=%d\n",
102                     szFileNameFont1A, szFileNameFont2A, result);
103     ok(GetLastError() == ERROR_SUCCESS, "GetLastError()=%ld\n", GetLastError());
104 
105     sprintf(szFileNameA,"%s | %s", szFileNameFont1A, szFileNameFont2A);
106     result = AddFontResourceA(szFileNameA);
107     ok(result == 0, "AddFontResourceA(\"%s | %s\") succeeded, result=%d\n",
108                     szFileNameFont1A, szFileNameFont2A, result);
109     ok(GetLastError() == ERROR_FILE_NOT_FOUND, "GetLastError()=%ld\n", GetLastError());
110 
111     sprintf(szFileNameA,"%s|%s", szFileNameFont2A, szFileNameFont1A);
112     result = AddFontResourceA(szFileNameA);
113     ok(result == 0, "AddFontResourceA(\"%s|%s\") succeeded, result=%d\n",
114                     szFileNameFont2A, szFileNameFont1A, result);
115     ok(GetLastError() == ERROR_FILE_NOT_FOUND, "GetLastError()=%ld\n", GetLastError());
116 
117 
118 }
119 
120 START_TEST(AddFontResource)
121 {
122     Test_AddFontResourceA();
123 }
124 
125