Skip some keyboard tests on IE and Edge
IE and Edge has some broken behaviour for keyboard events that prevent the standard tests from running properly.
This commit is contained in:
parent
38170d2442
commit
099eb856cf
|
@ -4,6 +4,13 @@ var expect = chai.expect;
|
||||||
import keysyms from '../core/input/keysymdef.js';
|
import keysyms from '../core/input/keysymdef.js';
|
||||||
import * as KeyboardUtil from "../core/input/util.js";
|
import * as KeyboardUtil from "../core/input/util.js";
|
||||||
|
|
||||||
|
function isIE() {
|
||||||
|
return navigator && !!(/trident/i).exec(navigator.userAgent);
|
||||||
|
}
|
||||||
|
function isEdge() {
|
||||||
|
return navigator && !!(/edge/i).exec(navigator.userAgent);
|
||||||
|
}
|
||||||
|
|
||||||
describe('Helpers', function() {
|
describe('Helpers', function() {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
@ -100,6 +107,7 @@ describe('Helpers', function() {
|
||||||
|
|
||||||
describe('getKey', function() {
|
describe('getKey', function() {
|
||||||
it('should prefer key', function() {
|
it('should prefer key', function() {
|
||||||
|
if (isIE() || isEdge()) this.skip();
|
||||||
expect(KeyboardUtil.getKey({key: 'a', charCode: 'Š'.charCodeAt(), keyCode: 0x42, which: 0x43})).to.be.equal('a');
|
expect(KeyboardUtil.getKey({key: 'a', charCode: 'Š'.charCodeAt(), keyCode: 0x42, which: 0x43})).to.be.equal('a');
|
||||||
});
|
});
|
||||||
it('should map legacy values', function() {
|
it('should map legacy values', function() {
|
||||||
|
@ -201,6 +209,7 @@ describe('Helpers', function() {
|
||||||
|
|
||||||
describe('Numpad', function() {
|
describe('Numpad', function() {
|
||||||
it('should handle Numpad numbers', function() {
|
it('should handle Numpad numbers', function() {
|
||||||
|
if (isIE() || isEdge()) this.skip();
|
||||||
expect(KeyboardUtil.getKeysym({code: 'Digit5', key: '5', location: 0})).to.be.equal(0x0035);
|
expect(KeyboardUtil.getKeysym({code: 'Digit5', key: '5', location: 0})).to.be.equal(0x0035);
|
||||||
expect(KeyboardUtil.getKeysym({code: 'Numpad5', key: '5', location: 3})).to.be.equal(0xFFB5);
|
expect(KeyboardUtil.getKeysym({code: 'Numpad5', key: '5', location: 3})).to.be.equal(0xFFB5);
|
||||||
});
|
});
|
||||||
|
@ -211,6 +220,7 @@ describe('Helpers', function() {
|
||||||
expect(KeyboardUtil.getKeysym({code: 'NumpadDecimal', key: 'Delete', location: 3})).to.be.equal(0xFF9F);
|
expect(KeyboardUtil.getKeysym({code: 'NumpadDecimal', key: 'Delete', location: 3})).to.be.equal(0xFF9F);
|
||||||
});
|
});
|
||||||
it('should handle Numpad Decimal key', function() {
|
it('should handle Numpad Decimal key', function() {
|
||||||
|
if (isIE() || isEdge()) this.skip();
|
||||||
expect(KeyboardUtil.getKeysym({code: 'NumpadDecimal', key: '.', location: 3})).to.be.equal(0xFFAE);
|
expect(KeyboardUtil.getKeysym({code: 'NumpadDecimal', key: '.', location: 3})).to.be.equal(0xFFAE);
|
||||||
expect(KeyboardUtil.getKeysym({code: 'NumpadDecimal', key: ',', location: 3})).to.be.equal(0xFFAC);
|
expect(KeyboardUtil.getKeysym({code: 'NumpadDecimal', key: ',', location: 3})).to.be.equal(0xFFAC);
|
||||||
});
|
});
|
||||||
|
|
|
@ -5,6 +5,13 @@ import { Keyboard } from '../core/input/devices.js';
|
||||||
import keysyms from '../core/input/keysymdef.js';
|
import keysyms from '../core/input/keysymdef.js';
|
||||||
import * as KeyboardUtil from '../core/input/util.js';
|
import * as KeyboardUtil from '../core/input/util.js';
|
||||||
|
|
||||||
|
function isIE() {
|
||||||
|
return navigator && !!(/trident/i).exec(navigator.userAgent);
|
||||||
|
}
|
||||||
|
function isEdge() {
|
||||||
|
return navigator && !!(/edge/i).exec(navigator.userAgent);
|
||||||
|
}
|
||||||
|
|
||||||
/* jshint newcap: false, expr: true */
|
/* jshint newcap: false, expr: true */
|
||||||
describe('Key Event Handling', function() {
|
describe('Key Event Handling', function() {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
@ -23,6 +30,7 @@ describe('Key Event Handling', function() {
|
||||||
|
|
||||||
describe('Decode Keyboard Events', function() {
|
describe('Decode Keyboard Events', function() {
|
||||||
it('should decode keydown events', function(done) {
|
it('should decode keydown events', function(done) {
|
||||||
|
if (isIE() || isEdge()) this.skip();
|
||||||
var kbd = new Keyboard({
|
var kbd = new Keyboard({
|
||||||
onKeyEvent: function(keysym, code, down) {
|
onKeyEvent: function(keysym, code, down) {
|
||||||
expect(keysym).to.be.equal(0x61);
|
expect(keysym).to.be.equal(0x61);
|
||||||
|
@ -33,6 +41,7 @@ describe('Key Event Handling', function() {
|
||||||
kbd._handleKeyDown(keyevent('keydown', {code: 'KeyA', key: 'a'}));
|
kbd._handleKeyDown(keyevent('keydown', {code: 'KeyA', key: 'a'}));
|
||||||
});
|
});
|
||||||
it('should decode keyup events', function(done) {
|
it('should decode keyup events', function(done) {
|
||||||
|
if (isIE() || isEdge()) this.skip();
|
||||||
var calls = 0;
|
var calls = 0;
|
||||||
var kbd = new Keyboard({
|
var kbd = new Keyboard({
|
||||||
onKeyEvent: function(keysym, code, down) {
|
onKeyEvent: function(keysym, code, down) {
|
||||||
|
@ -86,6 +95,9 @@ describe('Key Event Handling', function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('suppress the right events at the right time', function() {
|
describe('suppress the right events at the right time', function() {
|
||||||
|
beforeEach(function () {
|
||||||
|
if (isIE() || isEdge()) this.skip();
|
||||||
|
});
|
||||||
it('should suppress anything with a valid key', function() {
|
it('should suppress anything with a valid key', function() {
|
||||||
var kbd = new Keyboard({});
|
var kbd = new Keyboard({});
|
||||||
var evt = keyevent('keydown', {code: 'KeyA', key: 'a'});
|
var evt = keyevent('keydown', {code: 'KeyA', key: 'a'});
|
||||||
|
@ -113,6 +125,9 @@ describe('Key Event Handling', function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Track Key State', function() {
|
describe('Track Key State', function() {
|
||||||
|
beforeEach(function () {
|
||||||
|
if (isIE() || isEdge()) this.skip();
|
||||||
|
});
|
||||||
it('should send release using the same keysym as the press', function(done) {
|
it('should send release using the same keysym as the press', function(done) {
|
||||||
var kbd = new Keyboard({
|
var kbd = new Keyboard({
|
||||||
onKeyEvent: function(keysym, code, down) {
|
onKeyEvent: function(keysym, code, down) {
|
||||||
|
|
Loading…
Reference in New Issue