mirror of
https://github.com/yume-chan/ya-webadb.git
synced 2025-10-03 01:39:21 +02:00
91 lines
2.9 KiB
TypeScript
91 lines
2.9 KiB
TypeScript
import * as assert from "node:assert";
|
|
import { describe, it } from "node:test";
|
|
|
|
import { ScrcpyControlMessageType } from "../../base/index.js";
|
|
|
|
import { ScrollController } from "./scroll-controller.js";
|
|
|
|
describe("ScrollController", () => {
|
|
it("should return undefined when scroll distance is less than 1", () => {
|
|
const controller = new ScrollController();
|
|
const message = controller.serializeScrollMessage({
|
|
type: ScrcpyControlMessageType.InjectScroll,
|
|
pointerX: 0,
|
|
pointerY: 0,
|
|
videoWidth: 0,
|
|
videoHeight: 0,
|
|
scrollX: 0.5,
|
|
scrollY: 0.5,
|
|
buttons: 0,
|
|
});
|
|
assert.strictEqual(message, undefined);
|
|
});
|
|
|
|
it("should return a message when scroll distance is greater than 1", () => {
|
|
const controller = new ScrollController();
|
|
const message = controller.serializeScrollMessage({
|
|
type: ScrcpyControlMessageType.InjectScroll,
|
|
pointerX: 0,
|
|
pointerY: 0,
|
|
videoWidth: 0,
|
|
videoHeight: 0,
|
|
scrollX: 1.5,
|
|
scrollY: 1.5,
|
|
buttons: 0,
|
|
});
|
|
assert.ok(message instanceof Uint8Array);
|
|
assert.strictEqual(message.byteLength, 21);
|
|
});
|
|
|
|
it("should return a message when accumulated scroll distance is greater than 1", () => {
|
|
const controller = new ScrollController();
|
|
controller.serializeScrollMessage({
|
|
type: ScrcpyControlMessageType.InjectScroll,
|
|
pointerX: 0,
|
|
pointerY: 0,
|
|
videoWidth: 0,
|
|
videoHeight: 0,
|
|
scrollX: 0.5,
|
|
scrollY: 0.5,
|
|
buttons: 0,
|
|
});
|
|
const message = controller.serializeScrollMessage({
|
|
type: ScrcpyControlMessageType.InjectScroll,
|
|
pointerX: 0,
|
|
pointerY: 0,
|
|
videoWidth: 0,
|
|
videoHeight: 0,
|
|
scrollX: 0.5,
|
|
scrollY: 0.5,
|
|
buttons: 0,
|
|
});
|
|
assert.ok(message instanceof Uint8Array);
|
|
assert.strictEqual(message.byteLength, 21);
|
|
});
|
|
|
|
it("should return a message when accumulated scroll distance is less than -1", () => {
|
|
const controller = new ScrollController();
|
|
controller.serializeScrollMessage({
|
|
type: ScrcpyControlMessageType.InjectScroll,
|
|
pointerX: 0,
|
|
pointerY: 0,
|
|
videoWidth: 0,
|
|
videoHeight: 0,
|
|
scrollX: -0.5,
|
|
scrollY: -0.5,
|
|
buttons: 0,
|
|
});
|
|
const message = controller.serializeScrollMessage({
|
|
type: ScrcpyControlMessageType.InjectScroll,
|
|
pointerX: 0,
|
|
pointerY: 0,
|
|
videoWidth: 0,
|
|
videoHeight: 0,
|
|
scrollX: -0.5,
|
|
scrollY: -0.5,
|
|
buttons: 0,
|
|
});
|
|
assert.ok(message instanceof Uint8Array);
|
|
assert.strictEqual(message.byteLength, 21);
|
|
});
|
|
});
|