mirror of
https://github.com/servo/servo.git
synced 2025-08-12 08:55:32 +01:00
Update web-platform-tests to revision 8a2ceb5f18911302b7a5c1cd2791f4ab50ad4326
This commit is contained in:
parent
462c272380
commit
1f531f66ea
5377 changed files with 174916 additions and 84369 deletions
|
@ -0,0 +1,142 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='utf-8'>
|
||||
<title>HTML Test: drag DataTransfer protected status</title>
|
||||
<link rel='author' title='Michael Layzell' href='mailto:michael@thelayzells.com'>
|
||||
<link rel='help' href='https://html.spec.whatwg.org/multipage/#the-datatransfer-interface'>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
#drag {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
display: inline-block;
|
||||
color: #fff;
|
||||
background-color: #f00;
|
||||
}
|
||||
#drop {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
display: inline-block;
|
||||
color: #fff;
|
||||
background-color: #00f;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h3>Instructions</h3>
|
||||
<p>
|
||||
Drag the box labeled "drag" to the box labeled "drop" and release.
|
||||
</p>
|
||||
|
||||
<div id="drag" draggable="true">drag</div>
|
||||
<div id="drop">drop</div>
|
||||
|
||||
<div id="log"> </div>
|
||||
|
||||
<script>
|
||||
var MIME = "text/plain";
|
||||
|
||||
var drop;
|
||||
setup(function() {
|
||||
drop = document.querySelector("#drop");
|
||||
}, {explicit_done: true, explicit_timeout: true});
|
||||
|
||||
var STATUS_PROTECTED = "protected";
|
||||
var STATUS_READONLY = "readonly";
|
||||
var STATUS_READWRITE = "readwrite";
|
||||
var STATUS_DISCONNECTED = "disconnected";
|
||||
function status(dt) {
|
||||
// Check if we can write to it.
|
||||
try {
|
||||
dt.setData("text/html", "_test");
|
||||
|
||||
if (dt.getData("text/html") == "_test") {
|
||||
dt.clearData("text/html");
|
||||
assert_true(!dt.getData("text/html"), "ClearData should work...");
|
||||
return STATUS_READWRITE;
|
||||
}
|
||||
} catch(e) {}
|
||||
|
||||
// If we can read the data then we're readonly
|
||||
if (dt.getData(MIME)) {
|
||||
return STATUS_READONLY;
|
||||
}
|
||||
|
||||
// If we can see that items exist (and read types) then we're protected
|
||||
if (dt.items.length > 0) {
|
||||
return STATUS_PROTECTED;
|
||||
}
|
||||
|
||||
// Otherwise we've been disconnected.
|
||||
return STATUS_DISCONNECTED;
|
||||
};
|
||||
|
||||
var drag_dt = null;
|
||||
var over_dt = null;
|
||||
var drop_dt = null;
|
||||
on_event(document.body, "dragstart", function(e) {
|
||||
drag_dt = e.dataTransfer;
|
||||
over_dt = null;
|
||||
drop_dt = null;
|
||||
drag_dt.setData(MIME, "b");
|
||||
test(function() {
|
||||
assert_equals(status(drag_dt), STATUS_READWRITE,
|
||||
"drag_dt must be readwrite during dragstart");
|
||||
}, "dragstart event status");
|
||||
});
|
||||
on_event(drop, "dragover", function(e) {
|
||||
if (!over_dt) {
|
||||
over_dt = e.dataTransfer;
|
||||
test(function() {
|
||||
assert_equals(status(drag_dt), STATUS_DISCONNECTED,
|
||||
"drag_dt mustbe disconnected during dragover");
|
||||
assert_equals(status(over_dt), STATUS_PROTECTED,
|
||||
"over_dt mustbe protected during dragover");
|
||||
}, "dragover event status");
|
||||
test(function() {
|
||||
assert_true(drag_dt != over_dt,
|
||||
"drag_dt must be a different DataTransfer object than over_dt");
|
||||
}, "dragover event identity");
|
||||
}
|
||||
e.preventDefault();
|
||||
});
|
||||
on_event(drop, "drop", function(e) {
|
||||
drop_dt = e.dataTransfer;
|
||||
test(function() {
|
||||
assert_equals(status(drag_dt), STATUS_DISCONNECTED,
|
||||
"drag_dt mustbe disconnected during drop");
|
||||
assert_equals(status(over_dt), STATUS_DISCONNECTED,
|
||||
"over_dt mustbe disconnected during drop");
|
||||
assert_equals(status(drop_dt), STATUS_READONLY,
|
||||
"drop_dt mustbe readonly during drop");
|
||||
}, "drop event status");
|
||||
test(function() {
|
||||
assert_not_equals(drop_dt, over_dt,
|
||||
"drop_dt must be a different DataTransfer object than over_dt");
|
||||
assert_not_equals(drop_dt, drag_dt,
|
||||
"drop_dt must be a different DataTransfer object than drag_dt");
|
||||
}, "drop event identity");
|
||||
test(function() {
|
||||
assert_equals(drop_dt.getData(MIME), "b",
|
||||
"the data should have been persisted");
|
||||
}, "drop event data");
|
||||
e.preventDefault();
|
||||
|
||||
setTimeout(function() {
|
||||
test(function() {
|
||||
assert_equals(status(drag_dt), STATUS_DISCONNECTED,
|
||||
"drag_dt mustbe disconnected after drop");
|
||||
assert_equals(status(over_dt), STATUS_DISCONNECTED,
|
||||
"over_dt mustbe disconnected after drop");
|
||||
assert_equals(status(drop_dt), STATUS_DISCONNECTED,
|
||||
"drop_dt mustbe disconnected after drop");
|
||||
}, "after drop event status");
|
||||
done();
|
||||
}, 0);
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,106 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='utf-8'>
|
||||
<title>HTML Test: paste DataTransfer protected status</title>
|
||||
<link rel='author' title='Michael Layzell' href='mailto:michael@thelayzells.com'>
|
||||
<link rel='help' href='https://html.spec.whatwg.org/multipage/#the-datatransfer-interface'>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h3>Instructions</h3>
|
||||
<p>
|
||||
Select the text in the text box and press Ctrl-C followed by Ctrl-V.
|
||||
</p>
|
||||
|
||||
<input type="text" id="input" value="text">
|
||||
|
||||
<div id="log"> </div>
|
||||
|
||||
<script>
|
||||
var MIME = "text/plain";
|
||||
|
||||
var input;
|
||||
setup(function() {
|
||||
input = document.querySelector("#input");
|
||||
}, {explicit_done: true, explicit_timeout: true});
|
||||
|
||||
var STATUS_PROTECTED = "protected";
|
||||
var STATUS_READONLY = "readonly";
|
||||
var STATUS_READWRITE = "readwrite";
|
||||
var STATUS_DISCONNECTED = "disconnected";
|
||||
function status(dt) {
|
||||
// Check if we can write to it.
|
||||
try {
|
||||
dt.setData("text/html", "_test");
|
||||
|
||||
if (dt.getData("text/html") == "_test") {
|
||||
dt.clearData("text/html");
|
||||
assert_true(!dt.getData("text/html"), "ClearData should work...");
|
||||
return STATUS_READWRITE;
|
||||
}
|
||||
} catch(e) {}
|
||||
|
||||
// If we can read the data then we're readonly
|
||||
if (dt.getData(MIME)) {
|
||||
return STATUS_READONLY;
|
||||
}
|
||||
|
||||
// If we can see that items exist (and read types) then we're protected
|
||||
if (dt.items.length > 0) {
|
||||
return STATUS_PROTECTED;
|
||||
}
|
||||
|
||||
// Otherwise we've been disconnected.
|
||||
return STATUS_DISCONNECTED;
|
||||
};
|
||||
|
||||
let copy_dt = null;
|
||||
let paste_dt = null;
|
||||
on_event(input, "copy", function(e) {
|
||||
copy_dt = e.clipboardData;
|
||||
paste_dt = null;
|
||||
copy_dt.setData(MIME, "b");
|
||||
|
||||
test(function() {
|
||||
assert_equals(status(copy_dt), STATUS_READWRITE,
|
||||
"copy_dt must be readwrite during copy");
|
||||
}, "copy event status");
|
||||
|
||||
e.preventDefault();
|
||||
});
|
||||
on_event(input, "paste", function(e) {
|
||||
paste_dt = e.clipboardData;
|
||||
|
||||
test(function() {
|
||||
assert_equals(status(copy_dt), STATUS_DISCONNECTED,
|
||||
"copy_dt mustbe disconnected during paste");
|
||||
assert_equals(status(paste_dt), STATUS_READONLY,
|
||||
"paste_dt mustbe readonly during paste");
|
||||
}, "paste event status");
|
||||
test(function() {
|
||||
assert_not_equals(copy_dt != paste_dt,
|
||||
"copy_dt must be a different DataTransfer object than paste_dt");
|
||||
}, "paste event identity");
|
||||
test(function() {
|
||||
assert_equals(paste_dt.getData(MIME), "b",
|
||||
"the data should have been persisted");
|
||||
}, "paste event data");
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
setTimeout(function() {
|
||||
test(function() {
|
||||
assert_equals(status(copy_dt), STATUS_DISCONNECTED,
|
||||
"copy_dt mustbe disconnected after paste");
|
||||
assert_equals(status(paste_dt), STATUS_DISCONNECTED,
|
||||
"paste_dt mustbe disconnected after paste");
|
||||
}, "after paste event status");
|
||||
done();
|
||||
}, 0);
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Loading…
Add table
Add a link
Reference in a new issue