Skip to content

Commit

Permalink
Tests added around pointer and touch events, added documentation as w…
Browse files Browse the repository at this point in the history
…ell #25
  • Loading branch information
kdillon committed Feb 8, 2017
1 parent 601d63f commit 6ef7441
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/mouse.support.js
Expand Up @@ -68,6 +68,7 @@ require('./mouse');

document.documentElement.removeChild(div);

// register whether or not the current browser supports either pointer or touch events
syn.support.pointerEvents = (syn.eventSupported('pointerdown'));
syn.support.touchEvents = (syn.eventSupported('touchstart'));

Expand Down
2 changes: 2 additions & 0 deletions src/synthetic.js
Expand Up @@ -591,9 +591,11 @@ extend(syn, {
* - `linkHrefJS` - An achor's href JavaScript is run.
* - `mouseDownUpClicks` - A mousedown followed by mouseup creates a click event.
* - `mouseupSubmits` - a mouseup on a form button submits the form.
* - `pointerEvents` - does this browser natively support pointer events (for newer browsers).
* - `radioClickChanges` - clicking a radio button changes the radio.
* - `tabKeyTabs` - A tab key changes tabs.
* - `textareaCarriage` - a new line in a textarea creates a carriage return.
* - `touchEvents` - does this browser natively support touch events (for older mobile browsers, mostly).
*
*
*/
Expand Down
58 changes: 58 additions & 0 deletions test/mouse_test.js
Expand Up @@ -263,6 +263,64 @@ QUnit.test("Click! Event Order", syn.skipFocusTests ? 3 : 4, function () {

});

QUnit.test("Click! Pointer Event Order", syn.support.pointerEvents ? 3 : 0, function () {
var order = 0;
st.g("qunit-fixture").innerHTML = "<input id='focusme'/>";

if(syn.support.pointerEvents){ // skips test on browsers that do not support pointer events

st.binder("focusme", "pointerdown", function () {
QUnit.equal(++order, 1, "pointerdown");
});

st.binder("focusme", "pointerup", function () {
QUnit.equal(++order, 2, "pointerup");
});

st.binder("focusme", "click", function (ev) {
QUnit.equal(++order, 3, "click");
if (ev.preventDefault) {
ev.preventDefault();
}
ev.returnValue = false;
});
}

stop();
syn.click("focusme", {}, function () {
QUnit.start();
});
});

QUnit.test("Click! Touch Event Order", syn.support.touchEvents ? 3 : 0, function () {
var order = 0;
st.g("qunit-fixture").innerHTML = "<input id='focusme'/>";

if(syn.support.touchEvents){ // skips test on browsers that do not support touch events

st.binder("focusme", "touchstart", function () {
QUnit.equal(++order, 1, "touchstart");
});

st.binder("focusme", "touchend", function () {
QUnit.equal(++order, 2, "touchend");
});

st.binder("focusme", "click", function (ev) {
QUnit.equal(++order, 3, "click");
if (ev.preventDefault) {
ev.preventDefault();
}
ev.returnValue = false;
});
}

stop();
syn.click("focusme", {}, function () {
QUnit.start();
});
});

QUnit.test("Click Anchor Runs HREF JavaScript", function () {
stop();
syn.trigger(st.g("jsHref"), "click", {});
Expand Down

0 comments on commit 6ef7441

Please sign in to comment.