80 lines
2.8 KiB
HTML
80 lines
2.8 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Test that plugins reject focus</title>
|
|
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<script src="/tests/SimpleTest/EventUtils.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
|
</head>
|
|
<body>
|
|
<div id="content">
|
|
<object id="obj_elt" type="application/x-shockwave-flash"></object>
|
|
<object tabindex='0' id="obj_elt_with_idx" type="application/x-shockwave-flash"></object>
|
|
<embed id="embed_elt" type="application/x-shockwave-flash"></embed>
|
|
</div>
|
|
<script type="application/javascript">
|
|
var objElt = document.getElementById('obj_elt');
|
|
var objEltWithIdx = document.getElementById('obj_elt_with_idx');
|
|
var embedElt = document.getElementById('embed_elt');
|
|
|
|
function checkHasFocus(expected, typeOfElts, elt) {
|
|
ok((document.activeElement == elt) == expected,
|
|
typeOfElts + " element should " + (expected ? "" : "not ") + "accept focus");
|
|
}
|
|
|
|
function checkNoneHasFocus(typeOfElts) {
|
|
checkHasFocus(false, typeOfElts + " <object>", objElt);
|
|
checkHasFocus(false, typeOfElts + " <object> with tabindex", objEltWithIdx);
|
|
checkHasFocus(false, typeOfElts + " <embed>", embedElt);
|
|
}
|
|
|
|
function checkFocusable(expected, typeOfElts, elt) {
|
|
elt.focus();
|
|
checkHasFocus(expected, typeOfElts, elt);
|
|
}
|
|
|
|
// As plugins, object and embed elements are not given focus
|
|
ok(objElt != null, "object element should exist");
|
|
ok(objEltWithIdx != null, "object element with tabindex should exist");
|
|
ok(embedElt != null, "embed element should exist");
|
|
|
|
// As plugins, obj/embed_elt can not take focus
|
|
checkNoneHasFocus("plugin");
|
|
|
|
// Switch obj/embed_elt attributes from plugin to image
|
|
objElt.data = "large-pic.jpg";
|
|
objElt.width = 100;
|
|
objElt.height = 100;
|
|
objElt.type = "image/jpg";
|
|
objEltWithIdx.data = "large-pic.jpg";
|
|
objEltWithIdx.width = 100;
|
|
objEltWithIdx.height = 100;
|
|
objEltWithIdx.type = "image/jpg";
|
|
embedElt.src = "large-pic.jpg";
|
|
embedElt.width = 100;
|
|
embedElt.height = 100;
|
|
embedElt.type = "image/jpg";
|
|
|
|
// As images, obj/embed_elt can take focus as image
|
|
// object image elements require a tabindex to accept focus.
|
|
// embed elements must be reparented before new type is recognized.
|
|
checkFocusable(false, "<object> image", objElt);
|
|
checkFocusable(true, "<object> image with tabindex", objEltWithIdx);
|
|
checkFocusable(true, "<embed> plugin with image attribs before reparenting", embedElt);
|
|
embedElt.parentNode.appendChild(embedElt);
|
|
checkFocusable(true, "<embed> image", embedElt);
|
|
|
|
// Switch obj/embed_elt attributes from image to plugin
|
|
objElt.type = "application/x-shockwave-flash";
|
|
embedElt.type = "application/x-shockwave-flash";
|
|
|
|
// embed elements must be reparented before new type is recognized.
|
|
checkFocusable(true, "<embed> image with plugin attribs", embedElt);
|
|
embedElt.parentNode.appendChild(embedElt);
|
|
checkNoneHasFocus("plugin");
|
|
</script>
|
|
</body>
|
|
</html>
|
|
|
|
|