mirror of
https://github.com/KuekHaoYang/KVideo.git
synced 2026-08-12 23:33:43 +08:00
77 lines
2.0 KiB
TypeScript
77 lines
2.0 KiB
TypeScript
import test from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import {
|
|
createAndroidPiPTransitionPlan,
|
|
shouldRestoreInlineAfterAndroidPiP,
|
|
shouldRollbackTemporaryWindowFullscreen,
|
|
} from '@/components/player/hooks/desktop/android-pip-utils';
|
|
|
|
test('inline playback enters temporary window fullscreen and restores inline after PiP closes', () => {
|
|
const plan = createAndroidPiPTransitionPlan('none');
|
|
|
|
assert.deepEqual(plan, {
|
|
enterTemporaryWindowFullscreen: true,
|
|
restoreInlineOnExit: true,
|
|
});
|
|
|
|
assert.equal(
|
|
shouldRestoreInlineAfterAndroidPiP({
|
|
enteredTemporaryWindowFullscreen: plan.enterTemporaryWindowFullscreen,
|
|
restoreInlineOnExit: plan.restoreInlineOnExit,
|
|
}, false),
|
|
true
|
|
);
|
|
});
|
|
|
|
test('existing page fullscreen stays in page fullscreen after PiP closes', () => {
|
|
const plan = createAndroidPiPTransitionPlan('window');
|
|
|
|
assert.deepEqual(plan, {
|
|
enterTemporaryWindowFullscreen: false,
|
|
restoreInlineOnExit: false,
|
|
});
|
|
|
|
assert.equal(
|
|
shouldRestoreInlineAfterAndroidPiP({
|
|
enteredTemporaryWindowFullscreen: plan.enterTemporaryWindowFullscreen,
|
|
restoreInlineOnExit: plan.restoreInlineOnExit,
|
|
}, false),
|
|
false
|
|
);
|
|
});
|
|
|
|
test('system fullscreen also restores inline after PiP closes', () => {
|
|
const plan = createAndroidPiPTransitionPlan('native');
|
|
|
|
assert.deepEqual(plan, {
|
|
enterTemporaryWindowFullscreen: true,
|
|
restoreInlineOnExit: true,
|
|
});
|
|
|
|
assert.equal(
|
|
shouldRestoreInlineAfterAndroidPiP({
|
|
enteredTemporaryWindowFullscreen: plan.enterTemporaryWindowFullscreen,
|
|
restoreInlineOnExit: plan.restoreInlineOnExit,
|
|
}, false),
|
|
true
|
|
);
|
|
});
|
|
|
|
test('temporary page fullscreen rolls back when Android PiP entry fails', () => {
|
|
assert.equal(
|
|
shouldRollbackTemporaryWindowFullscreen({
|
|
enteredTemporaryWindowFullscreen: true,
|
|
restoreInlineOnExit: true,
|
|
}),
|
|
true
|
|
);
|
|
|
|
assert.equal(
|
|
shouldRollbackTemporaryWindowFullscreen({
|
|
enteredTemporaryWindowFullscreen: false,
|
|
restoreInlineOnExit: false,
|
|
}),
|
|
false
|
|
);
|
|
});
|