Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F945105
recorder.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
8 KB
Subscribers
None
recorder.js
View Options
/*
Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
if
(
!
dojo
.
_hasResource
[
"dojox.robot.recorder"
]){
dojo
.
_hasResource
[
"dojox.robot.recorder"
]
=
true
;
dojo
.
provide
(
"dojox.robot.recorder"
);
dojo
.
experimental
(
"dojox.robot.recorder"
);
(
function
(){
var
_1
=
1000
;
var
_2
=
500
;
var
_3
=
10000
;
var
_4
=
[];
var
_5
=
0
;
var
_6
=
null
;
var
_7
=
null
;
var
_8
=
function
(){
alert
(
"Started recording."
);
_4
=
[];
_6
=
new
Date
();
_7
=
new
Date
();
};
var
_9
=
function
(
_a
,
_b
){
if
(
_6
==
null
||
_a
==
"doh.robot.keyPress"
&&
_b
[
0
]
==
dojo
.
keys
.
ENTER
&&
eval
(
"("
+
_b
[
2
]
+
")"
).
ctrl
&&
eval
(
"("
+
_b
[
2
]
+
")"
).
alt
){
return
;
}
var
dt
=
Math
.
max
(
Math
.
min
(
Math
.
round
((
new
Date
()).
getTime
()
-
_7
.
getTime
()),
_3
),
1
);
if
(
_a
==
"doh.robot.mouseMove"
){
_b
[
2
]
=
dt
;
}
else
{
_b
[
1
]
=
dt
;
}
_4
.
push
({
name
:
_a
,
args
:
_b
});
_7
=
new
Date
();
};
var
_c
=
function
(){
var
c
=
_4
;
if
(
c
[
0
].
name
==
"doh.robot.keyPress"
&&
(
c
[
0
].
args
[
0
]
==
dojo
.
keys
.
ENTER
||
c
[
0
].
args
[
0
]
==
77
)){
c
.
splice
(
0
,
1
);
}
for
(
var
i
=
c
.
length
-
1
;(
i
>=
c
.
length
-
2
)
&&
(
i
>=
0
);
i
--
){
if
(
c
[
i
].
name
==
"doh.robot.keyPress"
&&
c
[
i
].
args
[
0
]
==
dojo
.
keys
.
ALT
||
c
[
i
].
args
[
0
]
==
dojo
.
keys
.
CTRL
){
c
.
splice
(
i
,
1
);
}
}
for
(
i
=
0
;
i
<
c
.
length
;
i
++
){
var
_d
,
_e
;
if
(
c
[
i
+
1
]
&&
c
[
i
].
name
==
"doh.robot.mouseMove"
&&
c
[
i
+
1
].
name
==
c
[
i
].
name
&&
c
[
i
+
1
].
args
[
2
]
<
_2
){
_d
=
c
[
i
+
1
];
_e
=
0
;
while
(
_d
&&
_d
.
name
==
c
[
i
].
name
&&
_d
.
args
[
2
]
<
_2
){
c
.
splice
(
i
+
1
,
1
);
_e
+=
_d
.
args
[
2
];
c
[
i
].
args
[
0
]
=
_d
.
args
[
0
];
c
[
i
].
args
[
1
]
=
_d
.
args
[
1
];
_d
=
c
[
i
+
1
];
}
c
[
i
].
args
[
3
]
=
_e
;
}
else
{
if
(
c
[
i
+
1
]
&&
c
[
i
].
name
==
"doh.robot.mouseWheel"
&&
c
[
i
+
1
].
name
==
c
[
i
].
name
&&
c
[
i
+
1
].
args
[
1
]
<
_2
){
_d
=
c
[
i
+
1
];
_e
=
0
;
while
(
_d
&&
_d
.
name
==
c
[
i
].
name
&&
_d
.
args
[
1
]
<
_2
){
c
.
splice
(
i
+
1
,
1
);
_e
+=
_d
.
args
[
1
];
c
[
i
].
args
[
0
]
+=
_d
.
args
[
0
];
_d
=
c
[
i
+
1
];
}
c
[
i
].
args
[
2
]
=
_e
;
}
else
{
if
(
c
[
i
+
2
]
&&
c
[
i
].
name
==
"doh.robot.mouseMoveAt"
&&
c
[
i
+
2
].
name
==
"doh.robot.scrollIntoView"
){
var
_f
=
c
.
splice
(
i
+
2
,
1
)[
0
];
c
.
splice
(
i
,
0
,
_f
);
}
else
{
if
(
c
[
i
+
1
]
&&
c
[
i
].
name
==
"doh.robot.mousePress"
&&
c
[
i
+
1
].
name
==
"doh.robot.mouseRelease"
&&
c
[
i
].
args
[
0
]
==
c
[
i
+
1
].
args
[
0
]){
c
[
i
].
name
=
"doh.robot.mouseClick"
;
c
.
splice
(
i
+
1
,
1
);
if
(
c
[
i
+
1
]
&&
c
[
i
+
1
].
name
==
"doh.robot.mouseClick"
&&
c
[
i
].
args
[
0
]
==
c
[
i
+
1
].
args
[
0
]){
c
.
splice
(
i
+
1
,
1
);
}
}
else
{
if
(
c
[
i
+
1
]
&&
c
[
i
-
1
]
&&
c
[
i
-
1
].
name
==
"doh.robot.mouseMoveAt"
&&
c
[
i
].
name
==
"doh.robot.mousePress"
&&
c
[
i
+
1
].
name
==
"doh.robot.mouseMove"
){
var
cmd
=
{
name
:
"doh.robot.mouseMoveAt"
,
args
:
[
c
[
i
-
1
].
args
[
0
],
1
,
100
,
c
[
i
-
1
].
args
[
3
]
+
1
,
c
[
i
-
1
].
args
[
4
]]};
c
.
splice
(
i
+
1
,
0
,
cmd
);
}
else
{
if
(
c
[
i
+
1
]
&&
((
c
[
i
].
name
==
"doh.robot.keyPress"
&&
typeof
c
[
i
].
args
[
0
]
==
"string"
)
||
c
[
i
].
name
==
"doh.robot.typeKeys"
)
&&
c
[
i
+
1
].
name
==
"doh.robot.keyPress"
&&
typeof
c
[
i
+
1
].
args
[
0
]
==
"string"
&&
c
[
i
+
1
].
args
[
1
]
<=
_1
&&!
eval
(
"("
+
c
[
i
].
args
[
2
]
+
")"
).
ctrl
&&!
eval
(
"("
+
c
[
i
].
args
[
2
]
+
")"
).
alt
&&!
eval
(
"("
+
c
[
i
+
1
].
args
[
2
]
+
")"
).
ctrl
&&!
eval
(
"("
+
c
[
i
+
1
].
args
[
2
]
+
")"
).
alt
){
c
[
i
].
name
=
"doh.robot.typeKeys"
;
c
[
i
].
args
.
splice
(
3
,
1
);
_d
=
c
[
i
+
1
];
var
_10
=
0
;
while
(
_d
&&
_d
.
name
==
"doh.robot.keyPress"
&&
typeof
_d
.
args
[
0
]
==
"string"
&&
_d
.
args
[
1
]
<=
_1
&&!
eval
(
"("
+
_d
.
args
[
2
]
+
")"
).
ctrl
&&!
eval
(
"("
+
_d
.
args
[
2
]
+
")"
).
alt
){
c
.
splice
(
i
+
1
,
1
);
c
[
i
].
args
[
0
]
+=
_d
.
args
[
0
];
_10
+=
_d
.
args
[
1
];
_d
=
c
[
i
+
1
];
}
c
[
i
].
args
[
2
]
=
_10
;
c
[
i
].
args
[
0
]
=
"'"
+
c
[
i
].
args
[
0
]
+
"'"
;
}
else
{
if
(
c
[
i
].
name
==
"doh.robot.keyPress"
){
if
(
typeof
c
[
i
].
args
[
0
]
==
"string"
){
c
[
i
].
args
[
0
]
=
"'"
+
c
[
i
].
args
[
0
]
+
"'"
;
}
else
{
if
(
c
[
i
].
args
[
0
]
==
0
){
c
.
splice
(
i
,
1
);
}
else
{
for
(
var
j
in
dojo
.
keys
){
if
(
dojo
.
keys
[
j
]
==
c
[
i
].
args
[
0
]){
c
[
i
].
args
[
0
]
=
"dojo.keys."
+
j
;
break
;
}
}
}
}
}
}
}
}
}
}
}
}
};
var
_11
=
function
(){
if
(
!
_6
){
_8
();
}
else
{
_12
();
}
};
var
_12
=
function
(){
var
dt
=
Math
.
round
((
new
Date
()).
getTime
()
-
_6
.
getTime
());
_6
=
null
;
_c
();
var
c
=
_4
;
if
(
c
.
length
){
var
s
=
"doh.register('dojox.robot.AutoGeneratedTestGroup',{\n"
;
s
+=
" name: 'autotest"
+
(
_5
++
)
+
"',\n"
;
s
+=
" timeout: "
+
(
dt
+
2000
)
+
",\n"
;
s
+=
" runTest: function(){\n"
;
s
+=
" var d = new doh.Deferred();\n"
;
for
(
var
i
=
0
;
i
<
c
.
length
;
i
++
){
s
+=
" "
+
c
[
i
].
name
+
"("
;
for
(
var
j
=
0
;
j
<
c
[
i
].
args
.
length
;
j
++
){
var
arg
=
c
[
i
].
args
[
j
];
s
+=
arg
;
if
(
j
!=
c
[
i
].
args
.
length
-
1
){
s
+=
", "
;
}
}
s
+=
");\n"
;
}
s
+=
" doh.robot.sequence(function(){\n"
;
s
+=
" if(/*Your condition here*/){\n"
;
s
+=
" d.callback(true);\n"
;
s
+=
" }else{\n"
;
s
+=
" d.errback(new Error('We got a failure'));\n"
;
s
+=
" }\n"
;
s
+=
" }, 1000);\n"
;
s
+=
" return d;\n"
;
s
+=
" }\n"
;
s
+=
"});\n"
;
var
div
=
document
.
createElement
(
"div"
);
div
.
id
=
"dojox.robot.recorder"
;
div
.
style
.
backgroundColor
=
"white"
;
div
.
style
.
position
=
"absolute"
;
var
_13
=
{
y
:
(
window
.
pageYOffset
||
document
.
documentElement
.
scrollTop
||
document
.
body
.
scrollTop
||
0
),
x
:
(
window
.
pageXOffset
||
(
window
[
"dojo"
]
?
dojo
.
_fixIeBiDiScrollLeft
(
document
.
documentElement
.
scrollLeft
)
:
undefined
)
||
document
.
body
.
scrollLeft
||
0
)};
div
.
style
.
left
=
_13
.
x
+
"px"
;
div
.
style
.
top
=
_13
.
y
+
"px"
;
var
h1
=
document
.
createElement
(
"h1"
);
h1
.
innerHTML
=
"Your code:"
;
div
.
appendChild
(
h1
);
var
pre
=
document
.
createElement
(
"pre"
);
if
(
pre
.
innerText
!==
undefined
){
pre
.
innerText
=
s
;
}
else
{
pre
.
textContent
=
s
;
}
div
.
appendChild
(
pre
);
var
_14
=
document
.
createElement
(
"button"
);
_14
.
innerHTML
=
"Close"
;
var
_15
=
dojo
.
connect
(
_14
,
"onmouseup"
,
function
(
e
){
dojo
.
stopEvent
(
e
);
document
.
body
.
removeChild
(
div
);
dojo
.
disconnect
(
_15
);
});
div
.
appendChild
(
_14
);
document
.
body
.
appendChild
(
div
);
_4
=
[];
}
};
var
_16
=
function
(
_17
){
if
(
typeof
_17
==
"string"
){
return
"'"
+
_17
+
"'"
;
}
else
{
if
(
_17
.
id
){
return
"'"
+
_17
.
id
+
"'"
;
}
else
{
var
_18
=
document
.
getElementsByTagName
(
_17
.
nodeName
);
var
i
;
for
(
i
=
0
;
i
<
_18
.
length
;
i
++
){
if
(
_18
[
i
]
==
_17
){
break
;
}
}
return
"function(){ return document.getElementsByTagName('"
+
_17
.
nodeName
+
"')["
+
i
+
"]; }"
;
}
}
};
var
_19
=
function
(
b
){
return
"{left:"
+
(
b
==
0
)
+
", middle:"
+
(
b
==
1
)
+
", right:"
+
(
b
==
2
)
+
"}"
;
};
var
_1a
=
function
(
e
){
return
"{'shift':"
+
(
e
.
shiftKey
)
+
", 'ctrl':"
+
(
e
.
ctrlKey
)
+
", 'alt':"
+
(
e
.
altKey
)
+
"}"
;
};
dojo
.
connect
(
document
,
"onkeydown"
,
function
(
e
){
if
((
e
.
keyCode
==
dojo
.
keys
.
ENTER
||
e
.
keyCode
==
77
)
&&
e
.
ctrlKey
&&
e
.
altKey
){
dojo
.
stopEvent
(
e
);
_11
();
}
});
var
_1b
=
{
type
:
""
};
var
_1c
=
function
(
e
){
if
(
!
e
||
_1b
.
type
==
e
.
type
&&
_1b
.
button
==
e
.
button
){
return
;
}
_1b
=
{
type
:
e
.
type
,
button
:
e
.
button
};
var
_1d
=
_16
(
e
.
target
);
var
_1e
=
dojo
.
coords
(
e
.
target
);
_9
(
"doh.robot.mouseMoveAt"
,[
_1d
,
0
,
100
,
e
.
clientX
-
_1e
.
x
,
e
.
clientY
-
_1e
.
y
]);
_9
(
"doh.robot.mousePress"
,[
_19
(
e
.
button
-
(
dojo
.
isIE
?
1
:
0
)),
0
]);
};
var
_1f
=
function
(
e
){
if
(
!
e
||
_1b
.
type
==
e
.
type
&&
_1b
.
button
==
e
.
button
){
return
;
}
_1b
=
{
type
:
e
.
type
,
button
:
e
.
button
};
var
_20
=
_16
(
e
.
target
);
var
_21
=
dojo
.
coords
(
e
.
target
);
_9
(
"doh.robot.mouseClick"
,[
_19
(
e
.
button
-
(
dojo
.
isIE
?
1
:
0
)),
0
]);
};
var
_22
=
function
(
e
){
if
(
!
e
||
_1b
.
type
==
e
.
type
&&
_1b
.
button
==
e
.
button
){
return
;
}
_1b
=
{
type
:
e
.
type
,
button
:
e
.
button
};
var
_23
=
_16
(
e
.
target
);
var
_24
=
dojo
.
coords
(
e
.
target
);
_9
(
"doh.robot.mouseRelease"
,[
_19
(
e
.
button
-
(
dojo
.
isIE
?
1
:
0
)),
0
]);
};
var
_25
=
function
(
e
){
if
(
!
e
||
_1b
.
type
==
e
.
type
&&
_1b
.
pageX
==
e
.
pageX
&&
_1b
.
pageY
==
e
.
pageY
){
return
;
}
_1b
=
{
type
:
e
.
type
,
pageX
:
e
.
pageX
,
pageY
:
e
.
pageY
};
_9
(
"doh.robot.mouseMove"
,[
e
.
pageX
,
e
.
pageY
,
0
,
100
,
true
]);
};
var
_26
=
function
(
e
){
if
(
!
e
||
_1b
.
type
==
e
.
type
&&
_1b
.
pageX
==
e
.
pageX
&&
_1b
.
pageY
==
e
.
pageY
){
return
;
}
_1b
=
{
type
:
e
.
type
,
detail
:
(
e
.
detail
?
(
e
.
detail
)
:
(
-
e
.
wheelDelta
/
120
))};
_9
(
"doh.robot.mouseWheel"
,[
_1b
.
detail
]);
};
var
_27
=
function
(
e
){
if
(
!
e
||
_1b
.
type
==
e
.
type
&&
(
_1b
.
charCode
==
e
.
charCode
&&
_1b
.
keyCode
==
e
.
keyCode
)){
return
;
}
_1b
=
{
type
:
e
.
type
,
charCode
:
e
.
charCode
,
keyCode
:
e
.
keyCode
};
_9
(
"doh.robot.keyPress"
,[
e
.
charOrCode
==
dojo
.
keys
.
SPACE
?
" "
:
e
.
charOrCode
,
0
,
_1a
(
e
)]);
};
var
_28
=
function
(
e
){
if
(
!
e
||
_1b
.
type
==
e
.
type
&&
(
_1b
.
charCode
==
e
.
charCode
&&
_1b
.
keyCode
==
e
.
keyCode
)){
return
;
}
_1b
=
{
type
:
e
.
type
,
charCode
:
e
.
charCode
,
keyCode
:
e
.
keyCode
};
};
dojo
.
connect
(
document
,
"onmousedown"
,
_1c
);
dojo
.
connect
(
document
,
"onmouseup"
,
_22
);
dojo
.
connect
(
document
,
"onclick"
,
_1f
);
dojo
.
connect
(
document
,
"onkeypress"
,
_27
);
dojo
.
connect
(
document
,
"onkeyup"
,
_28
);
dojo
.
connect
(
document
,
"onmousemove"
,
_25
);
dojo
.
connect
(
document
,
!
dojo
.
isMozilla
?
"onmousewheel"
:
"DOMMouseScroll"
,
_26
);
dojo
.
addOnLoad
(
function
(){
if
(
window
[
"dijit"
]
&&
dijit
.
scrollIntoView
){
dojo
.
connect
(
dijit
,
"scrollIntoView"
,
function
(
_29
){
_9
(
"doh.robot.scrollIntoView"
,[
_16
(
_29
)]);
});
}
});
dojo
.
connect
(
dojo
,
"connect"
,
function
(
_2a
,
_2b
,
f
){
if
(
_2a
&&
(
!
f
||!
f
.
_mine
)){
var
_2c
=
null
;
if
(
_2b
.
toLowerCase
()
==
"onmousedown"
){
_2c
=
dojo
.
hitch
(
this
,
_1c
);
}
else
{
if
(
_2b
.
toLowerCase
()
==
(
!
dojo
.
isMozilla
?
"onmousewheel"
:
"dommousescroll"
)){
_2c
=
dojo
.
hitch
(
this
,
_26
);
}
else
{
if
(
_2b
.
toLowerCase
()
==
"onclick"
){
_2c
=
dojo
.
hitch
(
this
,
_1f
);
}
else
{
if
(
_2b
.
toLowerCase
()
==
"onmouseup"
){
_2c
=
dojo
.
hitch
(
this
,
_22
);
}
else
{
if
(
_2b
.
toLowerCase
()
==
"onkeypress"
){
_2c
=
dojo
.
hitch
(
this
,
_27
);
}
else
{
if
(
_2b
.
toLowerCase
()
==
"onkeyup"
){
_2c
=
dojo
.
hitch
(
this
,
_28
);
}
}
}
}
}
}
if
(
_2c
==
null
){
return
;
}
_2c
.
_mine
=
true
;
dojo
.
connect
(
_2a
,
_2b
,
_2c
);
}
});
})();
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Apr 26, 00:57 (6 d, 16 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26381
Default Alt Text
recorder.js (8 KB)
Attached To
rZED Zed
Event Timeline
Log In to Comment