From c11c99b22bef5891959aade11df8fe1863ad5dfd Mon Sep 17 00:00:00 2001 From: Daniel Freedman Date: Wed, 21 Feb 2018 17:05:46 -0800 Subject: [PATCH] add test case for nested label --- test/unit/gestures-elements.html | 16 +++++++ test/unit/gestures.html | 77 ++++++++++++++++++++++---------- 2 files changed, 69 insertions(+), 24 deletions(-) diff --git a/test/unit/gestures-elements.html b/test/unit/gestures-elements.html index ccf03f36ea..534b4edfbf 100644 --- a/test/unit/gestures-elements.html +++ b/test/unit/gestures-elements.html @@ -227,3 +227,19 @@ customElements.define(XNativeLabel.is, XNativeLabel); + + + + + \ No newline at end of file diff --git a/test/unit/gestures.html b/test/unit/gestures.html index 465abf2fe6..30866d06fa 100644 --- a/test/unit/gestures.html +++ b/test/unit/gestures.html @@ -560,30 +560,59 @@ Polymer.Gestures.remove(window, 'tap', increment); }); - test('native label click', function() { - let el = document.createElement('x-native-label'); - document.body.appendChild(el); - let target = el.$.label; - // simulate the event sequence of a touch on the screen - let touches = [{ - clientX: 0, - clientY: 0, - identifier: 1, - // target is set to the element with `addEventListener`, which is `target` - target - }]; - let touchstart = new CustomEvent('touchstart', {bubbles: true, composed: true}); - touchstart.changedTouches = touchstart.touches = touches; - target.dispatchEvent(touchstart); - let touchend = new CustomEvent('touchend', {bubbles: true, composed: true}); - touchend.touches = touchend.changedTouches = touches; - target.dispatchEvent(touchend); - // simulate a mouse click on the label - let click = new MouseEvent('click', {bubbles: true, composed: true}); - target.dispatchEvent(click); - // check that the mouse click on the label will activate the checkbox - assert.equal(el.$.check.checked, true, 'checkbox should be checked'); - document.body.removeChild(el); + suite('native label click', function() { + + test('native label click', function() { + let el = document.createElement('x-native-label'); + document.body.appendChild(el); + let target = el.$.label; + // simulate the event sequence of a touch on the screen + let touches = [{ + clientX: 0, + clientY: 0, + identifier: 1, + // target is set to the element with `addEventListener`, which is `target` + target + }]; + let touchstart = new CustomEvent('touchstart', {bubbles: true, composed: true}); + touchstart.changedTouches = touchstart.touches = touches; + target.dispatchEvent(touchstart); + let touchend = new CustomEvent('touchend', {bubbles: true, composed: true}); + touchend.touches = touchend.changedTouches = touches; + target.dispatchEvent(touchend); + // simulate a mouse click on the label + let click = new MouseEvent('click', {bubbles: true, composed: true}); + target.dispatchEvent(click); + // check that the mouse click on the label will activate the checkbox + assert.equal(el.$.check.checked, true, 'checkbox should be checked'); + document.body.removeChild(el); + }); + }); + + test('label click with nested element', function() { + let el = document.createElement('x-native-label-nested'); + document.body.appendChild(el); + let target = el.$.label; + // simulate the event sequence of a touch on the screen + let touches = [{ + clientX: 0, + clientY: 0, + identifier: 1, + // target is set to the element with `addEventListener`, which is `target` + target + }]; + let touchstart = new CustomEvent('touchstart', {bubbles: true, composed: true}); + touchstart.changedTouches = touchstart.touches = touches; + target.dispatchEvent(touchstart); + let touchend = new CustomEvent('touchend', {bubbles: true, composed: true}); + touchend.touches = touchend.changedTouches = touches; + target.dispatchEvent(touchend); + // simulate a mouse click on the label + let click = new MouseEvent('click', {bubbles: true, composed: true}); + target.dispatchEvent(click); + // check that the mouse click on the label will activate the checkbox + assert.equal(el.$.check.checked, true, 'checkbox should be checked'); + document.body.removeChild(el); }); });