Updated
This commit is contained in:
137
master/examples/tap.html
Normal file
137
master/examples/tap.html
Normal file
@@ -0,0 +1,137 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<title>dojox.gesture.tap Unit Test</title>
|
||||
</head>
|
||||
<style type="text/css">
|
||||
@import "../../../../util/doh/robot/robot.css";
|
||||
|
||||
#outer {
|
||||
width: 350px;
|
||||
height: 200px;
|
||||
border: 1px solid #54A201;
|
||||
background-color: #54A201;
|
||||
}
|
||||
#inner {
|
||||
width: 250px;
|
||||
height: 80px;
|
||||
border: 1px solid #7FB0DB;
|
||||
background-color: #7FB0DB
|
||||
}
|
||||
|
||||
</style>
|
||||
<script type="text/javascript" src="../../../../dojo/dojo.js" djConfig="isDebug:true"></script>
|
||||
<script type="text/javascript">
|
||||
require([
|
||||
"dojo/_base/html",
|
||||
"dojo/ready",
|
||||
"dojo/on",
|
||||
"doh/runner",
|
||||
"dojox/gesture/tap"
|
||||
], function(html, ready, on, doh, tap){
|
||||
ready(function(){
|
||||
var h1, h2, h3, obj = {};
|
||||
var inner = html.byId("inner");
|
||||
|
||||
function setObj(obj, e){
|
||||
obj.type = e.type;
|
||||
obj.target = e.target;
|
||||
}
|
||||
function assert(obj, type, target){
|
||||
doh.assertEqual(type, obj.type);
|
||||
doh.assertEqual(target, obj.target);
|
||||
}
|
||||
|
||||
doh.register("dojox.gesture.tap", [
|
||||
function singleTap(){
|
||||
var executed, d = new doh.Deferred();
|
||||
h1 = on(inner, tap, function(e){
|
||||
executed = true;
|
||||
setObj(obj, e);
|
||||
});
|
||||
on.emit(inner, 'mousedown', {screenX: 100, screenY: 100});
|
||||
on.emit(inner, 'mouseup', {screenX: 106, screenY: 108});
|
||||
doh.assertTrue(executed, 'dojox.gesture.tap not fired!');
|
||||
assert(obj, 'tap', inner);
|
||||
setTimeout(function(){
|
||||
d.callback(true);
|
||||
}, 300);
|
||||
return d;
|
||||
},
|
||||
function doubleTap(){
|
||||
var executed, d = new doh.Deferred();
|
||||
obj = {};
|
||||
h2 = on(inner, tap.doubletap, function(e){
|
||||
executed = true;
|
||||
setObj(obj, e);
|
||||
});
|
||||
//first tap
|
||||
on.emit(inner, 'mousedown', {screenX: 0, screenY: 0});
|
||||
on.emit(inner, 'mouseup', {screenX: 0, screenY: 0});
|
||||
//second tap
|
||||
on.emit(inner, 'mousedown', {screenX: 0, screenY: 0});
|
||||
on.emit(inner, 'mouseup', {screenX: 0, screenY: 0});
|
||||
doh.assertTrue(executed, 'dojox.gesture.tap.doubletap not fired!');
|
||||
assert(obj, 'tap.doubletap', inner);
|
||||
setTimeout(function(){
|
||||
d.callback(true);
|
||||
}, 100);
|
||||
return d;
|
||||
},
|
||||
function tapHold(){
|
||||
var executed, d = new doh.Deferred();
|
||||
obj = {};
|
||||
h3 = on(inner, tap.hold, function(e){
|
||||
executed = true;
|
||||
setObj(obj, e);
|
||||
});
|
||||
on.emit(inner, 'mousedown', {screenX: 0, screenY: 0});
|
||||
setTimeout(function(){
|
||||
assert(obj, 'tap.hold', inner);
|
||||
doh.assertTrue(executed, 'dojox.gesture.tap.hold not fired!');
|
||||
d.callback(true);
|
||||
}, tap.holdThreshold);
|
||||
return d;
|
||||
},
|
||||
function disconnect(){
|
||||
var d = new doh.Deferred();
|
||||
var elements = tap._elements;
|
||||
h1.remove();
|
||||
doh.assertTrue(elements[0].handles.tap === 0, 'dojox.gesture.tap handle not cleared!');
|
||||
|
||||
h2.remove();
|
||||
doh.assertTrue(elements[0].handles.tap === 0, 'dojox.gesture.tap handle not cleared!');
|
||||
doh.assertTrue(elements[0].handles['tap.doubletap'] === 0, 'dojox.gesture.tap.doubletap handle not cleared!');
|
||||
|
||||
h3.remove();
|
||||
doh.assertTrue(elements.length === 0, 'dojox.gesture.tap elements not cleared!');
|
||||
|
||||
d.callback(true);
|
||||
return d;
|
||||
},
|
||||
function destroy(){
|
||||
var d = new doh.Deferred();
|
||||
//re-connect them back
|
||||
h1 = on(inner, tap, function(e){});
|
||||
h2 = on(inner, tap.doubletap, function(e){});
|
||||
h3 = on(inner, tap.hold, function(e){});
|
||||
|
||||
//destroy them all
|
||||
tap.destroy();
|
||||
doh.assertTrue(tap._elements === null, 'dojox.gesture.tap not destroyed!');
|
||||
|
||||
d.callback(true);
|
||||
return d;
|
||||
}
|
||||
]);
|
||||
doh.run();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<body class='claro'>
|
||||
<div id="outer">
|
||||
outer<div id="inner">inner</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user