Skip to content

Commit

Permalink
Merge pull request #1299 from emberjs/remove-ie-workarounds
Browse files Browse the repository at this point in the history
Remove IE11 support code
  • Loading branch information
chriskrycho committed Dec 17, 2022
2 parents a051a3c + 63c143f commit 696ab83
Show file tree
Hide file tree
Showing 14 changed files with 15 additions and 125 deletions.
3 changes: 1 addition & 2 deletions addon-test-support/@ember/test-helpers/dom/find-all.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import getElements from './-get-elements';
import { toArray } from '../ie-11-polyfills';

// Derived, with modification, from the types for `querySelectorAll`. These
// would simply be defined as a tweaked re-export as `querySelector` is, but it
Expand Down Expand Up @@ -39,5 +38,5 @@ export default function findAll(selector: string): Element[] {
throw new Error('The `findAll` test helper only takes a single argument.');
}

return toArray(getElements(selector));
return Array.from(getElements(selector));
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import Target from './-target';
import { log } from '@ember/test-helpers/dom/-logging';
import isFormControl from './-is-form-control';
import { runHooks, registerHook } from '../-internal/helper-hooks';
import { find } from '../ie-11-polyfills';

registerHook(
'triggerKeyEvent',
Expand Down Expand Up @@ -157,9 +156,8 @@ function keyFromKeyCodeAndModifiers(
function keyCodeFromKey(key: string) {
let keys = Object.keys(keyFromKeyCode);
let keyCode =
find(keys, (keyCode: string) => keyFromKeyCode[Number(keyCode)] === key) ||
find(
keys,
keys.find((keyCode: string) => keyFromKeyCode[Number(keyCode)] === key) ||
keys.find(
(keyCode: string) => keyFromKeyCode[Number(keyCode)] === key.toLowerCase()
);

Expand Down
3 changes: 1 addition & 2 deletions addon-test-support/@ember/test-helpers/dom/wait-for.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import waitUntil from '../wait-until';
import getElement from './-get-element';
import getElements from './-get-elements';
import { toArray } from '../ie-11-polyfills';

export interface Options {
timeout?: number;
Expand Down Expand Up @@ -45,7 +44,7 @@ export default function waitFor(
callback = () => {
let elements = getElements(selector);
if (elements.length === count) {
return toArray(elements);
return Array.from(elements);
}
return;
};
Expand Down
36 changes: 0 additions & 36 deletions addon-test-support/@ember/test-helpers/ie-11-polyfills.ts

This file was deleted.

6 changes: 0 additions & 6 deletions tests/helpers/browser-detect.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
// `window.ActiveXObject` is "falsey" in IE11 (but not `undefined` or `false`)
// `"ActiveXObject" in window` returns `true` in all IE versions
// only IE11 will pass _both_ of these conditions
export const isIE11 = !window.ActiveXObject && 'ActiveXObject' in window;
export const isIE = 'ActiveXObject' in window;

export const isEdge = navigator.userAgent.indexOf('Edge') >= 0;

// Unlike Chrome, Firefox emits `selectionchange` events.
Expand Down
7 changes: 2 additions & 5 deletions tests/unit/dom/blur-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,13 @@ import {
_registerHook,
} from '@ember/test-helpers';
import { buildInstrumentedElement, insertElement } from '../../helpers/events';
import { isIE11, isEdge } from '../../helpers/browser-detect';
import { isEdge } from '../../helpers/browser-detect';
import hasEmberVersion from '@ember/test-helpers/has-ember-version';

let focusSteps = ['focus', 'focusin'];
let blurSteps = ['blur', 'focusout'];

if (isIE11) {
focusSteps = ['focusin', 'focus'];
blurSteps = ['focusout', 'blur'];
} else if (isEdge) {
if (isEdge) {
blurSteps = ['focusout', 'blur'];
}

Expand Down
5 changes: 0 additions & 5 deletions tests/unit/dom/click-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import {
instrumentElement,
insertElement,
} from '../../helpers/events';
import { isIE11 } from '../../helpers/browser-detect';
import hasEmberVersion from '@ember/test-helpers/has-ember-version';
import {
registerHooks,
Expand Down Expand Up @@ -185,10 +184,6 @@ module('DOM Helper: click', function (hooks) {
module('focusable element types', function () {
let clickSteps = ['mousedown', 'focus', 'focusin', 'mouseup', 'click'];

if (isIE11) {
clickSteps = ['mousedown', 'focusin', 'mouseup', 'click', 'focus'];
}

test('clicking a input via selector with context set', async function (assert) {
element = buildInstrumentedElement('input');

Expand Down
15 changes: 0 additions & 15 deletions tests/unit/dom/double-click-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import {
instrumentElement,
insertElement,
} from '../../helpers/events';
import { isIE11 } from '../../helpers/browser-detect';
import hasEmberVersion from '@ember/test-helpers/has-ember-version';
import {
registerHooks,
Expand Down Expand Up @@ -225,20 +224,6 @@ module('DOM Helper: doubleClick', function (hooks) {
'dblclick',
];

if (isIE11) {
clickSteps = [
'mousedown',
'focusin',
'mouseup',
'click',
'focus',
'mousedown',
'mouseup',
'click',
'dblclick',
];
}

test('double-clicking a input via selector with context set', async function (assert) {
element = buildInstrumentedElement('input');

Expand Down
6 changes: 2 additions & 4 deletions tests/unit/dom/fill-in-test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { module, test } from 'qunit';
import { fillIn, setupContext, teardownContext } from '@ember/test-helpers';
import { buildInstrumentedElement, insertElement } from '../../helpers/events';
import { isIE11, isFirefox } from '../../helpers/browser-detect';
import { isFirefox } from '../../helpers/browser-detect';
import hasEmberVersion from '@ember/test-helpers/has-ember-version';
import {
registerHooks,
Expand All @@ -11,9 +11,7 @@ import {

let clickSteps = ['focus', 'focusin', 'input', 'change'];

if (isIE11) {
clickSteps = ['focusin', 'input', 'change', 'focus'];
} else if (isFirefox) {
if (isFirefox) {
clickSteps.push('selectionchange');
}

Expand Down
7 changes: 2 additions & 5 deletions tests/unit/dom/focus-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,13 @@ import {
insertElement,
instrumentElement,
} from '../../helpers/events';
import { isIE11, isEdge } from '../../helpers/browser-detect';
import { isEdge } from '../../helpers/browser-detect';
import hasEmberVersion from '@ember/test-helpers/has-ember-version';

let focusSteps = ['focus', 'focusin'];
let blurSteps = ['blur', 'focusout'];

if (isIE11) {
focusSteps = ['focusin', 'focus'];
blurSteps = ['focusout', 'blur'];
} else if (isEdge) {
if (isEdge) {
blurSteps = ['focusout', 'blur'];
}

Expand Down
4 changes: 0 additions & 4 deletions tests/unit/dom/select-test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { module, test } from 'qunit';
import { select, setupContext, teardownContext } from '@ember/test-helpers';
import { buildInstrumentedElement, insertElement } from '../../helpers/events';
import { isIE11 } from '../../helpers/browser-detect';
import {
buildExpectedSteps,
registerHooks,
Expand All @@ -10,9 +9,6 @@ import {

let selectSteps = ['focus', 'focusin', 'input', 'change'];
let additionalSteps = ['input', 'change'];
if (isIE11) {
selectSteps = ['focusin', 'focus', 'input', 'change'];
}

module('DOM Helper: select', function (hooks) {
let context, element;
Expand Down
6 changes: 1 addition & 5 deletions tests/unit/dom/tab-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import {
insertElement,
instrumentElement,
} from '../../helpers/events';
import { isIE11, isEdge } from '../../helpers/browser-detect';
import { isEdge } from '../../helpers/browser-detect';
import hasEmberVersion from '@ember/test-helpers/has-ember-version';

let _focusSteps = ['focus', 'focusin'];
Expand Down Expand Up @@ -38,10 +38,6 @@ module('DOM Helper: tab', function (hooks) {
return;
}

if (isIE11) {
return;
}

let context, element, elements;

hooks.beforeEach(function () {
Expand Down
12 changes: 0 additions & 12 deletions tests/unit/dom/tap-test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { module, test } from 'qunit';
import { tap, setupContext, teardownContext } from '@ember/test-helpers';
import { buildInstrumentedElement, insertElement } from '../../helpers/events';
import { isIE11 } from '../../helpers/browser-detect';
import hasEmberVersion from '@ember/test-helpers/has-ember-version';
import {
registerHooks,
Expand Down Expand Up @@ -176,17 +175,6 @@ module('DOM Helper: tap', function (hooks) {
'click',
];

if (isIE11) {
tapSteps = [
'touchstart',
'touchend',
'mousedown',
'focusin',
'mouseup',
'click',
'focus',
];
}
test('tapping a input via selector with context set', async function (assert) {
element = buildInstrumentedElement('input');

Expand Down
24 changes: 4 additions & 20 deletions tests/unit/dom/type-in-test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { module, test } from 'qunit';
import { typeIn, setupContext, teardownContext } from '@ember/test-helpers';
import { buildInstrumentedElement, insertElement } from '../../helpers/events';
import { isIE11, isFirefox } from '../../helpers/browser-detect';
import { isFirefox } from '../../helpers/browser-detect';
import { debounce } from '@ember/runloop';
import { Promise } from 'rsvp';
import hasEmberVersion from '@ember/test-helpers/has-ember-version';
Expand Down Expand Up @@ -33,23 +33,7 @@ let expectedEvents = [
'change',
];

if (isIE11) {
expectedEvents = [
'focusin',
'keydown',
'keypress',
'keyup',
'keydown',
'keypress',
'keyup',
'keydown',
'keypress',
'keyup',
'input',
'change',
'focus',
];
} else if (isFirefox) {
if (isFirefox) {
expectedEvents = [
'focus',
'focusin',
Expand Down Expand Up @@ -335,7 +319,7 @@ module('DOM Helper: typeIn', function (hooks) {
await assert.rejects(
typeIn(element, tooLongString).finally(() => {
// should throw before the second input event (or second keyup for IE)
const expectedNumberOfSteps = isIE11 ? 6 : isFirefox ? 9 : 8;
const expectedNumberOfSteps = isFirefox ? 9 : 8;
assert.verifySteps(expectedEvents.slice(0, expectedNumberOfSteps));
}),
new Error("Can not `typeIn` with text: 'fo' that exceeds maxlength: '1'.")
Expand Down Expand Up @@ -388,7 +372,7 @@ module('DOM Helper: typeIn', function (hooks) {
await assert.rejects(
typeIn(element, tooLongString).finally(() => {
// should throw before the second input event (or second keyup for IE)
const expectedNumberOfSteps = isIE11 ? 6 : isFirefox ? 9 : 8;
const expectedNumberOfSteps = isFirefox ? 9 : 8;
assert.verifySteps(expectedEvents.slice(0, expectedNumberOfSteps));
}),
new Error("Can not `typeIn` with text: 'fo' that exceeds maxlength: '1'.")
Expand Down

0 comments on commit 696ab83

Please sign in to comment.