forked from floraachy/ImageKnife
88 lines
3.9 KiB
Plaintext
88 lines
3.9 KiB
Plaintext
/*
|
|
* Copyright (C) 2024 Huawei Device Co., Ltd.
|
|
* Licensed under the Apache License, Version 2.0 (the 'License');
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an 'AS IS' BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium';
|
|
import { ImageKnifeOption, ImageKnifeRequest } from '@ohos/imageknife/Index';
|
|
import { DefaultJobQueue } from '@ohos/imageknife/src/main/ets/utils/DefaultJobQueue';
|
|
import { IJobQueue } from '@ohos/imageknife/src/main/ets/utils/IJobQueue';
|
|
import taskpool from '@ohos.taskpool';
|
|
import common from '@ohos.app.ability.common';
|
|
|
|
|
|
export default function DefaultJobQueueTest() {
|
|
|
|
describe('DefaultJobQueueTest', () => {
|
|
// Defines a test suite. Two parameters are supported: test suite name and test suite function.
|
|
beforeAll(() => {
|
|
// Presets an action, which is performed only once before all test cases of the test suite start.
|
|
// This API supports only one parameter: preset action function.
|
|
});
|
|
beforeEach(() => {
|
|
// Presets an action, which is performed before each unit test case starts.
|
|
// The number of execution times is the same as the number of test cases defined by **it**.
|
|
// This API supports only one parameter: preset action function.
|
|
});
|
|
afterEach(() => {
|
|
// Presets a clear action, which is performed after each unit test case ends.
|
|
// The number of execution times is the same as the number of test cases defined by **it**.
|
|
// This API supports only one parameter: clear action function.
|
|
});
|
|
afterAll(() => {
|
|
// Presets a clear action, which is performed after all test cases of the test suite end.
|
|
// This API supports only one parameter: clear action function.
|
|
});
|
|
|
|
it('testJob', 0, async () => {
|
|
let job: IJobQueue = new DefaultJobQueue()
|
|
job.add(makeRequest("medium1", getContext() as common.UIAbilityContext))
|
|
job.add(makeRequest("medium2", getContext() as common.UIAbilityContext, taskpool.Priority.MEDIUM))
|
|
job.add(makeRequest("medium3", getContext() as common.UIAbilityContext))
|
|
job.add(makeRequest("low1", getContext() as common.UIAbilityContext, taskpool.Priority.LOW))
|
|
job.add(makeRequest("high1", getContext() as common.UIAbilityContext, taskpool.Priority.HIGH))
|
|
job.add(makeRequest("low2", getContext() as common.UIAbilityContext, taskpool.Priority.LOW))
|
|
job.add(makeRequest("medium4", getContext() as common.UIAbilityContext))
|
|
|
|
expect(job.getQueueLength()).assertEqual(7)
|
|
expect(job.pop()!.imageKnifeOption.loadSrc).assertEqual("high1")
|
|
expect(job.pop()!.imageKnifeOption.loadSrc).assertEqual("medium4")
|
|
expect(job.pop()!.imageKnifeOption.loadSrc).assertEqual("medium3")
|
|
expect(job.pop()!.imageKnifeOption.loadSrc).assertEqual("medium2")
|
|
expect(job.pop()!.imageKnifeOption.loadSrc).assertEqual("medium1")
|
|
expect(job.pop()!.imageKnifeOption.loadSrc).assertEqual("low2")
|
|
expect(job.pop()!.imageKnifeOption.loadSrc).assertEqual("low1")
|
|
expect(job.pop()).assertEqual(undefined)
|
|
expect(job.getQueueLength()).assertEqual(0)
|
|
|
|
});
|
|
|
|
});
|
|
}
|
|
|
|
function makeRequest(src: string, context: common.UIAbilityContext, priority?: taskpool.Priority): ImageKnifeRequest {
|
|
let option: ImageKnifeOption = new ImageKnifeOption({
|
|
loadSrc: src,
|
|
priority: priority
|
|
})
|
|
return new ImageKnifeRequest(
|
|
option,
|
|
context,
|
|
0,
|
|
0,
|
|
0,
|
|
{
|
|
showPixelMap: async (version: number,pixelMap: PixelMap | string) => {
|
|
}
|
|
})
|
|
}
|