Module: wine Branch: master Commit: 3fe7ea127cf812beef496551d9887f951e420d77 URL: http://source.winehq.org/git/wine.git/?a=commit;h=3fe7ea127cf812beef496551d9...
Author: Huw Davies huw@codeweavers.com Date: Wed Sep 10 14:34:30 2008 +0100
inetcomm/tests: Add tests for IMimeInternational_GetCodePageCharset.
---
dlls/inetcomm/tests/mimeintl.c | 59 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 59 insertions(+), 0 deletions(-)
diff --git a/dlls/inetcomm/tests/mimeintl.c b/dlls/inetcomm/tests/mimeintl.c index eae871e..029798a 100644 --- a/dlls/inetcomm/tests/mimeintl.c +++ b/dlls/inetcomm/tests/mimeintl.c @@ -82,6 +82,53 @@ static HRESULT mlang_getcsetinfo(const char *charset, MIMECSETINFO *mlang_info) return hr; }
+static HRESULT mlang_getcodepageinfo(UINT cp, MIMECPINFO *mlang_cp_info) +{ + HRESULT hr; + IMultiLanguage *ml; + + hr = get_mlang(&ml); + + if(SUCCEEDED(hr)) + { + hr = IMultiLanguage_GetCodePageInfo(ml, cp, mlang_cp_info); + IMultiLanguage_Release(ml); + } + return hr; +} + +static HRESULT mlang_getcsetinfo_from_cp(UINT cp, CHARSETTYPE charset_type, MIMECSETINFO *mlang_info) +{ + MIMECPINFO mlang_cp_info; + WCHAR *charset_name; + HRESULT hr; + IMultiLanguage *ml; + + hr = mlang_getcodepageinfo(cp, &mlang_cp_info); + if(FAILED(hr)) return hr; + + switch(charset_type) + { + case CHARSET_BODY: + charset_name = mlang_cp_info.wszBodyCharset; + break; + case CHARSET_HEADER: + charset_name = mlang_cp_info.wszHeaderCharset; + break; + case CHARSET_WEB: + charset_name = mlang_cp_info.wszWebCharset; + break; + } + + hr = get_mlang(&ml); + + if(SUCCEEDED(hr)) + { + hr = IMultiLanguage_GetCharsetInfo(ml, charset_name, mlang_info); + IMultiLanguage_Release(ml); + } + return hr; +}
static void test_charset(void) { @@ -119,6 +166,18 @@ static void test_charset(void) ok(cs_info.hCharset == hcs_windows_1252, "hCharset doesn't match requested\n"); ok(!strcmp(cs_info.szName, "windows-1252"), "szName doesn't match requested\n");
+ hr = IMimeInternational_GetCodePageCharset(internat, 1252, CHARSET_BODY, &hcs); + ok(hr == S_OK, "got %08x\n", hr); + hr = IMimeInternational_GetCharsetInfo(internat, hcs, &cs_info); + ok(hr == S_OK, "got %08x\n", hr); + + hr = mlang_getcsetinfo_from_cp(1252, CHARSET_BODY, &mlang_cs_info); + ok(hr == S_OK, "got %08x\n", hr); + ok(cs_info.cpiWindows == mlang_cs_info.uiCodePage, "cpiWindows %d while mlang uiCodePage %d\n", + cs_info.cpiWindows, mlang_cs_info.uiCodePage); + ok(cs_info.cpiInternet == mlang_cs_info.uiInternetEncoding, "cpiInternet %d while mlang uiInternetEncoding %d\n", + cs_info.cpiInternet, mlang_cs_info.uiInternetEncoding); + IMimeInternational_Release(internat); }