[2/2] mlang: Add a test for IMultiLanguage2_IsCodePageInstallable.

Hans Leidekker hans at meelstraat.net
Wed Jul 1 04:36:34 CDT 2009


Passes on win2k3, vista and the win7 release candidate.

 -Hans

diff --git a/dlls/mlang/tests/mlang.c b/dlls/mlang/tests/mlang.c
index bd4fd6c..17cc38d 100644
--- a/dlls/mlang/tests/mlang.c
+++ b/dlls/mlang/tests/mlang.c
@@ -1957,6 +1957,56 @@ static void test_GetFontUnicodeRanges(IMLangFontLink2 *font_link)
     DeleteDC(hdc);
 }
 
+static void test_IsCodePageInstallable(IMultiLanguage2 *ml2)
+{
+    HRESULT hr;
+    UINT i, j;
+    static const UINT cp[] =
+    {
+        37, 437, 500, 708, 720, 737, 775, 850, 852,
+        855, 857, 858, 860, 861, 862, 863, 864, 865,
+        866, 869, 870, 874, 875, 932, 936, 949, 950,
+        1026, 1047, 1140, 1141, 1142, 1143, 1144, 1145,
+        1146, 1147, 1148, 1149, 1200, 1201, 1250, 1251,
+        1252, 1253, 1254, 1255, 1256, 1257, 1258, 1361,
+        10000, 10001, 10002, 10003, 10004, 10005, 10006,
+        10007, 10008, 10010, 10017, 10021, 10029, 10079,
+        10081, 10082, 20000, 20001, 20002, 20003, 20004,
+        20005, 20105, 20106, 20107, 20108, 20127, 20261,
+        20269, 20273, 20277, 20278, 20280, 20284, 20285,
+        20290, 20297, 20420, 20423, 20424, 20833, 20838,
+        20866, 20871, 20880, 20905, 20924, 20932, 20936,
+        20949, 21025, 21027, 21866, 28591, 28592, 28593,
+        28594, 28595, 28596, 28597, 28598, 28599, 28603,
+        28605, 29001, 38598, 50000, 50001, 50220, 50221,
+        50222, 50225, 50227, 50229, 50930, 50931, 50932,
+        50933, 50935, 50936, 50937, 50939, 50949, 50950,
+        51251, 51253, 51256, 51932, 51936, 51949, 52936,
+        54936, 57002, 57003, 57004, 57005, 57006, 57007,
+        57008, 57009, 57010, 57011, 65000, 65001
+    };
+
+    for (i = j = 0; i < 0xffff; i++)
+    {
+        if (j >= sizeof(cp)/sizeof(cp[0])) break;
+
+        hr = IMultiLanguage2_IsCodePageInstallable(ml2, i);
+        if (i == 29001 || /* win2k3 */
+            i == 50930 || i == 50931 || i == 50933 || i == 50935 || i == 50937 || i == 50939 /* vista */)
+        {
+            ok(hr == S_FALSE || hr == S_OK, "%u: expected S_FALSE or S_OK, got 0x%08x\n", i, hr);
+            j++;
+        }
+        else if (i == cp[j])
+        {
+            ok(hr == S_OK, "%u: expected S_OK, got 0x%08x\n", i, hr);
+            j++;
+        }
+        else
+            ok(hr == E_INVALIDARG, "%u: expected E_INVALIDARG, got 0x%08x\n", i, hr);
+    }
+}
+
 START_TEST(mlang)
 {
     IMultiLanguage  *iML = NULL;
@@ -2016,6 +2066,7 @@ START_TEST(mlang)
 
     test_multibyte_to_unicode_translations(iML2);
     test_IMultiLanguage2_ConvertStringFromUnicode(iML2);
+    test_IsCodePageInstallable(iML2);
 
     IMultiLanguage2_Release(iML2);
 



More information about the wine-patches mailing list