gdi32/tests: Add tests for AddFontResourceEx.
Kusanagi Kouichi
slash at ac.auone-net.jp
Tue Feb 21 05:14:36 CST 2012
Signed-off-by: Kusanagi Kouichi <slash at ac.auone-net.jp>
---
dlls/gdi32/tests/broken.sfd | 47 +++++++++++++++++++
dlls/gdi32/tests/broken.ttf | Bin 0 -> 1568 bytes
dlls/gdi32/tests/font.c | 103 ++++++++++++++++++++++++++++++++++++++++++
dlls/gdi32/tests/resource.rc | 4 ++
4 files changed, 154 insertions(+), 0 deletions(-)
create mode 100644 dlls/gdi32/tests/broken.sfd
create mode 100644 dlls/gdi32/tests/broken.ttf
diff --git a/dlls/gdi32/tests/broken.sfd b/dlls/gdi32/tests/broken.sfd
new file mode 100644
index 0000000..fc37640
--- /dev/null
+++ b/dlls/gdi32/tests/broken.sfd
@@ -0,0 +1,47 @@
+SplineFontDB: 3.0
+FontName: Untitled1
+FullName: Untitled1
+FamilyName: Untitled1
+Weight: Medium
+Copyright: Created by ,,, with FontForge 2.0 (http://fontforge.sf.net)
+UComments: "2012-2-19: Created."
+Version: 001.000
+ItalicAngle: 0
+UnderlinePosition: -100
+UnderlineWidth: 50
+Ascent: 800
+Descent: 200
+LayerCount: 2
+Layer: 0 0 "Back" 1
+Layer: 1 0 "Fore" 0
+XUID: [1021 1007 977725166 1085761]
+OS2Version: 0
+OS2_WeightWidthSlopeOnly: 0
+OS2_UseTypoMetrics: 1
+CreationTime: 1329639742
+ModificationTime: 1329639742
+OS2TypoAscent: 0
+OS2TypoAOffset: 1
+OS2TypoDescent: 0
+OS2TypoDOffset: 1
+OS2TypoLinegap: 0
+OS2WinAscent: 0
+OS2WinAOffset: 1
+OS2WinDescent: 0
+OS2WinDOffset: 1
+HheadAscent: 0
+HheadAOffset: 1
+HheadDescent: 0
+HheadDOffset: 1
+OS2Vendor: 'PfEd'
+DEI: 91125
+Encoding: ISO8859-1
+UnicodeInterp: none
+NameList: Adobe Glyph List
+DisplaySize: -24
+AntiAlias: 1
+FitToEm: 1
+OnlyBitmaps: 1
+BeginChars: 256 0
+EndChars
+EndSplineFont
diff --git a/dlls/gdi32/tests/broken.ttf b/dlls/gdi32/tests/broken.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..1faae7d30e14a9ca6a315429799fc012d5606568
GIT binary patch
literal 1568
zcmds1&ubGw7=5$5NgHg{iU$upO#Fdb(#<9n(HKQ2Mi7dkwNx)=Z8kq3zev`$xe4My
z at vP{@lOP at n4IUJvco3?1Qx6^#db5|_6c1M7o5>n2qJMxh%zp2^`R3bizMUNi0E4&+
z6K67+$%*V#asdciREJNWizm;2%%%V_O`e^pxOEJgx5-~{q-JJ)iKx*67qeLfw^{FW
z6bY at 9_ZP~o{Lu%uk8ys0e6r}dxvvMq--thO94u0>BoV}RK6V!?{=D%NQSv9`1LfL`
zixEt6y~?M*;?CD`5{Ef|h+J0PidVgV=Pc*5fH7OIHT}+YB>DdLoZktxH;%W_hwm<J
zNq at m6bCn8S=iQ~ARc{+H?veMyP%0bOXyu|JosJmMkresWRBW at iMy(Xu>o{!fWQot>
zGeV4X(|AVZR at aIZBm}(;gmuxh?}o>j{D~Z%vyL!j=MXOHOmt2?Hwhuis!o(Aw5npM
zF&t!ifJ|jL3=2DGjqcu5R1P%*5&jiaWz_XhGeOf{KgoY<_4(x~Q{B*KPn`x6eXth=
z;^}sug|*~jIP at XiHVr~7no15Sx!o5Q>*+Sjx0W0miVp1^8`>2Wk=5m8<KFjt)R<Of
z+l+<as{ltZA7Ft9UIv(l0V at GEu}6#r*g`~90vy6taW}wW>PzYiTM@>e<>+F8ZFn4D
z0|R&yU=yeCDZm!Ci3<S^L5jHmhp9ipI2!Qa!sjywiOXp58Pi>24kgYMsbo+?l~~yZ
z3iOuz?`$}<`{?1b*O5Y;Js<cg+x4~4q-ryQN5B2Rc*ApjFDEazWGohwb0xnhGqtLp
zsWl3oOxljzSM>dQDjv^M%`4Sz=IyHIbMbkdiOQ_3vrbT|`X#^Y<p?LVR>BojNW5I>
z3hlqrPjL%>hLqflM1q&kC^xExL&mFSW11=1d$ml-#NpB8Xwpg0?azq6CppC=8!Spm
zmr63WimuA3x&)@YMzd6_O2<jqj^j}Icfj7?+_|Qb{A&}u4Z3$1U0&U&v0xkT#~&66
B*CGG_
literal 0
HcmV?d00001
diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c
index d004cf4..af88a00 100644
--- a/dlls/gdi32/tests/font.c
+++ b/dlls/gdi32/tests/font.c
@@ -4223,6 +4223,108 @@ static void test_east_asian_font_selection(void)
ReleaseDC(NULL, hdc);
}
+static void test_AddFontResourceEx(void)
+{
+ char ttf_name[MAX_PATH];
+ int num;
+ BOOL ret;
+
+ if (!pAddFontResourceExA || !pRemoveFontResourceExA)
+ {
+ win_skip("AddFontResourceExA or RemoveFontResourceExA is not available on this platform\n");
+ return;
+ }
+
+ if (!write_ttf_file("broken.ttf", ttf_name))
+ {
+ skip("Failed to create ttf file for testing\n");
+ }
+ else
+ {
+ num = pAddFontResourceExA(ttf_name, FR_PRIVATE, 0);
+ todo_wine
+ ok(num == 0, "AddFontResourceExA should fail if a font is broken\n");
+ if (num)
+ {
+ ret = pRemoveFontResourceExA(ttf_name, FR_PRIVATE, 0);
+ ok(ret, "RemoveFontResourceEx() error %d\n", GetLastError());
+ }
+ DeleteFile(ttf_name);
+ }
+
+ num = pAddFontResourceExA("Tahoma.ttf", 0, 0);
+ todo_wine
+ ok(num == 1, "AddFontResourceEx() error %d\n", GetLastError());
+ ret = pRemoveFontResourceExA("Tahoma.ttf", 0, 0);
+ ok(ret, "RemoveFontResourceEx() error %d\n", GetLastError());
+
+ num = pAddFontResourceExA("Tahoma.ttf", FR_PRIVATE, 0);
+ todo_wine
+ ok(num == 1, "AddFontResourceEx() error %d\n", GetLastError());
+ ret = pRemoveFontResourceExA("Tahoma.ttf", FR_PRIVATE, 0);
+ ok(ret, "RemoveFontResourceEx() error %d\n", GetLastError());
+
+ num = pAddFontResourceExA("Tahoma.ttf", FR_NOT_ENUM, 0);
+ todo_wine
+ ok(num == 1, "AddFontResourceEx() error %d\n", GetLastError());
+ ok(is_truetype_font_installed("Tahoma"), "Tahoma was not emumerated\n");
+ ret = pRemoveFontResourceExA("Tahoma.ttf", FR_NOT_ENUM, 0);
+ ok(ret, "RemoveFontResourceEx() error %d\n", GetLastError());
+
+ num = pAddFontResourceExA("Tahoma.ttf", FR_PRIVATE | FR_NOT_ENUM, 0);
+ todo_wine
+ ok(num == 1, "AddFontResourceEx() error %d\n", GetLastError());
+ ok(is_truetype_font_installed("Tahoma"), "Tahoma was not emumerated\n");
+ ret = pRemoveFontResourceExA("Tahoma.ttf", FR_PRIVATE | FR_NOT_ENUM, 0);
+ ok(ret, "RemoveFontResourceEx() error %d\n", GetLastError());
+
+ /* skip rest of tests until RemoveFontResourceEx is implemented */
+ return;
+
+ if (!write_ttf_file("wine_test.ttf", ttf_name))
+ {
+ skip("Failed to create ttf file for testing\n");
+ }
+ else
+ {
+ num = pAddFontResourceExA(ttf_name, FR_NOT_ENUM, 0);
+ ok(num == 1, "AddFontResourceEx() error %d\n", GetLastError());
+
+ todo_wine
+ ok(!is_truetype_font_installed("wine_test"), "wine_test was enumerated\n");
+
+ num = pAddFontResourceExA(ttf_name, 0, 0);
+ ok(num == 1, "AddFontResourceEx() error %d\n", GetLastError());
+
+ ok(is_truetype_font_installed("wine_test"), "wine_test was not enumerated\n");
+
+ num = pAddFontResourceExA(ttf_name, FR_PRIVATE | FR_NOT_ENUM, 0);
+ ok(num == 1, "AddFontResourceEx() error %d\n", GetLastError());
+
+ ok(is_truetype_font_installed("wine_test"), "wine_test was not enumerated\n");
+
+ ret = pRemoveFontResourceExA(ttf_name, FR_PRIVATE | FR_NOT_ENUM, 0);
+ ok(ret, "RemoveFontResourceEx() error %d\n", GetLastError());
+
+ ok(is_truetype_font_installed("wine_test"), "wine_test was not enumerated\n");
+
+ ret = pRemoveFontResourceExA(ttf_name, 0, 0);
+ ok(ret, "RemoveFontResourceEx() error %d\n", GetLastError());
+
+ todo_wine
+ ok(!is_truetype_font_installed("wine_test"), "wine_test was enumerated\n");
+
+ ret = pRemoveFontResourceExA(ttf_name, FR_NOT_ENUM, 0);
+ ok(ret, "RemoveFontResourceEx() error %d\n", GetLastError());
+
+ ret = pRemoveFontResourceExA(ttf_name, 0, 0);
+ todo_wine
+ ok(!ret, "A not added font was removed\n");
+
+ DeleteFile(ttf_name);
+ }
+}
+
START_TEST(font)
{
init();
@@ -4281,5 +4383,6 @@ START_TEST(font)
* is properly implemented.
*/
test_vertical_font();
+ test_AddFontResourceEx();
test_CreateScalableFontResource();
}
diff --git a/dlls/gdi32/tests/resource.rc b/dlls/gdi32/tests/resource.rc
index 34a3cdd..4ef0af9 100644
--- a/dlls/gdi32/tests/resource.rc
+++ b/dlls/gdi32/tests/resource.rc
@@ -26,3 +26,7 @@ wine_test.ttf RCDATA wine_test.ttf
/* @makedep: vertical.ttf */
vertical.ttf RCDATA vertical.ttf
+
+
+/* @makedep: broken.ttf */
+broken.ttf RCDATA broken.ttf
--
1.7.9.1
More information about the wine-patches
mailing list