Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
6eec5117
Commit
6eec5117
authored
May 29, 2009
by
Detlef Riekenberg
Committed by
Alexandre Julliard
Jun 01, 2009
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mlang/tests: Add tests for LcidToRfc1766.
parent
68e1735a
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
87 additions
and
2 deletions
+87
-2
mlang.c
dlls/mlang/mlang.c
+5
-0
mlang.c
dlls/mlang/tests/mlang.c
+82
-2
No files found.
dlls/mlang/mlang.c
View file @
6eec5117
...
...
@@ -4,6 +4,7 @@
* Copyright 2002 Lionel Ulmer
* Copyright 2003,2004 Mike McCormack
* Copyright 2004,2005 Dmitry Timoshkov
* Copyright 2009 Detlef Riekenberg
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
...
...
@@ -1195,6 +1196,8 @@ HRESULT WINAPI LcidToRfc1766A(
INT
nChar
)
{
TRACE
(
"%04x %p %u
\n
"
,
lcid
,
pszRfc1766
,
nChar
);
if
(
!
pszRfc1766
)
return
E_INVALIDARG
;
return
lcid_to_rfc1766A
(
lcid
,
pszRfc1766
,
nChar
);
}
...
...
@@ -1205,6 +1208,8 @@ HRESULT WINAPI LcidToRfc1766W(
INT
nChar
)
{
TRACE
(
"%04x %p %u
\n
"
,
lcid
,
pszRfc1766
,
nChar
);
if
(
!
pszRfc1766
)
return
E_INVALIDARG
;
return
lcid_to_rfc1766W
(
lcid
,
pszRfc1766
,
nChar
);
}
...
...
dlls/mlang/tests/mlang.c
View file @
6eec5117
...
...
@@ -2,6 +2,7 @@
* Unit test suite for MLANG APIs.
*
* Copyright 2004 Dmitry Timoshkov
* Copyright 2009 Detlef Riekenberg
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
...
...
@@ -54,18 +55,48 @@ typedef struct lcid_tag_table {
HRESULT
hr
;
}
lcid_table_entry
;
/* en, ar and zh use SUBLANG_NEUTRAL for the rfc1766 name without the country
all others suppress the country with SUBLANG_DEFAULT.
For 3 letter language codes, the rfc1766 is to small for the country */
static
const
lcid_table_entry
lcid_table
[]
=
{
{
"e"
,
-
1
,
E_FAIL
},
{
""
,
-
1
,
E_FAIL
},
{
"-"
,
-
1
,
E_FAIL
},
{
"e-"
,
-
1
,
E_FAIL
},
{
"en"
,
9
,
S_OK
},
/* only en is special (using PRIMARYLANGID) */
{
"ar"
,
1
,
S_OK
},
{
"zh"
,
4
,
S_OK
},
{
"de"
,
0x0407
,
S_OK
},
{
"de-ch"
,
0x0807
,
S_OK
},
{
"de-at"
,
0x0c07
,
S_OK
},
{
"de-lu"
,
0x1007
,
S_OK
},
{
"de-li"
,
0x1407
,
S_OK
},
{
"en"
,
9
,
S_OK
},
{
"en-gb"
,
0x809
,
S_OK
},
{
"en-GB"
,
0x809
,
S_OK
},
{
"EN-GB"
,
0x809
,
S_OK
},
{
"en-US"
,
0x409
,
S_OK
},
{
"en-us"
,
0x409
,
S_OK
}
{
"en-us"
,
0x409
,
S_OK
},
{
"fr"
,
0x040c
,
S_OK
},
{
"fr-be"
,
0x080c
,
S_OK
},
{
"fr-ca"
,
0x0c0c
,
S_OK
},
{
"fr-ch"
,
0x100c
,
S_OK
},
{
"fr-lu"
,
0x140c
,
S_OK
},
{
"fr-mc"
,
0x180c
,
S_OK
},
{
"it"
,
0x0410
,
S_OK
},
{
"it-ch"
,
0x0810
,
S_OK
},
{
"nl"
,
0x0413
,
S_OK
},
{
"nl-be"
,
0x0813
,
S_OK
},
{
"pl"
,
0x0415
,
S_OK
},
{
"ru"
,
0x0419
,
S_OK
},
{
"kok"
,
0x0457
,
S_OK
}
};
...
...
@@ -971,6 +1002,54 @@ static void test_GetRfc1766FromLcid(IMultiLanguage2 *iML2)
ok
(
hr
==
E_INVALIDARG
,
"got 0x%x (expected E_INVALIDARG)
\n
"
,
hr
);
}
static
void
test_LcidToRfc1766
(
void
)
{
CHAR
expected
[
MAX_RFC1766_NAME
];
CHAR
buffer
[
MAX_RFC1766_NAME
*
2
];
HRESULT
hr
;
DWORD
i
;
for
(
i
=
0
;
i
<
sizeof
(
lcid_table
)
/
sizeof
(
lcid_table
[
0
]);
i
++
)
{
memset
(
buffer
,
'#'
,
sizeof
(
buffer
)
-
1
);
buffer
[
sizeof
(
buffer
)
-
1
]
=
'\0'
;
hr
=
LcidToRfc1766A
(
lcid_table
[
i
].
lcid
,
buffer
,
MAX_RFC1766_NAME
);
ok
(
hr
==
lcid_table
[
i
].
hr
,
"#%02d: HRESULT 0x%x (expected 0x%x)
\n
"
,
i
,
hr
,
lcid_table
[
i
].
hr
);
if
(
hr
!=
S_OK
)
continue
;
LCMapStringA
(
LOCALE_USER_DEFAULT
,
LCMAP_LOWERCASE
,
lcid_table
[
i
].
rfc1766
,
lstrlenA
(
lcid_table
[
i
].
rfc1766
)
+
1
,
expected
,
MAX_RFC1766_NAME
);
ok
(
!
lstrcmpA
(
buffer
,
expected
),
"#%02d: got '%s' (expected '%s')
\n
"
,
i
,
buffer
,
expected
);
}
memset
(
buffer
,
'#'
,
sizeof
(
buffer
)
-
1
);
buffer
[
sizeof
(
buffer
)
-
1
]
=
'\0'
;
hr
=
LcidToRfc1766A
(
-
1
,
buffer
,
MAX_RFC1766_NAME
);
ok
(
hr
==
E_FAIL
,
"got 0x%08x and '%s' (expected E_FAIL)
\n
"
,
hr
,
buffer
);
hr
=
LcidToRfc1766A
(
LANG_ENGLISH
,
NULL
,
MAX_RFC1766_NAME
);
ok
(
hr
==
E_INVALIDARG
,
"got 0x%08x (expected E_INVALIDARG)
\n
"
,
hr
);
memset
(
buffer
,
'#'
,
sizeof
(
buffer
)
-
1
);
buffer
[
sizeof
(
buffer
)
-
1
]
=
'\0'
;
hr
=
LcidToRfc1766A
(
LANG_ENGLISH
,
buffer
,
-
1
);
ok
(
hr
==
E_INVALIDARG
,
"got 0x%08x and '%s' (expected E_INVALIDARG)
\n
"
,
hr
,
buffer
);
memset
(
buffer
,
'#'
,
sizeof
(
buffer
)
-
1
);
buffer
[
sizeof
(
buffer
)
-
1
]
=
'\0'
;
hr
=
LcidToRfc1766A
(
LANG_ENGLISH
,
buffer
,
0
);
ok
(
hr
==
E_INVALIDARG
,
"got 0x%08x and '%s' (expected E_INVALIDARG)
\n
"
,
hr
,
buffer
);
}
static
void
test_IMultiLanguage2_ConvertStringFromUnicode
(
IMultiLanguage2
*
iML2
)
{
CHAR
dest
[
MAX_PATH
];
...
...
@@ -1533,6 +1612,7 @@ START_TEST(mlang)
CoInitialize
(
NULL
);
test_Rfc1766ToLcid
();
test_LcidToRfc1766
();
ret
=
CoCreateInstance
(
&
CLSID_CMultiLanguage
,
NULL
,
CLSCTX_INPROC_SERVER
,
&
IID_IMultiLanguage2
,
(
void
**
)
&
iML2
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment