1 /* 2 * PROJECT: ReactOS api tests 3 * LICENSE: LGPL-2.0-or-later (https://spdx.org/licenses/LGPL-2.0-or-later) 4 * PURPOSE: Tests for LCMapString 5 * COPYRIGHT: Copyright 2024 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com) 6 */ 7 8 #include "precomp.h" 9 10 #undef ok_wstr_ 11 12 static void 13 ok_wstr_(const char *file, int line, LPCWSTR x, LPCWSTR y) 14 { 15 char buf1[100], buf2[100]; 16 lstrcpynA(buf1, wine_dbgstr_w(x), _countof(buf1)); 17 lstrcpynA(buf2, wine_dbgstr_w(y), _countof(buf2)); 18 ok_(file, line)(wcscmp(x, y) == 0, "Wrong string. Expected %s, got %s\n", buf2, buf1); 19 } 20 21 #undef ok_wstr 22 #define ok_wstr(x, y) ok_wstr_(__FILE__, __LINE__, x, y) 23 24 // "ABab12ABab12あアばバパ万萬" in UTF-16 25 static const WCHAR c_target[] = 26 L"ABab12\xff21\xff22\xff41\xff42\xff11\xff12\x3042\x30a2\x3070\x30d0\xff8a\xff9f\x4e07\x842c"; 27 28 static void TEST_LCMapStringW(void) 29 { 30 WCHAR results[100]; 31 32 LCMapStringW(0, LCMAP_FULLWIDTH, c_target, -1, results, _countof(results)); 33 ok_wstr(results, L"\xff21\xff22\xff41\xff42\xff11\xff12\xff21\xff22\xff41\xff42\xff11\xff12\x3042\x30a2\x3070\x30d0\x30d1\x4e07\x842c"); 34 35 LCMapStringW(0, LCMAP_HALFWIDTH, c_target, -1, results, _countof(results)); 36 ok_wstr(results, L"ABab12ABab12\x3042\xff71\x3070\xff8a\xff9e\xff8a\xff9f\x4e07\x842c"); 37 38 LCMapStringW(0, LCMAP_HIRAGANA, c_target, -1, results, _countof(results)); 39 ok_wstr(results, L"ABab12\xff21\xff22\xff41\xff42\xff11\xff12\x3042\x3042\x3070\x3070\xff8a\xff9f\x4e07\x842c"); 40 41 LCMapStringW(0, LCMAP_KATAKANA, c_target, -1, results, _countof(results)); 42 ok_wstr(results, L"ABab12\xff21\xff22\xff41\xff42\xff11\xff12\x30a2\x30a2\x30d0\x30d0\xff8a\xff9f\x4e07\x842c"); 43 44 LCMapStringW(0, LCMAP_LOWERCASE, c_target, -1, results, _countof(results)); 45 ok_wstr(results, L"abab12\xff41\xff42\xff41\xff42\xff11\xff12\x3042\x30a2\x3070\x30d0\xff8a\xff9f\x4e07\x842c"); 46 47 LCMapStringW(0, LCMAP_UPPERCASE, c_target, -1, results, _countof(results)); 48 ok_wstr(results, L"ABAB12\xff21\xff22\xff21\xff22\xff11\xff12\x3042\x30a2\x3070\x30d0\xff8a\xff9f\x4e07\x842c"); 49 50 LCMapStringW(0, LCMAP_SIMPLIFIED_CHINESE, c_target, -1, results, _countof(results)); 51 ok_wstr(results, L"ABab12\xff21\xff22\xff41\xff42\xff11\xff12\x3042\x30a2\x3070\x30d0\xff8a\xff9f\x4e07\x4e07"); 52 53 LCMapStringW(0, LCMAP_TRADITIONAL_CHINESE, c_target, -1, results, _countof(results)); 54 ok_wstr(results, L"ABab12\xff21\xff22\xff41\xff42\xff11\xff12\x3042\x30a2\x3070\x30d0\xff8a\xff9f\x842c\x842c"); 55 } 56 57 START_TEST(LCMapString) 58 { 59 TEST_LCMapStringW(); 60 } 61