mirror of
https://github.com/google/blockly.git
synced 2026-01-10 18:37:09 +01:00
* refactor: Remove checks for PointerEvent support. * refactor: Deprecate and remove calls to splitEventByTouches. * refactor: Deprecate and remove calls to setClientFromTouch(). * refactor: Use PointerEvent in place of Event/MouseEvent/TouchEvent/PseudoEvent. * refactor: Update references to mouse/touch events in code and documentation to reference pointer events. * refactor: Merge Gesture and TouchGesture * chore: clang-format changed files * refactor: Bind and expect PointerEvents instead of MouseEvents. * refactor: Rename TouchGesture to Gesture. * fix: Fix test failures. * chore: clang-format changed files. * fix: Fix errant _ from merging * refactor: Clean up dead code in browser_events.ts. * chore: Update version in deprecation notices to reflect release schedule * fix: Fixed a bug that caused the browser context menu to not be suppressed in Chrome. * fix: Re-export Gesture as TouchGesture for backwards compatibility. * refactor: Deprecate and remove uses of opt_noPreventDefault. * chore: Fix error message in gesture.ts. * chore: Removed obsolete todo.
84 lines
3.6 KiB
JavaScript
84 lines
3.6 KiB
JavaScript
/**
|
|
* @license
|
|
* Copyright 2022 Google LLC
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
goog.declareModuleId('Blockly.test.touch');
|
|
|
|
import {sharedTestSetup, sharedTestTeardown} from './test_helpers/setup_teardown.js';
|
|
|
|
suite('Touch', function() {
|
|
setup(function() {
|
|
sharedTestSetup.call(this);
|
|
});
|
|
|
|
teardown(function() {
|
|
Blockly.Touch.clearTouchIdentifier();
|
|
sharedTestTeardown.call(this);
|
|
});
|
|
|
|
suite('shouldHandleTouch', function() {
|
|
test('handles pointerdown event', function() {
|
|
const pointerEvent = new PointerEvent('pointerdown');
|
|
chai.assert.isTrue(Blockly.Touch.shouldHandleEvent(pointerEvent));
|
|
});
|
|
|
|
test('handles multiple pointerdown events', function() {
|
|
const pointerEvent1 = new PointerEvent('pointerdown');
|
|
const pointerEvent2 = new PointerEvent('pointerdown');
|
|
Blockly.Touch.shouldHandleEvent(pointerEvent1);
|
|
chai.assert.isTrue(Blockly.Touch.shouldHandleEvent(pointerEvent2));
|
|
});
|
|
|
|
test('does not handle pointerup if not tracking touch', function() {
|
|
const pointerEvent = new PointerEvent('pointerup');
|
|
chai.assert.isFalse(Blockly.Touch.shouldHandleEvent(pointerEvent));
|
|
});
|
|
|
|
test('handles pointerup if already tracking a touch', function() {
|
|
const pointerdown = new PointerEvent('pointerdown');
|
|
const pointerup = new PointerEvent('pointerup');
|
|
// Register the pointerdown event first
|
|
Blockly.Touch.shouldHandleEvent(pointerdown);
|
|
chai.assert.isTrue(Blockly.Touch.shouldHandleEvent(pointerup));
|
|
});
|
|
|
|
test('handles pointerdown if this is a new touch', function() {
|
|
const pointerdown = new PointerEvent('pointerdown', {pointerId: 1, pointerType: 'touch'});
|
|
chai.assert.isTrue(Blockly.Touch.shouldHandleEvent(pointerdown));
|
|
});
|
|
|
|
test('does not handle pointerdown if part of a different touch', function() {
|
|
const pointerdown1 = new PointerEvent('pointerdown', {pointerId: 1, pointerType: 'touch'});
|
|
const pointerdown2 = new PointerEvent('pointerdown', {pointerId: 2, pointerType: 'touch'});
|
|
Blockly.Touch.shouldHandleEvent(pointerdown1);
|
|
chai.assert.isFalse(Blockly.Touch.shouldHandleEvent(pointerdown2));
|
|
});
|
|
|
|
test('does not handle pointerup if not tracking touch', function() {
|
|
const pointerup = new PointerEvent('pointerup', {pointerId: 1, pointerType: 'touch'});
|
|
chai.assert.isFalse(Blockly.Touch.shouldHandleEvent(pointerup));
|
|
});
|
|
|
|
test('handles pointerup if part of existing touch', function() {
|
|
const pointerdown = new PointerEvent('pointerdown', {pointerId: 1, pointerType: 'touch'});
|
|
const pointerup = new PointerEvent('pointerdown', {pointerId: 1, pointerType: 'touch'});
|
|
Blockly.Touch.shouldHandleEvent(pointerdown);
|
|
chai.assert.isTrue(Blockly.Touch.shouldHandleEvent(pointerup));
|
|
});
|
|
});
|
|
|
|
suite('getTouchIdentifierFromEvent', function() {
|
|
test('is pointerId for mouse PointerEvents', function() {
|
|
const pointerdown = new PointerEvent('pointerdown', {pointerId: 7, pointerType: 'mouse'});
|
|
chai.assert.equal(Blockly.Touch.getTouchIdentifierFromEvent(pointerdown), 7);
|
|
});
|
|
|
|
test('is pointerId for touch PointerEvents', function() {
|
|
const pointerdown = new PointerEvent('pointerdown', {pointerId: 42, pointerType: 'touch'});
|
|
chai.assert.equal(Blockly.Touch.getTouchIdentifierFromEvent(pointerdown), 42);
|
|
});
|
|
});
|
|
});
|