112636162Sopenharmony_ci/*
212636162Sopenharmony_ci * Copyright (C) 2024 Huawei Device Co., Ltd.
312636162Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
412636162Sopenharmony_ci * you may not use this file except in compliance with the License.
512636162Sopenharmony_ci * You may obtain a copy of the License at
612636162Sopenharmony_ci *
712636162Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
812636162Sopenharmony_ci *
912636162Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1012636162Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1112636162Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212636162Sopenharmony_ci * See the License for the specific language governing permissions and
1312636162Sopenharmony_ci * limitations under the License.
1412636162Sopenharmony_ci */
1512636162Sopenharmony_ci
1612636162Sopenharmony_ciimport usb from '@ohos.usbManager'
1712636162Sopenharmony_ciimport deviceManager from '@ohos.driver.deviceManager'
1812636162Sopenharmony_ciimport { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'
1912636162Sopenharmony_ci
2012636162Sopenharmony_cidescribe("SystemApiJsTest", function () {
2112636162Sopenharmony_ci    const TAG = "[SystemApiJsTest]";
2212636162Sopenharmony_ci    const SYSTEMAPI_DENIED_CODE = 202;
2312636162Sopenharmony_ci    const TEST_DEVICE_ID = 0;
2412636162Sopenharmony_ci    const TEST_DRIVER_UID = 'testDriverUid'
2512636162Sopenharmony_ci    const TEST_FUNCTION = () => {
2612636162Sopenharmony_ci        console.info("Test function is called");
2712636162Sopenharmony_ci    };
2812636162Sopenharmony_ci
2912636162Sopenharmony_ci    let deviceNum = 0;
3012636162Sopenharmony_ci    const isDeviceConnected = done => {
3112636162Sopenharmony_ci        if (deviceNum > 0) {
3212636162Sopenharmony_ci            console.info("Test USB device is connected");
3312636162Sopenharmony_ci            return true;
3412636162Sopenharmony_ci        }
3512636162Sopenharmony_ci        console.info("Test USB device is not connected");
3612636162Sopenharmony_ci        expect(true).assertTrue();
3712636162Sopenharmony_ci        if (typeof(done) === 'function') {
3812636162Sopenharmony_ci            done();
3912636162Sopenharmony_ci        }
4012636162Sopenharmony_ci        return false;
4112636162Sopenharmony_ci    }
4212636162Sopenharmony_ci
4312636162Sopenharmony_ci    beforeAll(function () {
4412636162Sopenharmony_ci        console.info('beforeAll called');
4512636162Sopenharmony_ci        try {
4612636162Sopenharmony_ci            const devicesList = usb.getDevices();
4712636162Sopenharmony_ci            if (Array.isArray(devicesList)) {
4812636162Sopenharmony_ci                deviceNum = devicesList.length;
4912636162Sopenharmony_ci            }
5012636162Sopenharmony_ci        } catch (err) {
5112636162Sopenharmony_ci            console.error(TAG, `getDevices failed, message is ${err.message}`);
5212636162Sopenharmony_ci        }
5312636162Sopenharmony_ci    })
5412636162Sopenharmony_ci
5512636162Sopenharmony_ci    afterAll(function () {
5612636162Sopenharmony_ci        console.info('AfterAll called');
5712636162Sopenharmony_ci    })
5812636162Sopenharmony_ci
5912636162Sopenharmony_ci    /*
6012636162Sopenharmony_ci     * @tc.name:SystemApi_queryDeviceInfo_001
6112636162Sopenharmony_ci     * @tc.desc:verify SystemApi of queryDeviceInfo
6212636162Sopenharmony_ci     * @tc.type: FUNC
6312636162Sopenharmony_ci     */
6412636162Sopenharmony_ci    it("SystemApi_queryDeviceInfo_001", 0, done => {
6512636162Sopenharmony_ci        console.info('----------------------SystemApi_queryDeviceInfo_001---------------------------');
6612636162Sopenharmony_ci        if (!isDeviceConnected(done)) {
6712636162Sopenharmony_ci            return;
6812636162Sopenharmony_ci        }
6912636162Sopenharmony_ci        try {
7012636162Sopenharmony_ci            deviceManager.queryDeviceInfo(TEST_DEVICE_ID);
7112636162Sopenharmony_ci            expect(false).assertTrue();
7212636162Sopenharmony_ci            done();
7312636162Sopenharmony_ci        } catch (err) {
7412636162Sopenharmony_ci            expect(err.code).assertEqual(SYSTEMAPI_DENIED_CODE);
7512636162Sopenharmony_ci            done();
7612636162Sopenharmony_ci        }
7712636162Sopenharmony_ci    });
7812636162Sopenharmony_ci
7912636162Sopenharmony_ci    /*
8012636162Sopenharmony_ci     * @tc.name:SystemApi_queryDriverInfo_001
8112636162Sopenharmony_ci     * @tc.desc:verify SystemApi of queryDriverInfo
8212636162Sopenharmony_ci     * @tc.type: FUNC
8312636162Sopenharmony_ci     */
8412636162Sopenharmony_ci    it("SystemApi_queryDriverInfo_001", 0, done => {
8512636162Sopenharmony_ci        console.info('----------------------SystemApi_queryDriverInfo_001---------------------------');
8612636162Sopenharmony_ci        if (!isDeviceConnected(done)) {
8712636162Sopenharmony_ci            return;
8812636162Sopenharmony_ci        }
8912636162Sopenharmony_ci        try {
9012636162Sopenharmony_ci            deviceManager.queryDriverInfo(TEST_DRIVER_UID);
9112636162Sopenharmony_ci            expect(false).assertTrue();
9212636162Sopenharmony_ci            done();
9312636162Sopenharmony_ci        } catch (err) {
9412636162Sopenharmony_ci            expect(err.code).assertEqual(SYSTEMAPI_DENIED_CODE);
9512636162Sopenharmony_ci            done();
9612636162Sopenharmony_ci        }
9712636162Sopenharmony_ci    });
9812636162Sopenharmony_ci});