summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/editing/dnd/microdata/008.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/html/editing/dnd/microdata/008.html')
-rw-r--r--testing/web-platform/tests/html/editing/dnd/microdata/008.html94
1 files changed, 94 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/editing/dnd/microdata/008.html b/testing/web-platform/tests/html/editing/dnd/microdata/008.html
new file mode 100644
index 0000000000..d4cd797817
--- /dev/null
+++ b/testing/web-platform/tests/html/editing/dnd/microdata/008.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<title>drag &amp; drop - no microdata for selection with no items</title>
+<style>
+ body > div {
+ height: 100px;
+ width: 200px;
+ background-color: fuchsia;
+ position: absolute;
+ top: 8px;
+ left: 8px;
+ }
+ span span {
+ display: none;
+ }
+ body > div + div {
+ background-color: navy;
+ top: 116px;
+ }
+ body > div + div + div {
+ background-color: orange;
+ top: 224px;
+ }
+ p:first-of-type {
+ margin-top: 350px;
+ }
+</style>
+
+<script>
+
+function makeEl(eltype,props,contents) {
+ var elem = document.createElement(eltype);
+ for( var i in props ) {
+ if( props.hasOwnProperty(i) ) {
+ elem.setAttribute(i,props[i]);
+ }
+ }
+ if( contents ) {
+ elem.innerHTML = contents;
+ }
+ return elem;
+}
+
+var orange, fails = [], doneonce = false;
+window.onload = function() {
+ orange = document.getElementsByTagName('div')[2];
+ orange.ondragstart = function(e) {
+ e.dataTransfer.effectAllowed = 'copy';
+ e.dataTransfer.setData('Text', 'dummy text');
+ var err;
+ if( err = checkprops(e.dataTransfer.getData('application/microdata+json')) ) {
+ fails[fails.length] = e.type + ' ' + err;
+ }
+ };
+ orange.previousSibling.ondragenter = orange.previousSibling.ondragleave = orange.previousSibling.ondragover =
+ orange.ondrag = orange.ondragend = function(e) {
+ if( e.type == 'dragover' || e.type == 'dragenter' ) {
+ e.preventDefault();
+ e.dataTransfer.dropEffect = 'copy';
+ }
+ if( e.dataTransfer.getData('application/microdata+json') ) {
+ fails[fails.length] = e.type + ' unexpectedly had microdata (security restriction)';
+ }
+ };
+ orange.previousSibling.ondrop = function(e) {
+ var err;
+ if( err = checkprops(e.dataTransfer.getData('application/microdata+json')) ) {
+ fails[fails.length] = e.type + ' ' + err;
+ }
+ if( e.type != 'drop' ) { return; }
+ if( doneonce ) { return; }
+ doneonce = true;
+ setTimeout(function () {
+ document.getElementsByTagName('p')[0].innerHTML = fails.length ? ( 'FAIL: ' + fails.join('<br>') ) : 'PASS';
+ fails = [];
+ }, 200 );
+ };
+
+};
+function checkprops(md) {
+ var i;
+ if( !md ) { return 'no microdata'; }
+ md = JSON.parse(md);
+ if( !md.items ) { return 'no items collection'; }
+ if( md.items.length != 0 ) { return 'unexpected items found'; }
+ return '';
+}
+
+</script>
+
+<div></div><div></div><div>01<span>23</span>45<span>67</span>89</div>
+
+<p>Use your pointing device to select the text substring "12345678" above, drag the selection upwards to the pink box,
+then back to the blue box, and release it.</p>
+<noscript><p>Enable JavaScript and reload</p></noscript>