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:
Pierre Ossman 2017-05-04 13:26:39 +02:00
parent 38170d2442
commit 099eb856cf
2 changed files with 25 additions and 0 deletions

View File

@ -4,6 +4,13 @@ var expect = chai.expect;
import keysyms from '../core/input/keysymdef.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() {
"use strict";
@ -100,6 +107,7 @@ describe('Helpers', function() {
describe('getKey', 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');
});
it('should map legacy values', function() {
@ -201,6 +209,7 @@ describe('Helpers', function() {
describe('Numpad', 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: '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);
});
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(0xFFAC);
});

View File

@ -5,6 +5,13 @@ import { Keyboard } from '../core/input/devices.js';
import keysyms from '../core/input/keysymdef.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 */
describe('Key Event Handling', function() {
"use strict";
@ -23,6 +30,7 @@ describe('Key Event Handling', function() {
describe('Decode Keyboard Events', function() {
it('should decode keydown events', function(done) {
if (isIE() || isEdge()) this.skip();
var kbd = new Keyboard({
onKeyEvent: function(keysym, code, down) {
expect(keysym).to.be.equal(0x61);
@ -33,6 +41,7 @@ describe('Key Event Handling', function() {
kbd._handleKeyDown(keyevent('keydown', {code: 'KeyA', key: 'a'}));
});
it('should decode keyup events', function(done) {
if (isIE() || isEdge()) this.skip();
var calls = 0;
var kbd = new Keyboard({
onKeyEvent: function(keysym, code, down) {
@ -86,6 +95,9 @@ describe('Key Event Handling', 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() {
var kbd = new Keyboard({});
var evt = keyevent('keydown', {code: 'KeyA', key: 'a'});
@ -113,6 +125,9 @@ describe('Key Event Handling', 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) {
var kbd = new Keyboard({
onKeyEvent: function(keysym, code, down) {