|
6 | 6 | insertElement, |
7 | 7 | } from '../../helpers/events'; |
8 | 8 | import hasEmberVersion from '@ember/test-helpers/has-ember-version'; |
| 9 | +import { isChrome } from '../../helpers/browser-detect'; |
9 | 10 | import { |
10 | 11 | registerHooks, |
11 | 12 | unregisterHooks, |
@@ -202,6 +203,17 @@ module('DOM Helper: click', function (hooks) { |
202 | 203 | module('focusable element types', function () { |
203 | 204 | let clickSteps = ['mousedown', 'focus', 'focusin', 'mouseup', 'click']; |
204 | 205 |
|
| 206 | + if (isChrome) { |
| 207 | + clickSteps = [ |
| 208 | + 'mousedown', |
| 209 | + 'focus', |
| 210 | + 'focusin', |
| 211 | + 'mouseup', |
| 212 | + 'click', |
| 213 | + 'selectionchange', |
| 214 | + ]; |
| 215 | + } |
| 216 | + |
205 | 217 | test('clicking a input via selector with context set', async function (assert) { |
206 | 218 | element = buildInstrumentedElement('input'); |
207 | 219 |
|
@@ -297,7 +309,17 @@ module('DOM Helper: click', function (hooks) { |
297 | 309 |
|
298 | 310 | await click(child); |
299 | 311 |
|
300 | | - assert.verifySteps(clickSteps); |
| 312 | + if (isChrome) { |
| 313 | + assert.verifySteps([ |
| 314 | + 'mousedown', |
| 315 | + 'focus', |
| 316 | + 'focusin', |
| 317 | + 'mouseup', |
| 318 | + 'click', |
| 319 | + ]); |
| 320 | + } else { |
| 321 | + assert.verifySteps(clickSteps); |
| 322 | + } |
301 | 323 | assert.strictEqual( |
302 | 324 | document.activeElement, |
303 | 325 | element, |
@@ -334,15 +356,28 @@ module('DOM Helper: click', function (hooks) { |
334 | 356 | await click(focusableElement); |
335 | 357 | await click(element); |
336 | 358 |
|
337 | | - assert.verifySteps([ |
338 | | - 'mousedown', |
339 | | - 'focus', |
340 | | - 'focusin', |
341 | | - 'mouseup', |
342 | | - 'click', |
343 | | - 'blur', |
344 | | - 'focusout', |
345 | | - ]); |
| 359 | + if (isChrome) { |
| 360 | + assert.verifySteps([ |
| 361 | + 'mousedown', |
| 362 | + 'focus', |
| 363 | + 'focusin', |
| 364 | + 'mouseup', |
| 365 | + 'click', |
| 366 | + 'selectionchange', |
| 367 | + 'blur', |
| 368 | + 'focusout', |
| 369 | + ]); |
| 370 | + } else { |
| 371 | + assert.verifySteps([ |
| 372 | + 'mousedown', |
| 373 | + 'focus', |
| 374 | + 'focusin', |
| 375 | + 'mouseup', |
| 376 | + 'click', |
| 377 | + 'blur', |
| 378 | + 'focusout', |
| 379 | + ]); |
| 380 | + } |
346 | 381 | }); |
347 | 382 |
|
348 | 383 | test('clicking on non-focusable element inside active element does not trigger blur on active element', async function (assert) { |
@@ -377,15 +412,28 @@ module('DOM Helper: click', function (hooks) { |
377 | 412 | await click(focusableElement); |
378 | 413 | await click(element); |
379 | 414 |
|
380 | | - assert.verifySteps([ |
381 | | - 'mousedown', |
382 | | - 'focus', |
383 | | - 'focusin', |
384 | | - 'mouseup', |
385 | | - 'click', |
386 | | - 'blur', |
387 | | - 'focusout', |
388 | | - ]); |
| 415 | + if (isChrome) { |
| 416 | + assert.verifySteps([ |
| 417 | + 'mousedown', |
| 418 | + 'focus', |
| 419 | + 'focusin', |
| 420 | + 'mouseup', |
| 421 | + 'click', |
| 422 | + 'selectionchange', |
| 423 | + 'blur', |
| 424 | + 'focusout', |
| 425 | + ]); |
| 426 | + } else { |
| 427 | + assert.verifySteps([ |
| 428 | + 'mousedown', |
| 429 | + 'focus', |
| 430 | + 'focusin', |
| 431 | + 'mouseup', |
| 432 | + 'click', |
| 433 | + 'blur', |
| 434 | + 'focusout', |
| 435 | + ]); |
| 436 | + } |
389 | 437 | }); |
390 | 438 |
|
391 | 439 | test('clicking on non-focusable element does not trigger blur on non-focusable active element', async function (assert) { |
@@ -417,7 +465,24 @@ module('DOM Helper: click', function (hooks) { |
417 | 465 | await click(focusableElement); |
418 | 466 | await click(element); |
419 | 467 |
|
420 | | - assert.verifySteps(['mousedown', 'focus', 'focusin', 'mouseup', 'click']); |
| 468 | + if (isChrome) { |
| 469 | + assert.verifySteps([ |
| 470 | + 'mousedown', |
| 471 | + 'focus', |
| 472 | + 'focusin', |
| 473 | + 'mouseup', |
| 474 | + 'click', |
| 475 | + 'selectionchange', |
| 476 | + ]); |
| 477 | + } else { |
| 478 | + assert.verifySteps([ |
| 479 | + 'mousedown', |
| 480 | + 'focus', |
| 481 | + 'focusin', |
| 482 | + 'mouseup', |
| 483 | + 'click', |
| 484 | + ]); |
| 485 | + } |
421 | 486 |
|
422 | 487 | element.removeEventListener('mousedown', preventDefault); |
423 | 488 | await click(element); |
|
0 commit comments