mirror of
https://github.com/servo/servo.git
synced 2025-08-11 08:25:32 +01:00
Update web-platform-tests to revision 0d318188757a9c996e20b82db201fd04de5aa255
This commit is contained in:
parent
b2a5225831
commit
1a81b18b9f
12321 changed files with 544385 additions and 6 deletions
|
@ -0,0 +1,47 @@
|
|||
<!DOCTYPE html>
|
||||
<title>drag & drop - cross-document data drop</title>
|
||||
<style>
|
||||
body > div {
|
||||
height: 200px;
|
||||
width: 200px;
|
||||
background-color: blue;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
window.onload = function() {
|
||||
var blue = document.getElementsByTagName('div')[0], fails = [];
|
||||
blue.ondragover = blue.ondragenter = function(e) {
|
||||
e.preventDefault();
|
||||
e.dataTransfer.dropEffect = 'copy';
|
||||
if( e.dataTransfer.getData('text') ) {
|
||||
fails[fails.length] = '"' + e.dataTransfer.getData('text') + '" exposed during event ' + e.type;
|
||||
}
|
||||
};
|
||||
blue.ondrop = function(e) {
|
||||
e.preventDefault();
|
||||
if( !e.dataTransfer.types.length ) {
|
||||
fails[fails.length] = 'no types found during event drop';
|
||||
}
|
||||
var foundtext = false;
|
||||
for( var i = 0; i < e.dataTransfer.types.length; i++ ) {
|
||||
if( e.dataTransfer.types[i] == 'text/plain' ) {
|
||||
foundtext = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if( !foundtext ) {
|
||||
fails[fails.length] = 'text/plain type not found during event drop';
|
||||
}
|
||||
if( e.dataTransfer.getData('text') != 'dummy text' ) {
|
||||
fails[fails.length] = 'getData returned ' + e.dataTransfer.getData('text') + ' instead of "dummy text"';
|
||||
}
|
||||
document.getElementsByTagName('p')[0].innerHTML = fails.length ? ( 'FAIL:<br>' + fails.join('<br>') ) : 'PASS';
|
||||
};
|
||||
};
|
||||
</script>
|
||||
|
||||
<p>Drag the orange square onto the blue square. Fail if this text does not change.</p>
|
||||
<div></div>
|
||||
|
||||
<noscript><p>Enable JavaScript and reload</p></noscript>
|
|
@ -0,0 +1,23 @@
|
|||
<!DOCTYPE html>
|
||||
<title>drag & drop - simple cross-document data drop</title>
|
||||
<style>
|
||||
body > div {
|
||||
height: 200px;
|
||||
width: 200px;
|
||||
background-color: orange;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
window.onload = function() {
|
||||
var orange = document.getElementsByTagName('div')[0];
|
||||
orange.ondragstart = function(e) {
|
||||
e.dataTransfer.effectAllowed = 'copy';
|
||||
e.dataTransfer.setData('text', 'dummy text');
|
||||
};
|
||||
};
|
||||
</script>
|
||||
|
||||
<div draggable="true"></div>
|
||||
<p><iframe src="001-1.html" height="300" width="500"></iframe></p>
|
||||
<noscript><p>Enable JavaScript and reload</p></noscript>
|
|
@ -0,0 +1,25 @@
|
|||
<!DOCTYPE html>
|
||||
<title>drag & drop - cross-domain cross-document data drop</title>
|
||||
<script src="../resources/crossorigin.js"></script>
|
||||
<style>
|
||||
body > div {
|
||||
height: 200px;
|
||||
width: 200px;
|
||||
background-color: orange;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
window.onload = function() {
|
||||
var orange = document.getElementsByTagName('div')[0];
|
||||
orange.ondragstart = function(e) {
|
||||
e.dataTransfer.effectAllowed = 'copy';
|
||||
e.dataTransfer.setData('text', 'dummy text');
|
||||
};
|
||||
};
|
||||
</script>
|
||||
|
||||
<div draggable="true"></div>
|
||||
<p><iframe height="300" width="500"></iframe></p>
|
||||
<script>document.getElementsByTagName("iframe")[0].src = crossOriginUrl("www", "001-1.html");
|
||||
<noscript><p>Enable JavaScript and reload</p></noscript>
|
|
@ -0,0 +1,104 @@
|
|||
<!DOCTYPE html>
|
||||
<title>drag & drop - cross-document data drop</title>
|
||||
<style>
|
||||
body > div {
|
||||
height: 200px;
|
||||
width: 200px;
|
||||
background-color: blue;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
window.onload = function() {
|
||||
var blue = document.getElementsByTagName('div')[0], fails = [];
|
||||
blue.ondragover = blue.ondragenter = function(e) {
|
||||
e.preventDefault();
|
||||
e.dataTransfer.dropEffect = 'copy';
|
||||
if( !parent.evs[e.type] ) { parent.evs[e.type] = {}; }
|
||||
parent.evs[e.type].dataTransfer = e.dataTransfer;
|
||||
parent.evs[e.type].items = e.dataTransfer.items;
|
||||
parent.evs[e.type].types = e.dataTransfer.types;
|
||||
parent.evs[e.type].files = e.dataTransfer.files;
|
||||
if( parent.evs[e.type].dataTransfer != e.dataTransfer ) {
|
||||
fails[fails.length] = '.dataTransfer is not returning the same object during '+e.type;
|
||||
}
|
||||
if( !e.dataTransfer.items ) {
|
||||
fails[fails.length] = '.items is not returning anything during '+e.type;
|
||||
} else if( parent.evs[e.type].items !== e.dataTransfer.items ) {
|
||||
fails[fails.length] = '.items is not returning the same object during '+e.type;
|
||||
}
|
||||
if( !e.dataTransfer.types ) {
|
||||
fails[fails.length] = '.types is not returning anything during '+e.type;
|
||||
} else if( parent.evs[e.type].types !== e.dataTransfer.types ) {
|
||||
fails[fails.length] = '.types is not returning the same object during '+e.type;
|
||||
}
|
||||
if( !e.dataTransfer.files ) {
|
||||
fails[fails.length] = '.files is not returning anything during '+e.type;
|
||||
} else if( parent.evs[e.type].files !== e.dataTransfer.files ) {
|
||||
fails[fails.length] = '.files is not returning the same object during '+e.type;
|
||||
}
|
||||
//http://dev.w3.org/html5/spec/dnd.html#datatransfer
|
||||
//"The * attribute must return a * object associated with the DataTransfer object."
|
||||
//Note that it is associated with the DataTransfer object, *not* the data store
|
||||
//http://dev.w3.org/html5/spec/dnd.html#dragevent
|
||||
//"when a user agent is required to fire a DND event named e at an element, using a particular drag data store...
|
||||
//Let dataTransfer be a newly created DataTransfer object associated with the given drag data store."
|
||||
//A new DataTransfer object therefore means a new set of properties, not the same ones as last event
|
||||
if( parent.evs.dragstart.dataTransfer === e.dataTransfer ) {
|
||||
fails[fails.length] = '.dataTransfer is returning the same object during '+e.type+' as it did during dragstart';
|
||||
}
|
||||
if( e.dataTransfer.items && parent.evs.dragstart.items === e.dataTransfer.items ) {
|
||||
fails[fails.length] = '.items is returning the same object during '+e.type+' as it did during dragstart';
|
||||
}
|
||||
if( e.dataTransfer.types && parent.evs.dragstart.types === e.dataTransfer.types ) {
|
||||
fails[fails.length] = '.types is returning the same object during '+e.type+' as it did during dragstart';
|
||||
}
|
||||
if( e.dataTransfer.files && parent.evs.dragstart.files === e.dataTransfer.files ) {
|
||||
fails[fails.length] = '.files is returning the same object during '+e.type+' as it did during dragstart';
|
||||
}
|
||||
};
|
||||
blue.ondrop = function(e) {
|
||||
parent.evs[e.type] = {};
|
||||
parent.evs[e.type].dataTransfer = e.dataTransfer;
|
||||
parent.evs[e.type].items = e.dataTransfer.items;
|
||||
parent.evs[e.type].types = e.dataTransfer.types;
|
||||
parent.evs[e.type].files = e.dataTransfer.files;
|
||||
if( parent.evs[e.type].dataTransfer !== e.dataTransfer ) {
|
||||
fails[fails.length] = '.dataTransfer is not returning the same object during '+e.type;
|
||||
}
|
||||
if( !e.dataTransfer.items ) {
|
||||
fails[fails.length] = '.items is not returning anything during '+e.type;
|
||||
} else if( parent.evs[e.type].items !== e.dataTransfer.items ) {
|
||||
fails[fails.length] = '.items is not returning the same object during '+e.type;
|
||||
}
|
||||
if( !e.dataTransfer.types ) {
|
||||
fails[fails.length] = '.types is not returning anything during '+e.type;
|
||||
} else if( parent.evs[e.type].types !== e.dataTransfer.types ) {
|
||||
fails[fails.length] = '.types is not returning the same object during '+e.type;
|
||||
}
|
||||
if( !e.dataTransfer.files ) {
|
||||
fails[fails.length] = '.files is not returning anything during '+e.type;
|
||||
} else if( parent.evs[e.type].files !== e.dataTransfer.files ) {
|
||||
fails[fails.length] = '.files is not returning the same object during '+e.type;
|
||||
}
|
||||
if( parent.evs.dragstart.dataTransfer === e.dataTransfer ) {
|
||||
fails[fails.length] = '.dataTransfer is returning the same object during '+e.type+' as it did during dragstart';
|
||||
}
|
||||
if( e.dataTransfer.items && parent.evs.dragstart.items === e.dataTransfer.items ) {
|
||||
fails[fails.length] = '.items is returning the same object during '+e.type+' as it did during dragstart';
|
||||
}
|
||||
if( e.dataTransfer.types && parent.evs.dragstart.types === e.dataTransfer.types ) {
|
||||
fails[fails.length] = '.types is returning the same object during '+e.type+' as it did during dragstart';
|
||||
}
|
||||
if( e.dataTransfer.files && parent.evs.dragstart.files === e.dataTransfer.files ) {
|
||||
fails[fails.length] = '.files is returning the same object during '+e.type+' as it did during dragstart';
|
||||
}
|
||||
document.getElementsByTagName('p')[0].innerHTML = fails.length ? ( 'FAIL:<br>' + fails.join('<br>') ) : 'PASS';
|
||||
};
|
||||
};
|
||||
</script>
|
||||
|
||||
<p>Drag the orange square onto the blue square. Fail if this text does not change.</p>
|
||||
<div></div>
|
||||
|
||||
<noscript><p>Enable JavaScript and reload</p></noscript>
|
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html>
|
||||
<title>drag & drop - cross-document variable retention within event handlers</title>
|
||||
<style>
|
||||
body > div {
|
||||
height: 200px;
|
||||
width: 200px;
|
||||
background-color: orange;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
var evs = {};
|
||||
window.onload = function() {
|
||||
var orange = document.getElementsByTagName('div')[0];
|
||||
orange.ondragstart = function(e) {
|
||||
e.dataTransfer.effectAllowed = 'copy';
|
||||
e.dataTransfer.setData('text', 'dummy text');
|
||||
evs[e.type] = {};
|
||||
evs[e.type].dataTransfer = e.dataTransfer;
|
||||
evs[e.type].items = e.dataTransfer.items;
|
||||
evs[e.type].types = e.dataTransfer.types;
|
||||
evs[e.type].files = e.dataTransfer.files;
|
||||
};
|
||||
};
|
||||
</script>
|
||||
|
||||
<div draggable="true"></div>
|
||||
<p><iframe src="003-1.html" height="300" width="500"></iframe></p>
|
||||
<noscript><p>Enable JavaScript and reload</p></noscript>
|
Loading…
Add table
Add a link
Reference in a new issue