|
1 | 1 | import { module, test } from 'qunit'; |
2 | 2 | import { typeIn, setupContext, teardownContext } from '@ember/test-helpers'; |
3 | 3 | import { buildInstrumentedElement, insertElement } from '../../helpers/events'; |
4 | | -import { isFirefox } from '../../helpers/browser-detect'; |
| 4 | +import { isFirefox, isChrome } from '../../helpers/browser-detect'; |
5 | 5 | import { debounce } from '@ember/runloop'; |
6 | 6 | import { Promise } from 'rsvp'; |
7 | 7 | import hasEmberVersion from '@ember/test-helpers/has-ember-version'; |
@@ -57,6 +57,30 @@ if (isFirefox) { |
57 | 57 | ]; |
58 | 58 | } |
59 | 59 |
|
| 60 | +if (isChrome) { |
| 61 | + expectedEvents = [ |
| 62 | + 'focus', |
| 63 | + 'focusin', |
| 64 | + 'selectionchange', |
| 65 | + 'keydown', |
| 66 | + 'keypress', |
| 67 | + 'input', |
| 68 | + 'keyup', |
| 69 | + 'selectionchange', |
| 70 | + 'keydown', |
| 71 | + 'keypress', |
| 72 | + 'input', |
| 73 | + 'keyup', |
| 74 | + 'selectionchange', |
| 75 | + 'keydown', |
| 76 | + 'keypress', |
| 77 | + 'input', |
| 78 | + 'keyup', |
| 79 | + 'change', |
| 80 | + 'selectionchange', |
| 81 | + ]; |
| 82 | +} |
| 83 | + |
60 | 84 | module('DOM Helper: typeIn', function (hooks) { |
61 | 85 | if (!hasEmberVersion(2, 4)) { |
62 | 86 | return; |
@@ -333,8 +357,13 @@ module('DOM Helper: typeIn', function (hooks) { |
333 | 357 | await assert.rejects( |
334 | 358 | typeIn(element, tooLongString).finally(() => { |
335 | 359 | // should throw before the second input event (or second keyup for IE) |
336 | | - const expectedNumberOfSteps = isFirefox ? 9 : 8; |
337 | | - assert.verifySteps(expectedEvents.slice(0, expectedNumberOfSteps)); |
| 360 | + if (isFirefox) { |
| 361 | + assert.verifySteps(expectedEvents.slice(0, 9)); |
| 362 | + } else if (isChrome) { |
| 363 | + assert.verifySteps(expectedEvents.slice(0, 10)); |
| 364 | + } else { |
| 365 | + assert.verifySteps(expectedEvents.slice(0, 8)); |
| 366 | + } |
338 | 367 | }), |
339 | 368 | new Error("Can not `typeIn` with text: 'fo' that exceeds maxlength: '1'.") |
340 | 369 | ); |
@@ -385,9 +414,13 @@ module('DOM Helper: typeIn', function (hooks) { |
385 | 414 |
|
386 | 415 | await assert.rejects( |
387 | 416 | typeIn(element, tooLongString).finally(() => { |
388 | | - // should throw before the second input event (or second keyup for IE) |
389 | | - const expectedNumberOfSteps = isFirefox ? 9 : 8; |
390 | | - assert.verifySteps(expectedEvents.slice(0, expectedNumberOfSteps)); |
| 417 | + if (isFirefox) { |
| 418 | + assert.verifySteps(expectedEvents.slice(0, 9)); |
| 419 | + } else if (isChrome) { |
| 420 | + assert.verifySteps(expectedEvents.slice(0, 10)); |
| 421 | + } else { |
| 422 | + assert.verifySteps(expectedEvents.slice(0, 8)); |
| 423 | + } |
391 | 424 | }), |
392 | 425 | new Error("Can not `typeIn` with text: 'fo' that exceeds maxlength: '1'.") |
393 | 426 | ); |
|
0 commit comments