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