• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2021 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15import I18n from '@ohos.i18n'
16import Intl from '@ohos.intl'
17import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from '@ohos/hypium'
18
19export default function LangTest() {
20describe('LangTest', function () {
21    console.log('*************start LangTest*************');
22
23    let initPreferredLang = I18n.getPreferredLanguageList();
24    let initLen = initPreferredLang.length;
25    let hour = I18n.is24HourClock();
26
27    /* *
28    * get the current preferred language list
29    */
30    function getCurrentPreferredLang(){
31        let value = I18n.getPreferredLanguageList();
32        return value;
33    }
34
35    /* *
36    * judge if the lang is in the preferred language list or not
37    */
38    function isContainLang(langList, lang){
39        let len = langList.length;
40        for (let i = 0; i < len; i++){
41            if(langList[i] == lang){
42                return true
43            }
44        }
45        return false
46    }
47
48    /* *
49    * execute this step before all testcases
50    */
51    beforeAll(function(){
52        console.log('step before all cases in lang.'
53        + ' 24hour: ' + I18n.is24HourClock()
54        + ' prelang: ' + I18n.getPreferredLanguageList()
55        + ' syslocale: ' + I18n.getSystemLocale());
56    })
57
58    /* *
59    * execute this step before every testcase
60    */
61    beforeEach(function(){
62        console.log('i18n_test_preferredlanguage_beforeEach ' + getCurrentPreferredLang());
63    })
64
65    /* *
66    * execute this step after every testcase
67    */
68    afterEach(function(){
69        let currLang = getCurrentPreferredLang();
70        console.log('i18n_test_preferredlanguage_afterEach ' + currLang);
71    })
72
73    /* *
74    * execute this step after all testcases
75    */
76    afterAll(function(){
77        console.log('step after all cases.'
78        + ' 24hour: ' + I18n.is24HourClock()
79        + ' prelang: ' + I18n.getPreferredLanguageList()
80        + ' syslocale: ' + I18n.getSystemLocale());
81    })
82
83    /* *
84    * @tc.number  SUB_GLOBAL_I18N_JS_CLOCK_0100
85    * @tc.name    test the is24HourClock interface
86    * @tc.desc    check the value of is24HourClock method
87    */
88    it('i18n_test_clock_0100', 0, function () {
89        console.log('i18n_test_clock_0100 ' + 'start');
90        let value = I18n.is24HourClock();
91        console.log('i18n_test_clock_0100 ' + value);
92        if(value)
93        {
94            expect(value).assertTrue();
95        }
96        else
97        {
98            expect(value).assertFalse();
99        }
100    })
101
102    /* *
103    * @tc.number  SUB_GLOBAL_I18N_JS_CLOCK_0120
104    * @tc.name    test the set24HourClock interface
105    * @tc.desc    check the value of set24HourClock method
106    */
107    it('i18n_test_clock_0120', 0, function () {
108        console.log('i18n_test_clock_0120 ' + 'start');
109        let value = I18n.is24HourClock();
110        console.log('i18n_test_clock_0120 ' + value);
111        if(value)
112        {
113            let hourclock = I18n.set24HourClock(false);
114            console.log('i18n_test_clock_0120 ' + hourclock);
115            hourclock = I18n.set24HourClock(true);
116            console.log('i18n_test_clock_0120 ' + hourclock);
117            expect(value).assertTrue();
118        }
119        else
120        {
121            let hourclock = I18n.set24HourClock(true);
122            console.log('i18n_test_clock_0120 ' + hourclock);
123            hourclock = I18n.set24HourClock(false);
124            console.log('i18n_test_clock_0120 ' + hourclock);
125            expect(value).assertFalse();
126        }
127    })
128
129    /* *
130    * @tc.number  SUB_GLOBAL_I18N_JS_PREFERREDLANGUAGE_0100
131    * @tc.name    test the getPreferredLanguageList interface with default value
132    * @tc.desc    check the value of getPreferredLanguageList method
133    */
134    it('i18n_test_preferredlanguage_0100', 0, function () {
135        console.log('i18n_test_preferredlanguage_0100 ' + 'start');
136        let value = I18n.getPreferredLanguageList();
137        console.log('i18n_test_preferredlanguage_0100 ' + value);
138        expect(value.length).assertLarger(0);
139    })
140
141    /* *
142    * @tc.number SUB_GLOBAL_I18N_JS_PREFERREDLANGUAGE_0120
143    * @tc.name test the addPreferredLanguage interface
144    * @tc.desc check the value of addPreferredLanguage method
145    */
146    it('i18n_test_preferredlanguage_0120', 0, function () {
147        console.log('i18n_test_preferredlanguage_0120 ' + 'start');
148        let list = I18n.getPreferredLanguageList();
149        console.log('i18n_test_preferredlanguage_0120 ' + list);
150        expect(list.length).assertLarger(0);
151        if(list[0] != 'zh-Hans-CN' && list[0] != 'zh-Hans'){
152            let value = I18n.addPreferredLanguage('zh-Hans-CN');
153            console.log('i18n_test_preferredlanguage_0120 ' + value);
154            expect(list.length > 0).assertTrue();
155        }
156        else{
157            let value = I18n.addPreferredLanguage('en-Latn-US');
158            console.log('i18n_test_preferredlanguage_0120 ' + value);
159            expect(list.length > 0).assertTrue();
160        }
161        console.log('i18n_test_preferredlanguage_0120 ' + I18n.getPreferredLanguageList());
162    })
163
164    /* *
165    * @tc.number SUB_GLOBAL_I18N_JS_PREFERREDLANGUAGE_0140
166    * @tc.name test the removePreferredLanguage interface
167    * @tc.desc check the value of removePreferredLanguage method
168    */
169    it('i18n_test_preferredlanguage_0140', 0, function () {
170        console.log('i18n_test_preferredlanguage_0140 ' + 'start');
171        let list = I18n.getPreferredLanguageList();
172        console.log('i18n_test_preferredlanguage_0140 ' + list);
173        expect(list.length).assertLarger(0);
174        if(list[1] == 'zh-Hans-CN'){
175            let value = I18n.removePreferredLanguage(1);
176            console.log('i18n_test_preferredlanguage_0140 ' + value);
177            expect(value).assertTrue();
178        }
179        console.log('i18n_test_preferredlanguage_0140 ' + I18n.getPreferredLanguageList());
180    })
181
182    /* *
183    * @tc.number  SUB_GLOBAL_I18N_JS_PREFERREDLANGUAGE_1000
184    * @tc.name    test the getFirstPreferredLanguage interface
185    * @tc.desc    check the value of getFirstPreferredLanguage method
186    */
187    it('i18n_test_preferredlanguage_1000', 0, function () {
188        console.log('i18n_test_preferredlanguage_1000 ' + 'start');
189        let value = I18n.getFirstPreferredLanguage();
190        console.log('i18n_test_preferredlanguage_1000 ' + value);
191        let list = I18n.getPreferredLanguageList();
192        console.log('i18n_test_preferredlanguage_1000 ' + list);
193        expect(list.length).assertLarger(0);
194        if(list[0] == 'zh-Hans'){
195            expect(value).assertEqual('zh-Hans');
196        }
197        else if(list[0] == 'en'){
198            expect(value).assertEqual('en');
199        }
200    })
201
202    /* *
203    * @tc.number  SUB_GLOBAL_INTL_JS_TRANSFER_0100
204    * @tc.name    transfer from lower to upper
205    * @tc.desc    check the transfer result
206    */
207    it('transfer_test_0100', 0, function () {
208        let date = 'hello';
209        let value = date.toLocaleUpperCase('zh-CN');
210        console.log('transfer_test_0100 ' + value);
211        expect(value).assertEqual('HELLO');
212    })
213
214    /* *
215    * @tc.number  SUB_GLOBAL_INTL_JS_TRANSFER_0200
216    * @tc.name    transfer from upper to lower
217    * @tc.desc    check the transfer result
218    */
219    it('transfer_test_0200', 0, function () {
220        let date = 'WORLD';
221        let value = date.toLocaleLowerCase('zh-CN');
222        console.log('transfer_test_0200 ' + value);
223        expect(value).assertEqual('world');
224    })
225
226    /* *
227    * @tc.number  SUB_GLOBAL_INTL_JS_TRANSFER_0300
228    * @tc.name    transfer to upper
229    * @tc.desc    check the transfer result
230    */
231    it('transfer_test_0300', 0, function () {
232        let date = 'My name is Jack.';
233        let value = date.toLocaleUpperCase('en-US');
234        console.log('transfer_test_0300 ' + value);
235        expect(value).assertEqual('MY NAME IS JACK.');
236    })
237
238    /* *
239    * @tc.number  SUB_GLOBAL_INTL_JS_TRANSFER_0400
240    * @tc.name    transfer to lower
241    * @tc.desc    check the transfer result
242    */
243    it('transfer_test_0400', 0, function () {
244        let date = 'The sky is in BLUE-STYLE!';
245        let value = date.toLocaleLowerCase('en-US');
246        console.log('transfer_test_0400 ' + value);
247        expect(value).assertEqual('the sky is in blue-style!');
248    })
249
250    console.log('*************end LangTest*************');
251})}
252