зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1241948 - Update web-platform-tests to revision 967dfa72eaa149af854c6c38cb64e28b4961a480, a=testonly
This commit is contained in:
Родитель
5f14071eeb
Коммит
4fd2b26023
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1 +1 @@
|
|||
d5e5a44a8bbe62751a66677491623a41b766275d
|
||||
37f9797ec21222276713e47b12a7aa8c805192df
|
|
@ -1,12 +1,13 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta charset="utf-8">
|
||||
<title>FormData.append</title>
|
||||
<link rel=help href=https://xhr.spec.whatwg.org/#dom-formdata-append>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<div id=log></div>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#dom-formdata-append">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<form id="form" />
|
||||
<script>
|
||||
function test_formdata(creator, verifier, description) {
|
||||
function test_formdata(creator, verifier, description) {
|
||||
async_test(description).step(function() {
|
||||
var fd = creator();
|
||||
var xhr = new XMLHttpRequest();
|
||||
|
@ -16,13 +17,78 @@ function test_formdata(creator, verifier, description) {
|
|||
});
|
||||
xhr.open("POST", "resources/upload.py");
|
||||
xhr.send(fd);
|
||||
})
|
||||
}
|
||||
test_formdata(function() {
|
||||
});
|
||||
}
|
||||
|
||||
test_formdata(function() {
|
||||
var fd = new FormData();
|
||||
fd.append("name", new String("value"));
|
||||
return fd;
|
||||
}, function(data) {
|
||||
}, function(data) {
|
||||
assert_equals(data, "name=value,\n");
|
||||
}, "Passing a String object to FormData.append should work.");
|
||||
}, "Passing a String object to FormData.append should work.");
|
||||
|
||||
test(function() {
|
||||
assert_equals(create_formdata(['key', 'value1']).get('key'), "value1");
|
||||
}, 'testFormDataAppend1');
|
||||
test(function() {
|
||||
assert_equals(create_formdata(['key', 'value2'], ['key', 'value1']).get('key'), "value2");
|
||||
}, 'testFormDataAppend2');
|
||||
test(function() {
|
||||
assert_equals(create_formdata(['key', undefined]).get('key'), "undefined");
|
||||
}, 'testFormDataAppendUndefined1');
|
||||
test(function() {
|
||||
assert_equals(create_formdata(['key', undefined], ['key', 'value1']).get('key'), "undefined");
|
||||
}, 'testFormDataAppendUndefined2');
|
||||
test(function() {
|
||||
assert_equals(create_formdata(['key', null]).get('key'), "null");
|
||||
}, 'testFormDataAppendNull1');
|
||||
test(function() {
|
||||
assert_equals(create_formdata(['key', null], ['key', 'value1']).get('key'), "null");
|
||||
}, 'testFormDataAppendNull2');
|
||||
test(function() {
|
||||
var fd = new FormData(document.getElementById("form"));
|
||||
fd.append('key', 'value1');
|
||||
assert_equals(fd.get('key'), "value1");
|
||||
}, 'testFormDataAppendToForm1');
|
||||
test(function() {
|
||||
var fd = new FormData(document.getElementById("form"));
|
||||
fd.append('key', 'value2');
|
||||
fd.append('key', 'value1');
|
||||
assert_equals(fd.get('key'), "value2");
|
||||
}, 'testFormDataAppendToForm2');
|
||||
test(function() {
|
||||
var fd = new FormData(document.getElementById("form"));
|
||||
fd.append('key', undefined);
|
||||
assert_equals(fd.get('key'), "undefined");
|
||||
}, 'testFormDataAppendToFormUndefined1');
|
||||
test(function() {
|
||||
var fd = new FormData(document.getElementById("form"));
|
||||
fd.append('key', undefined);
|
||||
fd.append('key', 'value1');
|
||||
assert_equals(fd.get('key'), "undefined");
|
||||
}, 'testFormDataAppendToFormUndefined2');
|
||||
test(function() {
|
||||
var fd = new FormData(document.getElementById("form"));
|
||||
fd.append('key', null);
|
||||
assert_equals(fd.get('key'), "null");
|
||||
}, 'testFormDataAppendToFormNull1');
|
||||
test(function() {
|
||||
var fd = new FormData(document.getElementById("form"));
|
||||
fd.append('key', null);
|
||||
fd.append('key', 'value1');
|
||||
assert_equals(fd.get('key'), "null");
|
||||
}, 'testFormDataAppendToFormNull2');
|
||||
test(function() {
|
||||
assert_object_equals(create_formdata(['key', new Blob(), 'blank.txt']).get('key'),
|
||||
new File(new Blob(), 'blank.txt'));
|
||||
}, 'testFormDataAppendEmptyBlob');
|
||||
|
||||
function create_formdata() {
|
||||
var fd = new FormData();
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
fd.append.apply(fd, arguments[i]);
|
||||
};
|
||||
return fd;
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
<!doctype html>
|
||||
<html lang=en>
|
||||
<meta charset=utf-8>
|
||||
<title>FormData: delete</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#dom-formdata-get" />
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#dom-formdata-getall" />
|
||||
<div id="log"></div>
|
||||
<form id="form1">
|
||||
<input type="hidden" name="key" value="value1">
|
||||
<input type="hidden" name="key" value="value2">
|
||||
</form>
|
||||
<form id="form2">
|
||||
<input type="hidden" name="key1" value="value1">
|
||||
<input type="hidden" name="key2" value="value2">
|
||||
</form>
|
||||
<form id="empty-form" />
|
||||
<script>
|
||||
test(function() {
|
||||
var fd = create_formdata(['key', 'value1'], ['key', 'value2']);
|
||||
fd.delete('key');
|
||||
assert_equals(fd.get('key'), null);
|
||||
}, 'testFormDataDelete');
|
||||
test(function() {
|
||||
var fd = new FormData(document.getElementById('form1'));
|
||||
fd.delete('key');
|
||||
assert_equals(fd.get('key'), null);
|
||||
}, 'testFormDataDeleteFromForm');
|
||||
test(function() {
|
||||
var fd = new FormData(document.getElementById('form1'));
|
||||
fd.delete('nil');
|
||||
assert_equals(fd.get('key'), 'value1');
|
||||
}, 'testFormDataDeleteFromFormNonExistentKey');
|
||||
test(function() {
|
||||
var fd = new FormData(document.getElementById('form2'));
|
||||
fd.delete('key1');
|
||||
assert_equals(fd.get('key1'), null);
|
||||
assert_equals(fd.get('key2'), 'value2');
|
||||
}, 'testFormDataDeleteFromFormOtherKey');
|
||||
test(function() {
|
||||
var fd = new FormData(document.getElementById('empty-form'));
|
||||
fd.delete('key');
|
||||
assert_equals(fd.get('key'), null);
|
||||
}, 'testFormDataDeleteFromEmptyForm');
|
||||
test(function() {
|
||||
var fd = create_formdata(['key', 'value1'], ['key', 'value2']);
|
||||
fd.delete('nil');
|
||||
assert_equals(fd.get('key'), 'value1');
|
||||
}, 'testFormDataDeleteNonExistentKey');
|
||||
test(function() {
|
||||
var fd = create_formdata(['key1', 'value1'], ['key2', 'value2']);
|
||||
fd.delete('key1');
|
||||
assert_equals(fd.get('key1'), null);
|
||||
assert_equals(fd.get('key2'), 'value2');
|
||||
}, 'testFormDataDeleteOtherKey');
|
||||
|
||||
function create_formdata() {
|
||||
var fd = new FormData();
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
fd.append.apply(fd, arguments[i]);
|
||||
};
|
||||
return fd;
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,60 @@
|
|||
<!doctype html>
|
||||
<html lang=en>
|
||||
<meta charset=utf-8>
|
||||
<title>FormData: get and getAll</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#dom-formdata-get" />
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#dom-formdata-getall" />
|
||||
<div id="log"></div>
|
||||
<form id="form">
|
||||
<input type="hidden" name="key" value="value1">
|
||||
<input type="hidden" name="key" value="value2">
|
||||
</form>
|
||||
<form id="empty-form" />
|
||||
<script>
|
||||
test(function() {
|
||||
assert_equals(create_formdata(['key', 'value1'], ['key', 'value2']).get('key'), "value1");
|
||||
}, 'testFormDataGet');
|
||||
test(function() {
|
||||
assert_equals(new FormData(document.getElementById('form')).get('key'), "value1");
|
||||
}, 'testFormDataGetFromForm');
|
||||
test(function() {
|
||||
assert_equals(new FormData(document.getElementById('form')).get('nil'), null);
|
||||
}, 'testFormDataGetFromFormNull');
|
||||
test(function() {
|
||||
assert_equals(new FormData(document.getElementById('empty-form')).get('key'), null);
|
||||
}, 'testFormDataGetFromEmptyForm');
|
||||
test(function() {
|
||||
assert_equals(create_formdata(['key', 'value1'], ['key', 'value2']).get('nil'), null);
|
||||
}, 'testFormDataGetNull1');
|
||||
test(function() {
|
||||
assert_equals(create_formdata().get('key'), null);
|
||||
}, 'testFormDataGetNull2');
|
||||
test(function() {
|
||||
assert_array_equals(create_formdata(['key', 'value1'], ['key', 'value2']).getAll('key'), ["value1", "value2"]);
|
||||
}, 'testFormDataGetAll');
|
||||
test(function() {
|
||||
assert_array_equals(create_formdata(['key', 'value1'], ['key', 'value2']).getAll('nil'), []);
|
||||
}, 'testFormDataGetAllEmpty1');
|
||||
test(function() {
|
||||
assert_array_equals(create_formdata().getAll('key'), []);
|
||||
}, 'testFormDataGetAllEmpty2');
|
||||
test(function() {
|
||||
assert_array_equals(new FormData(document.getElementById('form')).getAll('key'), ["value1", "value2"]);
|
||||
}, 'testFormDataGetAllFromForm');
|
||||
test(function() {
|
||||
assert_array_equals(new FormData(document.getElementById('form')).getAll('nil'), []);
|
||||
}, 'testFormDataGetAllFromFormNull');
|
||||
test(function() {
|
||||
assert_array_equals(new FormData(document.getElementById('empty-form')).getAll('key'), []);
|
||||
}, 'testFormDataGetAllFromEmptyForm');
|
||||
|
||||
function create_formdata() {
|
||||
var fd = new FormData();
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
fd.append.apply(fd, arguments[i]);
|
||||
};
|
||||
return fd;
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,42 @@
|
|||
<!doctype html>
|
||||
<html lang=en>
|
||||
<meta charset=utf-8>
|
||||
<title>FormData: has</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#dom-formdata-get" />
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#dom-formdata-getall" />
|
||||
<div id="log"></div>
|
||||
<form id="form">
|
||||
<input type="hidden" name="key" value="value1">
|
||||
<input type="hidden" name="key" value="value2">
|
||||
</form>
|
||||
<form id="empty-form" />
|
||||
<script>
|
||||
test(function() {
|
||||
assert_equals(create_formdata(['key', 'value1'], ['key', 'value2']).has('key'), true);
|
||||
}, 'testFormDataHas');
|
||||
test(function() {
|
||||
assert_equals(new FormData(document.getElementById('form')).has('key'), true);
|
||||
}, 'testFormDataHasFromForm');
|
||||
test(function() {
|
||||
assert_equals(new FormData(document.getElementById('form')).has('nil'), false);
|
||||
}, 'testFormDataHasFromFormNull');
|
||||
test(function() {
|
||||
assert_equals(new FormData(document.getElementById('empty-form')).has('key'), false);
|
||||
}, 'testFormDataHasFromEmptyForm');
|
||||
test(function() {
|
||||
assert_equals(create_formdata(['key', 'value1'], ['key', 'value2']).has('nil'), false);
|
||||
}, 'testFormDataHasEmpty1');
|
||||
test(function() {
|
||||
assert_equals(create_formdata().has('key'), false);
|
||||
}, 'testFormDataHasEmpty2');
|
||||
|
||||
function create_formdata() {
|
||||
var fd = new FormData();
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
fd.append.apply(fd, arguments[i]);
|
||||
};
|
||||
return fd;
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,94 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>FormData: set</title>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#dom-formdata-set">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<form id="form" />
|
||||
<script>
|
||||
function test_formdata(creator, verifier, description) {
|
||||
async_test(description).step(function() {
|
||||
var fd = creator();
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.onload = this.step_func(function() {
|
||||
verifier(xhr.responseText);
|
||||
this.done();
|
||||
});
|
||||
xhr.open("POST", "resources/upload.py");
|
||||
xhr.send(fd);
|
||||
});
|
||||
}
|
||||
|
||||
test_formdata(function() {
|
||||
var fd = new FormData();
|
||||
fd.set("name", new String("value"));
|
||||
return fd;
|
||||
}, function(data) {
|
||||
assert_equals(data, "name=value,\n");
|
||||
}, "Passing a String object to FormData.set should work");
|
||||
|
||||
test(function() {
|
||||
assert_equals(create_formdata(['key', 'value1']).get('key'), "value1");
|
||||
}, 'testFormDataSet1');
|
||||
test(function() {
|
||||
assert_equals(create_formdata(['key', 'value2'], ['key', 'value1']).get('key'), "value1");
|
||||
}, 'testFormDataSet2');
|
||||
test(function() {
|
||||
assert_equals(create_formdata(['key', undefined]).get('key'), "undefined");
|
||||
}, 'testFormDataSetUndefined1');
|
||||
test(function() {
|
||||
assert_equals(create_formdata(['key', undefined], ['key', 'value1']).get('key'), "value1");
|
||||
}, 'testFormDataSetUndefined2');
|
||||
test(function() {
|
||||
assert_equals(create_formdata(['key', null]).get('key'), "null");
|
||||
}, 'testFormDataSetNull1');
|
||||
test(function() {
|
||||
assert_equals(create_formdata(['key', null], ['key', 'value1']).get('key'), "value1");
|
||||
}, 'testFormDataSetNull2');
|
||||
test(function() {
|
||||
var fd = new FormData(document.getElementById("form"));
|
||||
fd.set('key', 'value1');
|
||||
assert_equals(fd.get('key'), "value1");
|
||||
}, 'testFormDataSetToForm1');
|
||||
test(function() {
|
||||
var fd = new FormData(document.getElementById("form"));
|
||||
fd.set('key', 'value2');
|
||||
fd.set('key', 'value1');
|
||||
assert_equals(fd.get('key'), "value1");
|
||||
}, 'testFormDataSetToForm2');
|
||||
test(function() {
|
||||
var fd = new FormData(document.getElementById("form"));
|
||||
fd.set('key', undefined);
|
||||
assert_equals(fd.get('key'), "undefined");
|
||||
}, 'testFormDataSetToFormUndefined1');
|
||||
test(function() {
|
||||
var fd = new FormData(document.getElementById("form"));
|
||||
fd.set('key', undefined);
|
||||
fd.set('key', 'value1');
|
||||
assert_equals(fd.get('key'), "value1");
|
||||
}, 'testFormDataSetToFormUndefined2');
|
||||
test(function() {
|
||||
var fd = new FormData(document.getElementById("form"));
|
||||
fd.set('key', null);
|
||||
assert_equals(fd.get('key'), "null");
|
||||
}, 'testFormDataSetToFormNull1');
|
||||
test(function() {
|
||||
var fd = new FormData(document.getElementById("form"));
|
||||
fd.set('key', null);
|
||||
fd.set('key', 'value1');
|
||||
assert_equals(fd.get('key'), "value1");
|
||||
}, 'testFormDataSetToFormNull2');
|
||||
test(function() {
|
||||
assert_object_equals(create_formdata(['key', new Blob(), 'blank.txt']).get('key'),
|
||||
new File(new Blob(), 'blank.txt'));
|
||||
}, 'testFormDataSetEmptyBlob');
|
||||
|
||||
function create_formdata() {
|
||||
var fd = new FormData();
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
fd.set.apply(fd, arguments[i]);
|
||||
};
|
||||
return fd;
|
||||
}
|
||||
</script>
|
|
@ -12,10 +12,16 @@
|
|||
<script>
|
||||
test(function() {
|
||||
var client = new XMLHttpRequest()
|
||||
client.open("GET", "resources/content.py?ß", false)
|
||||
client.send(null)
|
||||
client.open("GET", "resources/content.py?\u00DF", false) // This is the German "eszett" character
|
||||
client.send()
|
||||
assert_equals(client.getResponseHeader("x-request-query"), "%C3%9F")
|
||||
})
|
||||
}, "percent encode characters");
|
||||
test(function() {
|
||||
var client = new XMLHttpRequest()
|
||||
client.open("GET", "resources/content.py?\uD83D", false)
|
||||
client.send()
|
||||
assert_equals(client.getResponseHeader("x-request-query"), "%EF%BF%BD")
|
||||
}, "lone surrogate should return U+FFFD");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>XMLHttpRequest: worker scripts, origin and referrer</title>
|
||||
<link rel="stylesheet" href="/resources/testharness.css" />
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#the-open()-method" data-tested-assertations="following::OL[1]/LI[3] following::OL[1]/LI[3]/ol[1]/li[1] following::OL[1]/LI[3]/ol[1]/li[2] following::OL[1]/LI[3]/ol[1]/li[3]" />
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>XMLHttpRequest: relative URLs in worker scripts resolved by script URL</title>
|
||||
<link rel="stylesheet" href="/resources/testharness.css" />
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#the-open()-method" data-tested-assertations="following::OL[1]/LI[3] following::OL[1]/LI[3]/ol[1]/li[1]" />
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
<link rel="help" href="https://xhr.spec.whatwg.org/#event-xhr-timeout" data-tested-assertations="../.." />
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#request-error" data-tested-assertations="following::ol/li[9]"/>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method" data-tested-assertations="following-sibling::dl//code[contains(@title,'dom-XMLHttpRequest-timeout')]/.. following-sibling::dl//code[contains(@title,'dom-XMLHttpRequest-timeout')]/../following-sibling::dd following::dt[1] following::dd[1]" />
|
||||
<link rel="stylesheet" href="/resources/testharness.css" />
|
||||
<meta name=timeout content=long>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
<link rel="help" href="https://xhr.spec.whatwg.org/#abort-error" data-tested-assertations=".."/>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#event-xhr-abort" data-tested-assertations="../.." />
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#request-error" data-tested-assertations="following::ol/li[9]"/>
|
||||
<link rel="stylesheet" href="/resources/testharness.css" />
|
||||
<meta name=timeout content=long>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
<link rel="help" href="https://xhr.spec.whatwg.org/#handler-xhr-ontimeout" data-tested-assertations="../.."/>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#timeout-error" data-tested-assertations=".."/>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#request-error" data-tested-assertations="following::ol[1]/li[9]"/>
|
||||
<link rel="stylesheet" href="/resources/testharness.css" />
|
||||
<meta name=timeout content=long>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
<link rel="help" href="https://xhr.spec.whatwg.org/#timeout-error" data-tested-assertations=".."/>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#request-error" data-tested-assertations="following::ol[1]/li[9]"/>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method" data-tested-assertations="following-sibling::dl//code[contains(@title,'dom-XMLHttpRequest-timeout')]/.. following-sibling::dl//code[contains(@title,'dom-XMLHttpRequest-timeout')]/../following-sibling::dd following::dt[1] following::dd[1]" />
|
||||
<link rel="stylesheet" href="/resources/testharness.css" />
|
||||
<meta name=timeout content=long>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
<link rel="help" href="https://xhr.spec.whatwg.org/#timeout-error" data-tested-assertations=".."/>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#request-error" data-tested-assertations="following::ol[1]/li[9]"/>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method" data-tested-assertations="following-sibling::dl//code[contains(@title,'dom-XMLHttpRequest-timeout')]/.. following-sibling::dl//code[contains(@title,'dom-XMLHttpRequest-timeout')]/../following-sibling::dd following::dt[1] following::dd[1]" />
|
||||
<link rel="stylesheet" href="/resources/testharness.css" />
|
||||
<meta name=timeout content=long>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
<title>XHR2 Timeout Property Tests</title>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#the-timeout-attribute" data-tested-assertations="following::ol[1]/li[1]" />
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#the-open()-method" data-tested-assertations="following::ol[1]/li[10]" />
|
||||
<link rel="stylesheet" href="/resources/testharness.css" />
|
||||
<meta name=timeout content=long>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
<meta charset="utf-8" />
|
||||
<title>XHR2 Timeout Property Tests</title>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#timeout-error" />
|
||||
<link rel="stylesheet" href="/resources/testharness.css" />
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#the-timeout-attribute" data-tested-assertations="following::ol[1]/li[2]" />
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#handler-xhr-ontimeout" data-tested-assertations="../.."/>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#timeout-error" data-tested-assertations=".."/>
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
<link rel="help" href="https://xhr.spec.whatwg.org/#event-xhr-timeout" data-tested-assertations="../.." />
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#request-error" data-tested-assertations="following::ol/li[9]"/>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method" data-tested-assertations="following-sibling::dl//code[contains(@title,'dom-XMLHttpRequest-timeout')]/.. following-sibling::dl//code[contains(@title,'dom-XMLHttpRequest-timeout')]/../following-sibling::dd following::dt[1] following::dd[1]" />
|
||||
<link rel="stylesheet" href="/resources/testharness.css" />
|
||||
<meta name=timeout content=long>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
<link rel="help" href="https://xhr.spec.whatwg.org/#handler-xhr-ontimeout" data-tested-assertations="../.."/>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#timeout-error" data-tested-assertations=".."/>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#request-error" data-tested-assertations="following::ol[1]/li[9]"/>
|
||||
<link rel="stylesheet" href="/resources/testharness.css" />
|
||||
<meta name=timeout content=long>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
<link rel="help" href="https://xhr.spec.whatwg.org/#timeout-error" data-tested-assertations=".."/>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#request-error" data-tested-assertations="following::ol[1]/li[9]"/>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method" data-tested-assertations="following-sibling::dl//code[contains(@title,'dom-XMLHttpRequest-timeout')]/.. following-sibling::dl//code[contains(@title,'dom-XMLHttpRequest-timeout')]/../following-sibling::dd following::dt[1] following::dd[1]" />
|
||||
<link rel="stylesheet" href="/resources/testharness.css" />
|
||||
<meta name=timeout content=long>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
<link rel="help" href="https://xhr.spec.whatwg.org/#timeout-error" data-tested-assertations=".."/>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#request-error" data-tested-assertations="following::ol[1]/li[9]"/>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method" data-tested-assertations="following-sibling::dl//code[contains(@title,'dom-XMLHttpRequest-timeout')]/.. following-sibling::dl//code[contains(@title,'dom-XMLHttpRequest-timeout')]/../following-sibling::dd following::dt[1] following::dd[1]" />
|
||||
<link rel="stylesheet" href="/resources/testharness.css" />
|
||||
<meta name=timeout content=long>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
<link rel="help" href="https://xhr.spec.whatwg.org/#timeout-error" data-tested-assertations=".."/>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#request-error" data-tested-assertations="following::ol[1]/li[9]"/>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method" data-tested-assertations="following-sibling::dl//code[contains(@title,'dom-XMLHttpRequest-timeout')]/.. following-sibling::dl//code[contains(@title,'dom-XMLHttpRequest-timeout')]/../following-sibling::dd following::dt[1] following::dd[1]" />
|
||||
<link rel="stylesheet" href="/resources/testharness.css" />
|
||||
<meta name=timeout content=long>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
<link rel="help" href="https://xhr.spec.whatwg.org/#timeout-error" data-tested-assertations=".."/>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#request-error" data-tested-assertations="following::ol[1]/li[9]"/>
|
||||
<link rel="help" href="https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method" data-tested-assertations="following-sibling::dl//code[contains(@title,'dom-XMLHttpRequest-timeout')]/.. following-sibling::dl//code[contains(@title,'dom-XMLHttpRequest-timeout')]/../following-sibling::dd following::dt[1] following::dd[1]" />
|
||||
<link rel="stylesheet" href="/resources/testharness.css" />
|
||||
<meta name=timeout content=long>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
|
|
@ -31,10 +31,9 @@ async_test(function (t) {
|
|||
navigator.getBattery().then(function (battery) {
|
||||
t.step(function () {
|
||||
assert_true(battery.charging, 'charging must be set to true');
|
||||
assert_less_than(battery.chargingTime, Infinity, 'chargingTime must be less than Infinity');
|
||||
assert_equals(battery.dischargingTime, Infinity, 'dischargingTime must be set to Infinity');
|
||||
assert_greater_than(battery.level, 0, 'level must be greater than 0');
|
||||
assert_less_than(battery.level, 1.0, 'level must be less than 1.0');
|
||||
assert_less_than_equal(battery.level, 1.0, 'level must be less than or equal to 1.0');
|
||||
|
||||
var battery_level = battery.level;
|
||||
battery.onlevelchange = t.step_func(function () {
|
||||
|
|
|
@ -32,9 +32,8 @@ async_test(function (t) {
|
|||
t.step(function () {
|
||||
assert_false(battery.charging, 'charging must be set to false');
|
||||
assert_equals(battery.chargingTime, Infinity, 'chargingTime must be set to Infinity');
|
||||
assert_less_than(battery.dischargingTime, Infinity, 'dischargingTime must be less than Infinity');
|
||||
assert_greater_than(battery.level, 0, 'level must be greater than 0');
|
||||
assert_less_than(battery.level, 1.0, 'level must be less than 1.0');
|
||||
assert_less_than_equal(battery.level, 1.0, 'level must be less than or equal to 1.0');
|
||||
|
||||
var battery_level = battery.level;
|
||||
battery.onlevelchange = t.step_func(function () {
|
||||
|
|
|
@ -18,6 +18,9 @@ interface EventTarget {
|
|||
interface EventListener {
|
||||
void handleEvent(Event event);
|
||||
};
|
||||
[TreatNonObjectAsNull]
|
||||
callback EventHandlerNonNull = any (Event event);
|
||||
typedef EventHandlerNonNull? EventHandler;
|
||||
</script>
|
||||
<script type="text/plain">
|
||||
partial interface Navigator {
|
||||
|
@ -37,15 +40,25 @@ interface BatteryManager : EventTarget {
|
|||
</script>
|
||||
<script>
|
||||
"use strict";
|
||||
var t = async_test();
|
||||
var idl_array = new IdlArray();
|
||||
var idls;
|
||||
var manager;
|
||||
[].forEach.call(document.querySelectorAll('script[type=text\\/plain]'), function(node) {
|
||||
// replace 'EventHandler' and 'unrestricted double' unrecognized by idlharness.js
|
||||
idls = node.textContent.replace(/EventHandler/g, 'Function?').replace(/unrestricted double/g, 'double');
|
||||
idls = node.textContent;
|
||||
idl_array[(node.className === 'untested') ? 'add_untested_idls' : 'add_idls'](idls);
|
||||
});
|
||||
idl_array.add_objects({Navigator: ['navigator'], BatteryManager: ['navigator.getBattery()']});
|
||||
idl_array.test();
|
||||
t.step(function() {
|
||||
assert_idl_attribute(navigator, 'getBattery', 'navigator must have getBattery attribute');
|
||||
navigator.getBattery().then(function(bm) {
|
||||
manager = bm;
|
||||
idl_array.add_objects({Navigator: ['navigator'], BatteryManager: ['manager']});
|
||||
idl_array.test();
|
||||
t.done();
|
||||
}).catch(function(err) {
|
||||
t.assert_unreached("navigator.getBattery failed");
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<h2>Description</h2>
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>Battery Test: Interface API</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="battery-interface.js"></script>
|
||||
|
||||
<h2>Description</h2>
|
||||
<p>
|
||||
This test validates the BatteryManager interface IDL.
|
||||
</p>
|
||||
|
||||
<div id="log"></div>
|
|
@ -1,340 +0,0 @@
|
|||
(function() {
|
||||
|
||||
setup("", {explicit_done: true});
|
||||
|
||||
/**
|
||||
*
|
||||
* partial interface Navigator {
|
||||
* Promise<BatteryManager> getBattery ();
|
||||
* };
|
||||
*
|
||||
*/
|
||||
|
||||
test(function() {
|
||||
assert_idl_attribute(navigator, 'getBattery', 'navigator must have getBattery attribute');
|
||||
}, 'getBattery is present on navigator');
|
||||
|
||||
navigator.getBattery().then(function (battery) {
|
||||
|
||||
/**
|
||||
*
|
||||
* interface BatteryManager : EventTarget {
|
||||
* readonly attribute boolean charging;
|
||||
* readonly attribute unrestricted double chargingTime;
|
||||
* readonly attribute unrestricted double dischargingTime;
|
||||
* readonly attribute double level;
|
||||
* attribute EventHandler onchargingchange;
|
||||
* attribute EventHandler onchargingtimechange;
|
||||
* attribute EventHandler ondischargingtimechange;
|
||||
* attribute EventHandler onlevelchange;
|
||||
* };
|
||||
*
|
||||
*/
|
||||
|
||||
// interface BatteryManager : EventTarget {
|
||||
|
||||
test(function() {
|
||||
assert_own_property(window, 'BatteryManager');
|
||||
}, 'window has an own property BatteryManager');
|
||||
|
||||
test(function() {
|
||||
assert_true(battery instanceof EventTarget);
|
||||
}, 'battery inherits from EventTarget');
|
||||
|
||||
// readonly attribute boolean charging;
|
||||
|
||||
test(function() {
|
||||
assert_idl_attribute(battery, 'charging', 'battery must have charging attribute');
|
||||
}, 'charging attribute exists');
|
||||
|
||||
test(function() {
|
||||
assert_readonly(battery, 'charging', 'charging must be readonly')
|
||||
}, 'charging attribute is readonly');
|
||||
|
||||
// readonly attribute unrestricted double chargingTime;
|
||||
|
||||
test(function() {
|
||||
assert_idl_attribute(battery, 'chargingTime', 'battery must have chargingTime attribute');
|
||||
}, 'chargingTime attribute exists');
|
||||
|
||||
test(function() {
|
||||
assert_readonly(battery, 'chargingTime', 'chargingTime must be readonly')
|
||||
}, 'chargingTime attribute is readonly');
|
||||
|
||||
// readonly attribute unrestricted double dischargingTime;
|
||||
|
||||
test(function() {
|
||||
assert_idl_attribute(battery, 'dischargingTime', 'battery must have dischargingTime attribute');
|
||||
}, 'dischargingTime attribute exists');
|
||||
|
||||
test(function() {
|
||||
assert_readonly(battery, 'dischargingTime', 'dischargingTime must be readonly')
|
||||
}, 'dischargingTime attribute is readonly');
|
||||
|
||||
// readonly attribute double level;
|
||||
|
||||
test(function() {
|
||||
assert_idl_attribute(battery, 'level', 'battery must have level attribute');
|
||||
}, 'level attribute exists');
|
||||
|
||||
test(function() {
|
||||
assert_readonly(battery, 'level', 'level must be readonly')
|
||||
}, 'level attribute is readonly');
|
||||
|
||||
// attribute EventHandler onchargingchange;
|
||||
|
||||
test(function() {
|
||||
assert_idl_attribute(battery, 'onchargingchange', 'battery must have onchargingchange attribute');
|
||||
}, 'onchargingchange attribute exists');
|
||||
|
||||
test(function() {
|
||||
assert_equals(battery.onchargingchange, null, 'onchargingchange must be null')
|
||||
}, 'onchargingchange is null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'onchargingchange did not accept callable object',
|
||||
func = function() {},
|
||||
desc = 'Expected to find onchargingchange attribute on battery object';
|
||||
assert_idl_attribute(battery, 'onchargingchange', desc);
|
||||
window.onchargingchange = func;
|
||||
assert_equals(window.onchargingchange, func, desc);
|
||||
}, 'onchargingchange is set to function');
|
||||
|
||||
test(function() {
|
||||
var desc = 'onchargingchange did not treat noncallable as null';
|
||||
battery.onchargingchange = function() {};
|
||||
battery.onchargingchange = {};
|
||||
assert_equals(battery.onchargingchange, null, desc);
|
||||
}, 'onchargingchange: treat object as null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'onchargingchange did not treat noncallable as null';
|
||||
battery.onchargingchange = function() {};
|
||||
battery.onchargingchange = {
|
||||
call: 'test'
|
||||
};
|
||||
assert_equals(battery.onchargingchange, null, desc);
|
||||
}, 'onchargingchange: treat object with non-callable call property as null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'onchargingchange did not treat noncallable (string) as null';
|
||||
battery.onchargingchange = function() {};
|
||||
battery.onchargingchange = 'string';
|
||||
assert_equals(battery.onchargingchange, null, desc);
|
||||
}, 'onchargingchange: treat string as null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'onchargingchange did not treat noncallable (number) as null';
|
||||
battery.onchargingchange = function() {};
|
||||
battery.onchargingchange = 123;
|
||||
assert_equals(battery.onchargingchange, null, desc);
|
||||
}, 'onchargingchange: treat number as null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'onchargingchange did not treat noncallable (undefined) as null';
|
||||
battery.onchargingchange = function() {};
|
||||
battery.onchargingchange = undefined;
|
||||
assert_equals(battery.onchargingchange, null, desc);
|
||||
}, 'onchargingchange: treat undefined as null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'onchargingchange did not treat noncallable (array) as null';
|
||||
battery.onchargingchange = function() {};
|
||||
battery.onchargingchange = [];
|
||||
assert_equals(battery.onchargingchange, null, desc);
|
||||
}, 'onchargingchange: treat array as null');
|
||||
|
||||
// attribute EventHandler onchargingtimechange;
|
||||
|
||||
test(function() {
|
||||
assert_idl_attribute(battery, 'onchargingtimechange', 'battery must have onchargingtimechange attribute');
|
||||
}, 'onchargingtimechange attribute exists');
|
||||
|
||||
test(function() {
|
||||
assert_equals(battery.onchargingtimechange, null, 'onchargingtimechange must be null')
|
||||
}, 'onchargingtimechange is null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'onchargingtimechange did not accept callable object',
|
||||
func = function() {},
|
||||
desc = 'Expected to find onchargingtimechange attribute on battery object';
|
||||
assert_idl_attribute(battery, 'onchargingtimechange', desc);
|
||||
window.onchargingtimechange = func;
|
||||
assert_equals(window.onchargingtimechange, func, desc);
|
||||
}, 'onchargingtimechange is set to function');
|
||||
|
||||
test(function() {
|
||||
var desc = 'onchargingtimechange did not treat noncallable as null';
|
||||
battery.onchargingtimechange = function() {};
|
||||
battery.onchargingtimechange = {};
|
||||
assert_equals(battery.onchargingtimechange, null, desc);
|
||||
}, 'onchargingtimechange: treat object as null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'onchargingtimechange did not treat noncallable as null';
|
||||
battery.onchargingtimechange = function() {};
|
||||
battery.onchargingtimechange = {
|
||||
call: 'test'
|
||||
};
|
||||
assert_equals(battery.onchargingtimechange, null, desc);
|
||||
}, 'onchargingtimechange: treat object with non-callable call property as null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'onchargingtimechange did not treat noncallable (string) as null';
|
||||
battery.onchargingtimechange = function() {};
|
||||
battery.onchargingtimechange = 'string';
|
||||
assert_equals(battery.onchargingtimechange, null, desc);
|
||||
}, 'onchargingtimechange: treat string as null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'onchargingtimechange did not treat noncallable (number) as null';
|
||||
battery.onchargingtimechange = function() {};
|
||||
battery.onchargingtimechange = 123;
|
||||
assert_equals(battery.onchargingtimechange, null, desc);
|
||||
}, 'onchargingtimechange: treat number as null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'onchargingtimechange did not treat noncallable (undefined) as null';
|
||||
battery.onchargingtimechange = function() {};
|
||||
battery.onchargingtimechange = undefined;
|
||||
assert_equals(battery.onchargingtimechange, null, desc);
|
||||
}, 'onchargingtimechange: treat undefined as null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'onchargingtimechange did not treat noncallable (array) as null';
|
||||
battery.onchargingtimechange = function() {};
|
||||
battery.onchargingtimechange = [];
|
||||
assert_equals(battery.onchargingtimechange, null, desc);
|
||||
}, 'onchargingtimechange: treat array as null');
|
||||
|
||||
// attribute EventHandler ondischargingtimechange;
|
||||
|
||||
test(function() {
|
||||
assert_idl_attribute(battery, 'ondischargingtimechange', 'battery must have ondischargingtimechange attribute');
|
||||
}, 'ondischargingtimechange attribute exists');
|
||||
|
||||
test(function() {
|
||||
assert_equals(battery.ondischargingtimechange, null, 'ondischargingtimechange must be null')
|
||||
}, 'ondischargingtimechange is null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'ondischargingtimechange did not accept callable object',
|
||||
func = function() {},
|
||||
desc = 'Expected to find ondischargingtimechange attribute on battery object';
|
||||
assert_idl_attribute(battery, 'ondischargingtimechange', desc);
|
||||
window.ondischargingtimechange = func;
|
||||
assert_equals(window.ondischargingtimechange, func, desc);
|
||||
}, 'ondischargingtimechange is set to function');
|
||||
|
||||
test(function() {
|
||||
var desc = 'ondischargingtimechange did not treat noncallable as null';
|
||||
battery.ondischargingtimechange = function() {};
|
||||
battery.ondischargingtimechange = {};
|
||||
assert_equals(battery.ondischargingtimechange, null, desc);
|
||||
}, 'ondischargingtimechange: treat object as null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'ondischargingtimechange did not treat noncallable as null';
|
||||
battery.ondischargingtimechange = function() {};
|
||||
battery.ondischargingtimechange = {
|
||||
call: 'test'
|
||||
};
|
||||
assert_equals(battery.ondischargingtimechange, null, desc);
|
||||
}, 'ondischargingtimechange: treat object with non-callable call property as null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'ondischargingtimechange did not treat noncallable (string) as null';
|
||||
battery.ondischargingtimechange = function() {};
|
||||
battery.ondischargingtimechange = 'string';
|
||||
assert_equals(battery.ondischargingtimechange, null, desc);
|
||||
}, 'ondischargingtimechange: treat string as null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'ondischargingtimechange did not treat noncallable (number) as null';
|
||||
battery.ondischargingtimechange = function() {};
|
||||
battery.ondischargingtimechange = 123;
|
||||
assert_equals(battery.ondischargingtimechange, null, desc);
|
||||
}, 'ondischargingtimechange: treat number as null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'ondischargingtimechange did not treat noncallable (undefined) as null';
|
||||
battery.ondischargingtimechange = function() {};
|
||||
battery.ondischargingtimechange = undefined;
|
||||
assert_equals(battery.ondischargingtimechange, null, desc);
|
||||
}, 'ondischargingtimechange: treat undefined as null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'ondischargingtimechange did not treat noncallable (array) as null';
|
||||
battery.ondischargingtimechange = function() {};
|
||||
battery.ondischargingtimechange = [];
|
||||
assert_equals(battery.ondischargingtimechange, null, desc);
|
||||
}, 'ondischargingtimechange: treat array as null');
|
||||
|
||||
// attribute EventHandler onlevelchange;
|
||||
|
||||
test(function() {
|
||||
assert_idl_attribute(battery, 'onlevelchange', 'battery must have onlevelchange attribute');
|
||||
}, 'onlevelchange attribute exists');
|
||||
|
||||
test(function() {
|
||||
assert_equals(battery.onlevelchange, null, 'onlevelchange must be null')
|
||||
}, 'onlevelchange is null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'onlevelchange did not accept callable object',
|
||||
func = function() {},
|
||||
desc = 'Expected to find onlevelchange attribute on battery object';
|
||||
assert_idl_attribute(battery, 'onlevelchange', desc);
|
||||
window.onlevelchange = func;
|
||||
assert_equals(window.onlevelchange, func, desc);
|
||||
}, 'onlevelchange is set to function');
|
||||
|
||||
test(function() {
|
||||
var desc = 'onlevelchange did not treat noncallable as null';
|
||||
battery.onlevelchange = function() {};
|
||||
battery.onlevelchange = {};
|
||||
assert_equals(battery.onlevelchange, null, desc);
|
||||
}, 'onlevelchange: treat object as null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'onlevelchange did not treat noncallable as null';
|
||||
battery.onlevelchange = function() {};
|
||||
battery.onlevelchange = {
|
||||
call: 'test'
|
||||
};
|
||||
assert_equals(battery.onlevelchange, null, desc);
|
||||
}, 'onlevelchange: treat object with non-callable call property as null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'onlevelchange did not treat noncallable (string) as null';
|
||||
battery.onlevelchange = function() {};
|
||||
battery.onlevelchange = 'string';
|
||||
assert_equals(battery.onlevelchange, null, desc);
|
||||
}, 'onlevelchange: treat string as null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'onlevelchange did not treat noncallable (number) as null';
|
||||
battery.onlevelchange = function() {};
|
||||
battery.onlevelchange = 123;
|
||||
assert_equals(battery.onlevelchange, null, desc);
|
||||
}, 'onlevelchange: treat number as null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'onlevelchange did not treat noncallable (undefined) as null';
|
||||
battery.onlevelchange = function() {};
|
||||
battery.onlevelchange = undefined;
|
||||
assert_equals(battery.onlevelchange, null, desc);
|
||||
}, 'onlevelchange: treat undefined as null');
|
||||
|
||||
test(function() {
|
||||
var desc = 'onlevelchange did not treat noncallable (array) as null';
|
||||
battery.onlevelchange = function() {};
|
||||
battery.onlevelchange = [];
|
||||
assert_equals(battery.onlevelchange, null, desc);
|
||||
}, 'onlevelchange: treat array as null');
|
||||
|
||||
done();
|
||||
|
||||
}, function () {});
|
||||
|
||||
})();
|
|
@ -65,7 +65,7 @@
|
|||
|
||||
battery.onlevelchange = onlevelchange_test.step_func(function () {
|
||||
assert_greater_than(battery.level, 0);
|
||||
assert_less_than(battery.level, 1.0);
|
||||
assert_less_than_equal(battery.level, 1.0);
|
||||
onlevelchange_test.done();
|
||||
});
|
||||
};
|
||||
|
|
|
@ -28,9 +28,6 @@
|
|||
The battery must not be full or reach full capacity during the time the test is run.
|
||||
</li>
|
||||
</ol>
|
||||
<p>
|
||||
The highest prime number discovered so far is: <output id="prime"></output>
|
||||
</p>
|
||||
|
||||
<div id="note">
|
||||
Unplug the charger and wait for all the tests to complete.
|
||||
|
@ -67,9 +64,8 @@
|
|||
|
||||
battery.onlevelchange = onlevelchange_test.step_func(function () {
|
||||
assert_greater_than(battery.level, 0);
|
||||
assert_less_than(battery.level, 1.0);
|
||||
assert_less_than_equal(battery.level, 1.0);
|
||||
onlevelchange_test.done();
|
||||
w.terminate();
|
||||
});
|
||||
};
|
||||
|
||||
|
|
|
@ -111,7 +111,7 @@
|
|||
"html/elements/a/href/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/a/href/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/a/href/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/a/href/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/a/href/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/a/href/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/a/href/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/a/href/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -180,7 +180,7 @@
|
|||
"html/elements/area/href/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/area/href/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/area/href/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/area/href/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/area/href/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/area/href/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/area/href/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/area/href/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -249,7 +249,7 @@
|
|||
"html/elements/audio/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/audio/src/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/audio/src/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/audio/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/audio/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/audio/src/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/audio/src/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/audio/src/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -314,7 +314,7 @@
|
|||
"html/elements/base/href/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/base/href/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/base/href/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/base/href/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/base/href/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/base/href/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/base/href/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/base/href/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -379,7 +379,7 @@
|
|||
"html/elements/blockquote/cite/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/blockquote/cite/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/blockquote/cite/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/blockquote/cite/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/blockquote/cite/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/blockquote/cite/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/blockquote/cite/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/blockquote/cite/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -447,7 +447,7 @@
|
|||
"html/elements/button/formaction/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/button/formaction/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/button/formaction/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/button/formaction/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/button/formaction/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/button/formaction/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/button/formaction/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/button/formaction/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -514,7 +514,7 @@
|
|||
"html/elements/del/cite/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/del/cite/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/del/cite/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/del/cite/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/del/cite/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/del/cite/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/del/cite/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/del/cite/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -676,7 +676,7 @@
|
|||
"html/elements/embed/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/embed/src/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/embed/src/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/embed/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/embed/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/embed/src/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/embed/src/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/embed/src/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -746,7 +746,7 @@
|
|||
"html/elements/form/action/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/form/action/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/form/action/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/form/action/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/form/action/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/form/action/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/form/action/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/form/action/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -821,7 +821,7 @@
|
|||
"html/elements/html/manifest/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cmanifest\u201d on element \u201chtml\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/html/manifest/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201cmanifest\u201d on element \u201chtml\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/html/manifest/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201cmanifest\u201d on element \u201chtml\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/html/manifest/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201cmanifest\u201d on element \u201chtml\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/html/manifest/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201cmanifest\u201d on element \u201chtml\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/html/manifest/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201cmanifest\u201d on element \u201chtml\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/html/manifest/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201cmanifest\u201d on element \u201chtml\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/html/manifest/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201cmanifest\u201d on element \u201chtml\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -889,7 +889,7 @@
|
|||
"html/elements/iframe/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/iframe/src/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/iframe/src/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/iframe/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/iframe/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/iframe/src/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/iframe/src/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/iframe/src/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -956,7 +956,7 @@
|
|||
"html/elements/img/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/img/src/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/img/src/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/img/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/img/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/img/src/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/img/src/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/img/src/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -1027,7 +1027,7 @@
|
|||
"html/elements/input/type-image-formaction/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/input/type-image-formaction/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/input/type-image-formaction/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/input/type-image-formaction/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/input/type-image-formaction/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/input/type-image-formaction/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/input/type-image-formaction/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/input/type-image-formaction/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -1093,7 +1093,7 @@
|
|||
"html/elements/input/type-image-src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/input/type-image-src/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/input/type-image-src/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/input/type-image-src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/input/type-image-src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/input/type-image-src/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/input/type-image-src/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/input/type-image-src/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -1159,7 +1159,7 @@
|
|||
"html/elements/input/type-submit-formaction/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/input/type-submit-formaction/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/input/type-submit-formaction/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/input/type-submit-formaction/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/input/type-submit-formaction/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/input/type-submit-formaction/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/input/type-submit-formaction/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/input/type-submit-formaction/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -1233,7 +1233,7 @@
|
|||
"html/elements/input/type-url-value/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/input/type-url-value/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/input/type-url-value/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/input/type-url-value/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/input/type-url-value/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/input/type-url-value/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/input/type-url-value/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/input/type-url-value/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -1297,7 +1297,7 @@
|
|||
"html/elements/ins/cite/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/ins/cite/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/ins/cite/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/ins/cite/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/ins/cite/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/ins/cite/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/ins/cite/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/ins/cite/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -1464,7 +1464,7 @@
|
|||
"html/elements/link/href/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/link/href/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/link/href/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/link/href/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/link/href/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/link/href/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/link/href/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/link/href/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -1532,7 +1532,7 @@
|
|||
"html/elements/object/data/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/object/data/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/object/data/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/object/data/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/object/data/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/object/data/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/object/data/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/object/data/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -1800,7 +1800,7 @@
|
|||
"html/elements/q/cite/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/q/cite/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/q/cite/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/q/cite/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/q/cite/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/q/cite/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/q/cite/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/q/cite/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -1871,7 +1871,7 @@
|
|||
"html/elements/script/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/script/src/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/script/src/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/script/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/script/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/script/src/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/script/src/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/script/src/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -1938,7 +1938,7 @@
|
|||
"html/elements/source/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/source/src/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/source/src/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/source/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/source/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/source/src/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/source/src/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/source/src/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -2016,7 +2016,7 @@
|
|||
"html/elements/track/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/track/src/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/track/src/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/track/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/track/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/track/src/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/track/src/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/track/src/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -2085,7 +2085,7 @@
|
|||
"html/elements/video/poster/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/video/poster/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/video/poster/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/video/poster/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/video/poster/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/video/poster/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/video/poster/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/video/poster/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -2149,7 +2149,7 @@
|
|||
"html/elements/video/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/elements/video/src/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/elements/video/src/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/elements/video/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/video/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/elements/video/src/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/elements/video/src/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/elements/video/src/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -2236,7 +2236,7 @@
|
|||
"html/microdata/itemid/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
|
||||
"html/microdata/itemid/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
|
||||
"html/microdata/itemid/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/microdata/itemid/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/microdata/itemid/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/microdata/itemid/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/microdata/itemid/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/microdata/itemid/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
@ -2308,7 +2308,7 @@
|
|||
"html/microdata/itemtype/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201cfoo.com\u201d is not an absolute URL.",
|
||||
"html/microdata/itemtype/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201cfoo.com\u201d is not an absolute URL.",
|
||||
"html/microdata/itemtype/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Backslash (\"\\\") used as path segment delimiter.",
|
||||
"html/microdata/itemtype/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&afoo((b]c@d:2/\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/microdata/itemtype/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
|
||||
"html/microdata/itemtype/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
"html/microdata/itemtype/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: User or password contains an at symbol (\"@\") not percent-encoded.",
|
||||
"html/microdata/itemtype/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
|
||||
|
|
|
@ -31,7 +31,6 @@ var interfaces = [
|
|||
"NodeFilter",
|
||||
"NodeList",
|
||||
"HTMLCollection",
|
||||
"DOMStringList",
|
||||
"DOMTokenList",
|
||||
"DOMSettableTokenList"
|
||||
];
|
||||
|
|
|
@ -6,18 +6,20 @@
|
|||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id=log></div>
|
||||
<span class=" a a b"></span>
|
||||
<span class=" a a b "></span>
|
||||
<script>
|
||||
test(function() {
|
||||
assert_equals(String(document.createElement("span").classList), "",
|
||||
"String(classList) should return the empty list for an undefined class attribute");
|
||||
var span = document.querySelector("span");
|
||||
assert_equals(span.getAttribute("class"), " a a b",
|
||||
assert_equals(span.getAttribute("class"), " a a b ",
|
||||
"getAttribute should return the literal value");
|
||||
assert_equals(span.className, " a a b",
|
||||
assert_equals(span.className, " a a b ",
|
||||
"className should return the literal value");
|
||||
assert_equals(String(span.classList), "a b",
|
||||
"String(classList) should compress whitespace");
|
||||
assert_equals(span.classList.toString(), "a b",
|
||||
"classList.toString() should compress whitespace");
|
||||
assert_equals(String(span.classList), " a a b ",
|
||||
"String(classList) should return the literal value");
|
||||
assert_equals(span.classList.toString(), " a a b ",
|
||||
"classList.toString() should return the literal value");
|
||||
assert_class_string(span.classList, "DOMTokenList");
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -62,9 +62,9 @@ test(function () {
|
|||
assert_equals( elem.className, ' ' );
|
||||
}, 'className should contain initial markup whitespace');
|
||||
test(function () {
|
||||
assert_equals( elem.classList + '', '', 'implicit' );
|
||||
assert_equals( elem.classList.toString(), '', 'explicit' );
|
||||
}, 'empty classList should return the empty string since the ordered set parser skip the whitespaces');
|
||||
assert_equals( elem.classList + '', ' ', 'implicit' );
|
||||
assert_equals( elem.classList.toString(), ' ', 'explicit' );
|
||||
}, 'classList should contain initial markup whitespace');
|
||||
test(function () {
|
||||
assert_throws( 'SYNTAX_ERR', function () { elem.classList.contains(''); } );
|
||||
}, '.contains(empty_string) must throw a SYNTAX_ERR');
|
||||
|
|
|
@ -19,12 +19,17 @@ var XMLNS = "http://www.w3.org/2000/xmlns/"
|
|||
test(function() {
|
||||
document.body.setAttribute("abc", "pass")
|
||||
var attr = document.body.attributes[0]
|
||||
assert_true(attr instanceof Attr)
|
||||
assert_false(attr instanceof Node)
|
||||
assert_throws(new TypeError(), function() { attr.appendChild(document.createTextNode("fail")) })
|
||||
assert_throws(new TypeError(), function() { attr.appendChild(null) })
|
||||
assert_true(attr instanceof Attr, "should be an Attr")
|
||||
assert_false(attr instanceof Node, "should not be a Node")
|
||||
var removed_members = [
|
||||
"appendChild",
|
||||
"insertBefore",
|
||||
"childNodes",
|
||||
]
|
||||
removed_members.forEach(function(m) {
|
||||
assert_false(m in attr, m + " should not be supported")
|
||||
})
|
||||
assert_equals(attr.value, "pass")
|
||||
assert_false("childNodes" in attr, "Should not have childNodes")
|
||||
}, "AttrExodus")
|
||||
|
||||
// setAttribute exhaustive tests
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/hr-time/#sec-extenstions-performance-interface"/>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<link rel="stylesheet" href="/resources/testharness.css" />
|
||||
<script>
|
||||
test(function() {
|
||||
assert_equals(typeof window.performance, "object");
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/hr-time/#sec-monotonic-clock"/>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<link rel="stylesheet" href="/resources/testharness.css" />
|
||||
<script>
|
||||
test(function() {
|
||||
assert_true(window.performance.now() > 0, "window.performance.now() returns positive numbers");
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
// Up-to-date as of 2013-04-13.
|
||||
var obsoleteElements = {
|
||||
// https://html.spec.whatwg.org/multipage/#the-applet-element
|
||||
applet: {
|
||||
align: "string",
|
||||
alt: "string",
|
||||
|
@ -13,6 +14,7 @@ var obsoleteElements = {
|
|||
vspace: "unsigned long",
|
||||
width: "string",
|
||||
},
|
||||
// https://html.spec.whatwg.org/multipage/#the-marquee-element-2
|
||||
marquee: {
|
||||
behavior: "string",
|
||||
bgColor: "string",
|
||||
|
@ -25,10 +27,12 @@ var obsoleteElements = {
|
|||
vspace: "unsigned long",
|
||||
width: "string",
|
||||
},
|
||||
// https://html.spec.whatwg.org/multipage/#frameset
|
||||
frameset: {
|
||||
cols: "string",
|
||||
rows: "string",
|
||||
},
|
||||
// https://html.spec.whatwg.org/multipage/#frame
|
||||
frame: {
|
||||
name: "string",
|
||||
scrolling: "string",
|
||||
|
@ -39,9 +43,11 @@ var obsoleteElements = {
|
|||
marginHeight: {type: "string", treatNullAsEmptyString: true},
|
||||
marginWidth: {type: "string", treatNullAsEmptyString: true},
|
||||
},
|
||||
// https://html.spec.whatwg.org/multipage/#htmldirectoryelement
|
||||
dir: {
|
||||
compact: "boolean",
|
||||
},
|
||||
// https://html.spec.whatwg.org/multipage/#htmlfontelement
|
||||
font: {
|
||||
color: {type: "string", treatNullAsEmptyString: true},
|
||||
face: "string",
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: isolated from following number, opposite direction</title>
|
||||
<link rel="author" title="Richard Ishida" href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel="match" href='reference/dir-isolation-001-ref.html'>
|
||||
<meta name="assert" content='Element content with a dir attribute is treated as a neutral character and directionally isolated from a following number.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr"><span dir="rtl">א</span> 3</div>
|
||||
<div dir="ltr"><span dir="rtl">a</span> 3</div>
|
||||
<div dir="rtl"><span dir="ltr">א</span> 3</div>
|
||||
<div dir="rtl"><span dir="ltr">a</span> 3</div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭א 3‬</div>
|
||||
<div dir="ltr">‭a 3‬</div>
|
||||
<div dir="rtl">‭3 א‬</div>
|
||||
<div dir="rtl">‭3 a‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: isolated from following number, auto</title>
|
||||
<link rel="author" title="Richard Ishida" href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel="match" href='reference/dir-isolation-001-ref.html'>
|
||||
<meta name="assert" content='Element content with a dir attribute is treated as a neutral character and directionally isolated from a following number.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr"><span dir="auto">א</span> 3</div>
|
||||
<div dir="ltr"><span dir="auto">a</span> 3</div>
|
||||
<div dir="rtl"><span dir="auto">א</span> 3</div>
|
||||
<div dir="rtl"><span dir="auto">a</span> 3</div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭א 3‬</div>
|
||||
<div dir="ltr">‭a 3‬</div>
|
||||
<div dir="rtl">‭3 א‬</div>
|
||||
<div dir="rtl">‭3 a‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: isolated from following number, same direction</title>
|
||||
<link rel="author" title="Richard Ishida" href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel="match" href='reference/dir-isolation-001-ref.html'>
|
||||
<meta name="assert" content='Element content with a dir attribute is treated as a neutral character and directionally isolated from a following number.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr"><span dir="ltr">א</span> 3</div>
|
||||
<div dir="ltr"><span dir="ltr">a</span> 3</div>
|
||||
<div dir="rtl"><span dir="rtl">א</span> 3</div>
|
||||
<div dir="rtl"><span dir="rtl">a</span> 3</div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭א 3‬</div>
|
||||
<div dir="ltr">‭a 3‬</div>
|
||||
<div dir="rtl">‭3 א‬</div>
|
||||
<div dir="rtl">‭3 a‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: isolated from following number with intervening neutrals, opposite direction</title>
|
||||
<link rel="author" title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-002a-ref.html'>
|
||||
<meta name='assert' content='Element content with a dir attribute is treated as a neutral character and directionally isolated from a following number.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr"><span dir="rtl">> א ></span> > 3 ></div>
|
||||
<div dir="ltr"><span dir="rtl">> a ></span> > 3 ></div>
|
||||
<div dir="rtl"><span dir="ltr">> א ></span> > 3 ></div>
|
||||
<div dir="rtl"><span dir="ltr">> a ></span> > 3 ></div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭< א < > 3 >‬</div>
|
||||
<div dir="ltr">‭< a < > 3 >‬</div>
|
||||
<div dir="rtl">‭< 3 < > א >‬</div>
|
||||
<div dir="rtl">‭< 3 < > a >‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: isolated from following number with intervening neutrals, auto</title>
|
||||
<link rel="author" title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-002b-ref.html'>
|
||||
<meta name='assert' content='Element content with a dir attribute is treated as a neutral character and directionally isolated from a following number.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr"><span dir="auto">> א ></span> > 3 ></div>
|
||||
<div dir="ltr"><span dir="auto">> a ></span> > 3 ></div>
|
||||
<div dir="rtl"><span dir="auto">> א ></span> > 3 ></div>
|
||||
<div dir="rtl"><span dir="auto">> a ></span> > 3 ></div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭< א < > 3 >‬</div>
|
||||
<div dir="ltr">‭> a > > 3 >‬</div>
|
||||
<div dir="rtl">‭< 3 < < א <‬</div>
|
||||
<div dir="rtl">‭< 3 < > a >‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: isolated from following number with intervening neutrals, same direction</title>
|
||||
<link rel="author" title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-002c-ref.html'>
|
||||
<meta name='assert' content='Element content with a dir attribute is treated as a neutral character and directionally isolated from a following number.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr"><span dir="ltr">> א ></span> > 3 ></div>
|
||||
<div dir="ltr"><span dir="ltr">> a ></span> > 3 ></div>
|
||||
<div dir="rtl"><span dir="rtl">> א ></span> > 3 ></div>
|
||||
<div dir="rtl"><span dir="rtl">> a ></span> > 3 ></div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭> א > > 3 >‬</div>
|
||||
<div dir="ltr">‭> a > > 3 >‬</div>
|
||||
<div dir="rtl">‭< 3 < < א <‬</div>
|
||||
<div dir="rtl">‭< 3 < < a <‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: isolated from immediately following number, opposite direction</title>
|
||||
<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-003-ref.html'>
|
||||
<meta name='assert' content='Element content with a dir attribute is treated as a neutral character and is directionally isolated from a following number, even with no intervening white space.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr"><span dir="rtl">א</span>3</div>
|
||||
<div dir="ltr"><span dir="rtl">a</span>3</div>
|
||||
<div dir="rtl"><span dir="ltr">א</span>3</div>
|
||||
<div dir="rtl"><span dir="ltr">a</span>3</div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭א3‬</div>
|
||||
<div dir="ltr">‭a3‬</div>
|
||||
<div dir="rtl">‭3א‬</div>
|
||||
<div dir="rtl">‭3a‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: isolated from immediately following number, auto</title>
|
||||
<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-003-ref.html'>
|
||||
<meta name='assert' content='Element content with a dir attribute is treated as a neutral character and is directionally isolated from a following number, even with no intervening white space.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr"><span dir="auto">א</span>3</div>
|
||||
<div dir="ltr"><span dir="auto">a</span>3</div>
|
||||
<div dir="rtl"><span dir="auto">א</span>3</div>
|
||||
<div dir="rtl"><span dir="auto">a</span>3</div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭א3‬</div>
|
||||
<div dir="ltr">‭a3‬</div>
|
||||
<div dir="rtl">‭3א‬</div>
|
||||
<div dir="rtl">‭3a‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: isolated from immediately following number, same direction</title>
|
||||
<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-003-ref.html'>
|
||||
<meta name='assert' content='Element content with a dir attribute is treated as a neutral character and is directionally isolated from a following number, even with no intervening white space.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr"><span dir="ltr">א</span>3</div>
|
||||
<div dir="ltr"><span dir="ltr">a</span>3</div>
|
||||
<div dir="rtl"><span dir="rtl">א</span>3</div>
|
||||
<div dir="rtl"><span dir="rtl">a</span>3</div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭א3‬</div>
|
||||
<div dir="ltr">‭a3‬</div>
|
||||
<div dir="rtl">‭3א‬</div>
|
||||
<div dir="rtl">‭3a‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: numbers isolated from preceding text, opposite direction</title>
|
||||
<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-004-ref.html'>
|
||||
<meta name='assert' content='Numeric element content with a dir attribute is treated as a neutral character and directionally isolated from preceding text.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr">א <span dir="rtl">3</span></div>
|
||||
<div dir="ltr">a <span dir="rtl">3</span></div>
|
||||
<div dir="rtl">א <span dir="ltr">3</span></div>
|
||||
<div dir="rtl">a <span dir="ltr">3</span></div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭א 3‬</div>
|
||||
<div dir="ltr">‭a 3‬</div>
|
||||
<div dir="rtl">‭3 א‬</div>
|
||||
<div dir="rtl">‭3 a‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: numbers isolated from preceding text, auto</title>
|
||||
<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-004-ref.html'>
|
||||
<meta name='assert' content='Numeric element content with a dir attribute is treated as a neutral character and directionally isolated from preceding text.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr">א <span dir="auto">3</span></div>
|
||||
<div dir="ltr">a <span dir="auto">3</span></div>
|
||||
<div dir="rtl">א <span dir="auto">3</span></div>
|
||||
<div dir="rtl">a <span dir="auto">3</span></div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭א 3‬</div>
|
||||
<div dir="ltr">‭a 3‬</div>
|
||||
<div dir="rtl">‭3 א‬</div>
|
||||
<div dir="rtl">‭3 a‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: numbers isolated from preceding text, same direction</title>
|
||||
<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-004-ref.html'>
|
||||
<meta name='assert' content='Numeric element content with a dir attribute is treated as a neutral character and directionally isolated from preceding text.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr">א <span dir="ltr">3</span></div>
|
||||
<div dir="ltr">a <span dir="ltr">3</span></div>
|
||||
<div dir="rtl">א <span dir="rtl">3</span></div>
|
||||
<div dir="rtl">a <span dir="rtl">3</span></div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭א 3‬</div>
|
||||
<div dir="ltr">‭a 3‬</div>
|
||||
<div dir="rtl">‭3 א‬</div>
|
||||
<div dir="rtl">‭3 a‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: isolated from following text, opposite direction</title>
|
||||
<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-005-ref.html'>
|
||||
<meta name='assert' content='Element content with a dir attribute is treated as a neutral character and directionally isolated from following text.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr"><span dir="rtl">א</span> ב...</div>
|
||||
<div dir="ltr"><span dir="rtl">a</span> b...</div>
|
||||
<div dir="rtl"><span dir="ltr">a</span> b...</div>
|
||||
<div dir="rtl"><span dir="ltr">א</span> ב...</div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭א ב...‬</div>
|
||||
<div dir="ltr">‭a b...‬</div>
|
||||
<div dir="rtl">‭...b a‬</div>
|
||||
<div dir="rtl">‭...ב א‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: isolated from following text, auto</title>
|
||||
<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-005-ref.html'>
|
||||
<meta name='assert' content='Element content with a dir attribute is treated as a neutral character and directionally isolated from following text.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr"><span dir="auto">א</span> ב...</div>
|
||||
<div dir="ltr"><span dir="auto">a</span> b...</div>
|
||||
<div dir="rtl"><span dir="auto">a</span> b...</div>
|
||||
<div dir="rtl"><span dir="auto">א</span> ב...</div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭א ב...‬</div>
|
||||
<div dir="ltr">‭a b...‬</div>
|
||||
<div dir="rtl">‭...b a‬</div>
|
||||
<div dir="rtl">‭...ב א‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: isolated from following text, same direction</title>
|
||||
<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-005-ref.html'>
|
||||
<meta name='assert' content='Element content with a dir attribute is treated as a neutral character and directionally isolated from following text.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr"><span dir="ltr">א</span> ב...</div>
|
||||
<div dir="ltr"><span dir="ltr">a</span> b...</div>
|
||||
<div dir="rtl"><span dir="rtl">a</span> b...</div>
|
||||
<div dir="rtl"><span dir="rtl">א</span> ב...</div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭א ב...‬</div>
|
||||
<div dir="ltr">‭a b...‬</div>
|
||||
<div dir="rtl">‭...b a‬</div>
|
||||
<div dir="rtl">‭...ב א‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: isolated from following text with intervening neutrals, opposite direction</title>
|
||||
<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-006-ref.html'>
|
||||
<meta name='assert' content='Element content with a dir attribute is treated as a neutral character and directionally isolated from following text despite intervening neutrals.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr"><span dir="rtl">> א ></span> > ב >...</div>
|
||||
<div dir="rtl"><span dir="ltr">> a ></span> > b >...</div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭< א < > ב >...‬</div>
|
||||
<div dir="rtl">‭...< b < > a >‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: isolated from following text with intervening neutrals, auto</title>
|
||||
<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-006-ref.html'>
|
||||
<meta name='assert' content='Element content with a dir attribute is treated as a neutral character and directionally isolated from following text despite intervening neutrals.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr"><span dir="auto">> א ></span> > ב >...</div>
|
||||
<div dir="rtl"><span dir="auto">> a ></span> > b >...</div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭< א < > ב >...‬</div>
|
||||
<div dir="rtl">‭...< b < > a >‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: isolated from following text with intervening neutrals, same direction</title>
|
||||
<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-006c-ref.html'>
|
||||
<meta name='assert' content='Element content with a dir attribute is treated as a neutral character and directionally isolated from following text despite intervening neutrals.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr"><span dir="ltr">> א ></span> > ב >...</div>
|
||||
<div dir="rtl"><span dir="rtl">> a ></span> > b >...</div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭> א > > ב >...‬</div>
|
||||
<div dir="rtl">‭...< b < < a <‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: isolated from immediately following text, opposite direction</title>
|
||||
<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-007-ref.html'>
|
||||
<meta name='assert' content='Element content with a dir attribute is treated as a neutral character and directionally isolated from following text even with no intervening white space.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr"><span dir="rtl">א</span>ב...</div>
|
||||
<div dir="ltr"><span dir="rtl">a</span>b...</div>
|
||||
<div dir="rtl"><span dir="ltr">a</span>b...</div>
|
||||
<div dir="rtl"><span dir="ltr">א</span>ב...</div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭אב...‬</div>
|
||||
<div dir="ltr">‭ab...‬</div>
|
||||
<div dir="rtl">‭...ba‬</div>
|
||||
<div dir="rtl">‭...בא‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: isolated from immediately following text, auto</title>
|
||||
<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-007-ref.html'>
|
||||
<meta name='assert' content='Element content with a dir attribute is treated as a neutral character and directionally isolated from following text even with no intervening white space.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr"><span dir="auto">א</span>ב...</div>
|
||||
<div dir="ltr"><span dir="auto">a</span>b...</div>
|
||||
<div dir="rtl"><span dir="auto">a</span>b...</div>
|
||||
<div dir="rtl"><span dir="auto">א</span>ב...</div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭אב...‬</div>
|
||||
<div dir="ltr">‭ab...‬</div>
|
||||
<div dir="rtl">‭...ba‬</div>
|
||||
<div dir="rtl">‭...בא‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: isolated from immediately following text, same direction</title>
|
||||
<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-007-ref.html'>
|
||||
<meta name='assert' content='Element content with a dir attribute is treated as a neutral character and directionally isolated from following text even with no intervening white space.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr"><span dir="ltr">א</span>ב...</div>
|
||||
<div dir="ltr"><span dir="ltr">a</span>b...</div>
|
||||
<div dir="rtl"><span dir="rtl">a</span>b...</div>
|
||||
<div dir="rtl"><span dir="rtl">א</span>ב...</div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭אב...‬</div>
|
||||
<div dir="ltr">‭ab...‬</div>
|
||||
<div dir="rtl">‭...ba‬</div>
|
||||
<div dir="rtl">‭...בא‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: isolated from preceding text, opposite direction</title>
|
||||
<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-008-ref.html'>
|
||||
<meta name='assert' content='Element content with a dir attribute is treated as a neutral character and directionally isolated from preceding text.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr">א <span dir="rtl">ב</span></div>
|
||||
<div dir="ltr">a <span dir="rtl">b</span></div>
|
||||
<div dir="rtl">א <span dir="ltr">ב</span></div>
|
||||
<div dir="rtl">a <span dir="ltr">b</span></div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭א ב‬</div>
|
||||
<div dir="ltr">‭a b‬</div>
|
||||
<div dir="rtl">‭ב א‬</div>
|
||||
<div dir="rtl">‭b a‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: isolated from preceding text, auto</title>
|
||||
<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-008-ref.html'>
|
||||
<meta name='assert' content='Element content with a dir attribute is treated as a neutral character and directionally isolated from preceding text.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr">א <span dir="auto">ב</span></div>
|
||||
<div dir="ltr">a <span dir="auto">b</span></div>
|
||||
<div dir="rtl">א <span dir="auto">ב</span></div>
|
||||
<div dir="rtl">a <span dir="auto">b</span></div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭א ב‬</div>
|
||||
<div dir="ltr">‭a b‬</div>
|
||||
<div dir="rtl">‭ב א‬</div>
|
||||
<div dir="rtl">‭b a‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>The dir attribute: isolated from preceding text, same direction</title>
|
||||
<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-008-ref.html'>
|
||||
<meta name='assert' content='Element content with a dir attribute is treated as a neutral character and directionally isolated from preceding text.'>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!--Notes:
|
||||
Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
The punctuation is moved around in the source to make it easier to do visual comparisons when the test is run.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr">א <span dir="ltr">ב</span></div>
|
||||
<div dir="ltr">a <span dir="ltr">b</span></div>
|
||||
<div dir="rtl">א <span dir="rtl">ב</span></div>
|
||||
<div dir="rtl">a <span dir="rtl">b</span></div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭א ב‬</div>
|
||||
<div dir="ltr">‭a b‬</div>
|
||||
<div dir="rtl">‭ב א‬</div>
|
||||
<div dir="rtl">‭b a‬</div>
|
||||
</div>
|
||||
</body></html>
|
|
@ -0,0 +1,33 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" >
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>The dir attribute: isolated from surrounding text, opposite direction</title>
|
||||
<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-009-ref.html'>
|
||||
<meta name='assert' content="Element content with a dir attribute is treated as a neutral character and directionally isolated from surrounding text.">
|
||||
<style type='text/css'>
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!-- Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
If the BDI in the test's first DIV were a SPAN, its b would prevent the א and the ב
|
||||
from forming a single RTL run and thus keep the >s between from being mirrored into <s.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr">א > <span dir="rtl">> b ></span> > ג...</div>
|
||||
<div dir="rtl">a > <span dir="ltr">> ב ></span> > c...</div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭ג < < b < < א...‬</div>
|
||||
<div dir="rtl">‭...a > > ב > > c‬</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,33 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" >
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>The dir attribute: isolated from surrounding text, auto</title>
|
||||
<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-009b-ref.html'>
|
||||
<meta name='assert' content="Element content with a dir attribute is treated as a neutral character and directionally isolated from surrounding text.">
|
||||
<style type='text/css'>
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!-- Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
If the BDI in the test's first DIV were a SPAN, its b would prevent the א and the ב
|
||||
from forming a single RTL run and thus keep the >s between from being mirrored into <s.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr">א > <span dir="auto">> b ></span> > ג...</div>
|
||||
<div dir="rtl">a > <span dir="auto">> ב ></span> > c...</div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭ג < > b > < א...‬</div>
|
||||
<div dir="rtl">‭...a > < ב < > c‬</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,33 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" >
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>The dir attribute: isolated from surrounding text, same direction</title>
|
||||
<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
|
||||
<link rel="help" href='http://www.w3.org/TR/html5/dom.html#requirements-relating-to-the-bidirectional-algorithm'>
|
||||
<link rel='match' href='reference/dir-isolation-009b-ref.html'>
|
||||
<meta name='assert' content="Element content with a dir attribute is treated as a neutral character and directionally isolated from surrounding text.">
|
||||
<style type='text/css'>
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<!-- Key to entities used below:
|
||||
א ... ו - The first six Hebrew letters (strongly RTL).
|
||||
‭ - The LRO (left-to-right-override) formatting character.
|
||||
‬ - The PDF (pop directional formatting) formatting character; closes LRO.
|
||||
If the BDI in the test's first DIV were a SPAN, its b would prevent the א and the ב
|
||||
from forming a single RTL run and thus keep the >s between from being mirrored into <s.
|
||||
-->
|
||||
<div class="test">
|
||||
<div dir="ltr">א > <span dir="ltr">> b ></span> > ג...</div>
|
||||
<div dir="rtl">a > <span dir="rtl">> ב ></span> > c...</div>
|
||||
</div>
|
||||
<div class="ref">
|
||||
<div dir="ltr">‭ג < > b > < א...‬</div>
|
||||
<div dir="rtl">‭...a > < ב < > c‬</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,16 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>The dir attribute: isolated from following number, opposite direction</title>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<div class="ref"><div dir="ltr">‭א 3‬</div><div dir="ltr">‭a 3‬</div><div dir="rtl">‭3 א‬</div><div dir="rtl">‭3 a‬</div></div>
|
||||
<div class="ref"><div dir="ltr">‭א 3‬</div><div dir="ltr">‭a 3‬</div><div dir="rtl">‭3 א‬</div><div dir="rtl">‭3 a‬</div></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,16 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>The dir attribute: isolated from following number with intervening neutrals, opposite direction</title>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<div class="ref"><div dir="ltr">‭< א < > 3 >‬</div><div dir="ltr">‭< a < > 3 >‬</div><div dir="rtl">‭< 3 < > א >‬</div><div dir="rtl">‭< 3 < > a >‬</div></div>
|
||||
<div class="ref"><div dir="ltr">‭< א < > 3 >‬</div><div dir="ltr">‭< a < > 3 >‬</div><div dir="rtl">‭< 3 < > א >‬</div><div dir="rtl">‭< 3 < > a >‬</div></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,16 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>The dir attribute: isolated from following number with intervening neutrals, auto</title>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<div class="ref"><div dir="ltr">‭< א < > 3 >‬</div><div dir="ltr">‭> a > > 3 >‬</div><div dir="rtl">‭< 3 < < א <‬</div><div dir="rtl">‭< 3 < > a >‬</div></div>
|
||||
<div class="ref"><div dir="ltr">‭< א < > 3 >‬</div><div dir="ltr">‭> a > > 3 >‬</div><div dir="rtl">‭< 3 < < א <‬</div><div dir="rtl">‭< 3 < > a >‬</div></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,16 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>The dir attribute: isolated from following number with intervening neutrals, same direction</title>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<div class="ref"><div dir="ltr">‭> א > > 3 >‬</div><div dir="ltr">‭> a > > 3 >‬</div><div dir="rtl">‭< 3 < < א <‬</div><div dir="rtl">‭< 3 < < a <‬</div></div>
|
||||
<div class="ref"><div dir="ltr">‭> א > > 3 >‬</div><div dir="ltr">‭> a > > 3 >‬</div><div dir="rtl">‭< 3 < < א <‬</div><div dir="rtl">‭< 3 < < a <‬</div></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,16 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>The dir attribute: isolated from immediately following number, opposite direction</title>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<div class="ref"><div dir="ltr">‭א3‬</div><div dir="ltr">‭a3‬</div><div dir="rtl">‭3א‬</div><div dir="rtl">‭3a‬</div></div>
|
||||
<div class="ref"><div dir="ltr">‭א3‬</div><div dir="ltr">‭a3‬</div><div dir="rtl">‭3א‬</div><div dir="rtl">‭3a‬</div></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,16 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>The dir attribute: numbers isolated from preceding text, opposite direction</title>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<div class="ref"><div dir="ltr">‭א 3‬</div><div dir="ltr">‭a 3‬</div><div dir="rtl">‭3 א‬</div><div dir="rtl">‭3 a‬</div></div>
|
||||
<div class="ref"><div dir="ltr">‭א 3‬</div><div dir="ltr">‭a 3‬</div><div dir="rtl">‭3 א‬</div><div dir="rtl">‭3 a‬</div></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,16 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>The dir attribute: isolated from following text, opposite direction</title>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<div class="ref"><div dir="ltr">‭א ב...‬</div><div dir="ltr">‭a b...‬</div><div dir="rtl">‭...b a‬</div><div dir="rtl">‭...ב א‬</div></div>
|
||||
<div class="ref"><div dir="ltr">‭א ב...‬</div><div dir="ltr">‭a b...‬</div><div dir="rtl">‭...b a‬</div><div dir="rtl">‭...ב א‬</div></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,16 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>The dir attribute: isolated from following text with intervening neutrals, opposite direction</title>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<div class="ref"><div dir="ltr">‭< א < > ב >...‬</div><div dir="rtl">‭...< b < > a >‬</div></div>
|
||||
<div class="ref"><div dir="ltr">‭< א < > ב >...‬</div><div dir="rtl">‭...< b < > a >‬</div></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,16 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>The dir attribute: isolated from following text with intervening neutrals, same direction</title>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<div class="ref"><div dir="ltr">‭> א > > ב >...‬</div><div dir="rtl">‭...< b < < a <‬</div></div>
|
||||
<div class="ref"><div dir="ltr">‭> א > > ב >...‬</div><div dir="rtl">‭...< b < < a <‬</div></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,16 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>The dir attribute: isolated from immediately following text, opposite direction</title>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<div class="ref"><div dir="ltr">‭אב...‬</div><div dir="ltr">‭ab...‬</div><div dir="rtl">‭...ba‬</div><div dir="rtl">‭...בא‬</div></div>
|
||||
<div class="ref"><div dir="ltr">‭אב...‬</div><div dir="ltr">‭ab...‬</div><div dir="rtl">‭...ba‬</div><div dir="rtl">‭...בא‬</div></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,16 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>The dir attribute: isolated from preceding text, opposite direction</title>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<div class="ref"><div dir="ltr">‭א ב‬</div><div dir="ltr">‭a b‬</div><div dir="rtl">‭ב א‬</div><div dir="rtl">‭b a‬</div></div>
|
||||
<div class="ref"><div dir="ltr">‭א ב‬</div><div dir="ltr">‭a b‬</div><div dir="rtl">‭ב א‬</div><div dir="rtl">‭b a‬</div></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,16 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>The dir attribute: isolated from surrounding text, opposite direction</title>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<div class="ref"><div dir="ltr">‭ג < < b < < א...‬</div><div dir="rtl">‭...a > > ב > > c‬</div></div>
|
||||
<div class="ref"><div dir="ltr">‭ג < < b < < א...‬</div><div dir="rtl">‭...a > > ב > > c‬</div></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,16 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>The dir attribute: isolated from surrounding text, auto</title>
|
||||
<style type="text/css">
|
||||
.test, .ref { font-size: 150%; border: 1px solid orange; margin: 10px; margin-right: 200px; padding: 5px; clear: both; }
|
||||
input { margin: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions" dir="ltr">Test passes if the two boxes are identical.</p>
|
||||
<div class="ref"><div dir="ltr">‭ג < > b > < א...‬</div><div dir="rtl">‭...a > < ב < > c‬</div></div>
|
||||
<div class="ref"><div dir="ltr">‭ג < > b > < א...‬</div><div dir="rtl">‭...a > < ב < > c‬</div></div>
|
||||
</body>
|
||||
</html>
|
|
@ -911,7 +911,7 @@ interface PropertyNodeList : NodeList {
|
|||
PropertyValueArray getValues();
|
||||
};
|
||||
|
||||
[OverrideBuiltins, Exposed=Window,Worker]
|
||||
[OverrideBuiltins, Exposed=(Window,Worker)]
|
||||
interface DOMStringMap {
|
||||
getter DOMString (DOMString name);
|
||||
setter creator void (DOMString name, DOMString value);
|
||||
|
@ -1977,7 +1977,7 @@ interface HTMLCanvasElement : HTMLElement {
|
|||
void toBlob(FileCallback? _callback, optional DOMString type, any... arguments);
|
||||
};
|
||||
|
||||
[Exposed=Window,Worker]
|
||||
[Exposed=(Window,Worker)]
|
||||
interface CanvasProxy {
|
||||
void setContext(RenderingContext context);
|
||||
};
|
||||
|
@ -1991,7 +1991,7 @@ typedef (HTMLImageElement or
|
|||
|
||||
enum CanvasFillRule { "nonzero", "evenodd" };
|
||||
|
||||
[Constructor(optional unsigned long width, unsigned long height), Exposed=Window,Worker]
|
||||
[Constructor(optional unsigned long width, unsigned long height), Exposed=(Window,Worker)]
|
||||
interface CanvasRenderingContext2D {
|
||||
|
||||
// back-reference to the canvas
|
||||
|
@ -2086,7 +2086,7 @@ interface CanvasRenderingContext2D {
|
|||
CanvasRenderingContext2D implements CanvasDrawingStyles;
|
||||
CanvasRenderingContext2D implements CanvasPathMethods;
|
||||
|
||||
[NoInterfaceObject, Exposed=Window,Worker]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface CanvasDrawingStyles {
|
||||
// line caps/joins
|
||||
attribute unrestricted double lineWidth; // (default 1)
|
||||
|
@ -2106,7 +2106,7 @@ interface CanvasDrawingStyles {
|
|||
attribute DOMString direction; // "ltr", "rtl", "inherit" (default: "inherit")
|
||||
};
|
||||
|
||||
[NoInterfaceObject, Exposed=Window,Worker]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface CanvasPathMethods {
|
||||
// shared path API methods
|
||||
void closePath();
|
||||
|
@ -2121,19 +2121,19 @@ interface CanvasPathMethods {
|
|||
void ellipse(unrestricted double x, unrestricted double y, unrestricted double radiusX, unrestricted double radiusY, unrestricted double rotation, unrestricted double startAngle, unrestricted double endAngle, optional boolean anticlockwise = false);
|
||||
};
|
||||
|
||||
[Exposed=Window,Worker]
|
||||
[Exposed=(Window,Worker)]
|
||||
interface CanvasGradient {
|
||||
// opaque object
|
||||
void addColorStop(double offset, DOMString color);
|
||||
};
|
||||
|
||||
[Exposed=Window,Worker]
|
||||
[Exposed=(Window,Worker)]
|
||||
interface CanvasPattern {
|
||||
// opaque object
|
||||
void setTransform(SVGMatrix transform);
|
||||
};
|
||||
|
||||
[Exposed=Window,Worker]
|
||||
[Exposed=(Window,Worker)]
|
||||
interface TextMetrics {
|
||||
// x-direction
|
||||
readonly attribute double width; // advance width
|
||||
|
@ -2167,21 +2167,21 @@ dictionary HitRegionOptions {
|
|||
|
||||
[Constructor(unsigned long sw, unsigned long sh),
|
||||
Constructor(Uint8ClampedArray data, unsigned long sw, optional unsigned long sh),
|
||||
Exposed=Window,Worker]
|
||||
Exposed=(Window,Worker)]
|
||||
interface ImageData {
|
||||
readonly attribute unsigned long width;
|
||||
readonly attribute unsigned long height;
|
||||
readonly attribute Uint8ClampedArray data;
|
||||
};
|
||||
|
||||
[Constructor(optional Element scope), Exposed=Window,Worker]
|
||||
[Constructor(optional Element scope), Exposed=(Window,Worker)]
|
||||
interface DrawingStyle { };
|
||||
DrawingStyle implements CanvasDrawingStyles;
|
||||
|
||||
[Constructor,
|
||||
Constructor(Path2D path),
|
||||
Constructor(Path2D[] paths, optional CanvasFillRule fillRule = "nonzero"),
|
||||
Constructor(DOMString d), Exposed=Window,Worker]
|
||||
Constructor(DOMString d), Exposed=(Window,Worker)]
|
||||
interface Path2D {
|
||||
void addPath(Path2D path, optional SVGMatrix? transformation = null);
|
||||
void addPathByStrokingPath(Path2D path, CanvasDrawingStyles styles, optional SVGMatrix? transformation = null);
|
||||
|
@ -2337,7 +2337,7 @@ interface History {
|
|||
[SameObject] readonly attribute USVString[] ancestorOrigins;
|
||||
};
|
||||
|
||||
[Constructor(DOMString type, optional PopStateEventInit eventInitDict), Exposed=Window,Worker]
|
||||
[Constructor(DOMString type, optional PopStateEventInit eventInitDict), Exposed=(Window,Worker)]
|
||||
interface PopStateEvent : Event {
|
||||
readonly attribute any state;
|
||||
};
|
||||
|
@ -2346,7 +2346,7 @@ dictionary PopStateEventInit : EventInit {
|
|||
any state;
|
||||
};
|
||||
|
||||
[Constructor(DOMString type, optional HashChangeEventInit eventInitDict), Exposed=Window,Worker]
|
||||
[Constructor(DOMString type, optional HashChangeEventInit eventInitDict), Exposed=(Window,Worker)]
|
||||
interface HashChangeEvent : Event {
|
||||
readonly attribute DOMString oldURL;
|
||||
readonly attribute DOMString newURL;
|
||||
|
@ -2357,7 +2357,7 @@ dictionary HashChangeEventInit : EventInit {
|
|||
DOMString newURL;
|
||||
};
|
||||
|
||||
[Constructor(DOMString type, optional PageTransitionEventInit eventInitDict), Exposed=Window,Worker]
|
||||
[Constructor(DOMString type, optional PageTransitionEventInit eventInitDict), Exposed=(Window,Worker)]
|
||||
interface PageTransitionEvent : Event {
|
||||
readonly attribute boolean persisted;
|
||||
};
|
||||
|
@ -2398,12 +2398,12 @@ interface ApplicationCache : EventTarget {
|
|||
attribute EventHandler onobsolete;
|
||||
};
|
||||
|
||||
[NoInterfaceObject, Exposed=Window,Worker]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface NavigatorOnLine {
|
||||
readonly attribute boolean onLine;
|
||||
};
|
||||
|
||||
[Constructor(DOMString type, optional ErrorEventInit eventInitDict), Exposed=Window,Worker]
|
||||
[Constructor(DOMString type, optional ErrorEventInit eventInitDict), Exposed=(Window,Worker)]
|
||||
interface ErrorEvent : Event {
|
||||
readonly attribute DOMString message;
|
||||
readonly attribute DOMString filename;
|
||||
|
@ -2516,14 +2516,14 @@ interface WindowEventHandlers {
|
|||
attribute EventHandler onunload;
|
||||
};
|
||||
|
||||
[NoInterfaceObject, Exposed=Window,Worker]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface WindowBase64 {
|
||||
DOMString btoa(DOMString btoa);
|
||||
DOMString atob(DOMString atob);
|
||||
};
|
||||
Window implements WindowBase64;
|
||||
|
||||
[NoInterfaceObject, Exposed=Window,Worker]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface WindowTimers {
|
||||
long setTimeout(Function handler, optional long timeout = 0, any... arguments);
|
||||
long setTimeout(DOMString handler, optional long timeout = 0, any... arguments);
|
||||
|
@ -2550,7 +2550,7 @@ Navigator implements NavigatorContentUtils;
|
|||
Navigator implements NavigatorStorageUtils;
|
||||
Navigator implements NavigatorPlugins;
|
||||
|
||||
[NoInterfaceObject, Exposed=Window,Worker]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface NavigatorID {
|
||||
readonly attribute DOMString appCodeName; // constant "Mozilla"
|
||||
readonly attribute DOMString appName;
|
||||
|
@ -2561,7 +2561,7 @@ interface NavigatorID {
|
|||
readonly attribute DOMString userAgent;
|
||||
};
|
||||
|
||||
[NoInterfaceObject, Exposed=Window,Worker]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface NavigatorLanguage {
|
||||
readonly attribute DOMString? language;
|
||||
readonly attribute DOMString[] languages;
|
||||
|
@ -2625,7 +2625,7 @@ interface External {
|
|||
unsigned long IsSearchProviderInstalled(DOMString engineURL);
|
||||
};
|
||||
|
||||
[Exposed=Window,Worker]
|
||||
[Exposed=(Window,Worker)]
|
||||
interface ImageBitmap {
|
||||
readonly attribute unsigned long width;
|
||||
readonly attribute unsigned long height;
|
||||
|
@ -2639,14 +2639,14 @@ typedef (HTMLImageElement or
|
|||
CanvasRenderingContext2D or
|
||||
ImageBitmap) ImageBitmapSource;
|
||||
|
||||
[NoInterfaceObject, Exposed=Window,Worker]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface ImageBitmapFactories {
|
||||
Promise createImageBitmap(ImageBitmapSource image, optional long sx, long sy, long sw, long sh);
|
||||
};
|
||||
Window implements ImageBitmapFactories;
|
||||
WorkerGlobalScope implements ImageBitmapFactories;
|
||||
|
||||
[Constructor(DOMString type, optional MessageEventInit eventInitDict), Exposed=Window,Worker]
|
||||
[Constructor(DOMString type, optional MessageEventInit eventInitDict), Exposed=(Window,Worker)]
|
||||
interface MessageEvent : Event {
|
||||
readonly attribute any data;
|
||||
readonly attribute DOMString origin;
|
||||
|
@ -2665,7 +2665,7 @@ dictionary MessageEventInit : EventInit {
|
|||
sequence<MessagePort> ports;
|
||||
};
|
||||
|
||||
[Constructor(DOMString url, optional EventSourceInit eventSourceInitDict), Exposed=Window,Worker]
|
||||
[Constructor(DOMString url, optional EventSourceInit eventSourceInitDict), Exposed=(Window,Worker)]
|
||||
interface EventSource : EventTarget {
|
||||
readonly attribute DOMString url;
|
||||
readonly attribute boolean withCredentials;
|
||||
|
@ -2688,7 +2688,7 @@ dictionary EventSourceInit {
|
|||
};
|
||||
|
||||
enum BinaryType { "blob", "arraybuffer" };
|
||||
[Constructor(DOMString url, optional (DOMString or DOMString[]) protocols), Exposed=Window,Worker]
|
||||
[Constructor(DOMString url, optional (DOMString or DOMString[]) protocols), Exposed=(Window,Worker)]
|
||||
interface WebSocket : EventTarget {
|
||||
readonly attribute DOMString url;
|
||||
|
||||
|
@ -2706,18 +2706,18 @@ interface WebSocket : EventTarget {
|
|||
attribute EventHandler onclose;
|
||||
readonly attribute DOMString extensions;
|
||||
readonly attribute DOMString protocol;
|
||||
void close([Clamp] optional unsigned short code, optional DOMString reason);
|
||||
void close([Clamp] optional unsigned short code, optional USVString reason);
|
||||
|
||||
// messaging
|
||||
attribute EventHandler onmessage;
|
||||
attribute BinaryType binaryType;
|
||||
void send(DOMString data);
|
||||
void send(USVString data);
|
||||
void send(Blob data);
|
||||
void send(ArrayBuffer data);
|
||||
void send(ArrayBufferView data);
|
||||
};
|
||||
|
||||
[Constructor(DOMString type, optional CloseEventInit eventInitDict), Exposed=Window,Worker]
|
||||
[Constructor(DOMString type, optional CloseEventInit eventInitDict), Exposed=(Window,Worker)]
|
||||
interface CloseEvent : Event {
|
||||
readonly attribute boolean wasClean;
|
||||
readonly attribute unsigned short code;
|
||||
|
@ -2730,13 +2730,13 @@ dictionary CloseEventInit : EventInit {
|
|||
DOMString reason;
|
||||
};
|
||||
|
||||
[Constructor, Exposed=Window,Worker]
|
||||
[Constructor, Exposed=(Window,Worker)]
|
||||
interface MessageChannel {
|
||||
readonly attribute MessagePort port1;
|
||||
readonly attribute MessagePort port2;
|
||||
};
|
||||
|
||||
[Exposed=Window,Worker]
|
||||
[Exposed=(Window,Worker)]
|
||||
interface MessagePort : EventTarget {
|
||||
void postMessage(any message, optional sequence<Transferable> transfer);
|
||||
void start();
|
||||
|
@ -2747,7 +2747,7 @@ interface MessagePort : EventTarget {
|
|||
};
|
||||
// MessagePort implements Transferable;
|
||||
|
||||
[Constructor, Exposed=Window,Worker]
|
||||
[Constructor, Exposed=(Window,Worker)]
|
||||
interface PortCollection {
|
||||
void add(MessagePort port);
|
||||
void remove(MessagePort port);
|
||||
|
@ -2757,7 +2757,7 @@ interface PortCollection {
|
|||
|
||||
callback PortCollectionCallback = void (MessagePort port);
|
||||
|
||||
[Constructor(DOMString channel), Exposed=Window,Worker]
|
||||
[Constructor(DOMString channel), Exposed=(Window,Worker)]
|
||||
interface BroadcastChannel : EventTarget {
|
||||
readonly attribute DOMString name;
|
||||
void postMessage(any message);
|
||||
|
@ -2792,12 +2792,12 @@ interface WorkerGlobalScope : EventTarget {
|
|||
attribute EventHandler onconnect;
|
||||
};
|
||||
|
||||
[NoInterfaceObject, Exposed=Window,Worker]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface AbstractWorker {
|
||||
attribute EventHandler onerror;
|
||||
};
|
||||
|
||||
[Constructor(DOMString scriptURL), Exposed=Window,Worker]
|
||||
[Constructor(DOMString scriptURL), Exposed=(Window,Worker)]
|
||||
interface Worker : EventTarget {
|
||||
void terminate();
|
||||
|
||||
|
@ -2806,7 +2806,7 @@ interface Worker : EventTarget {
|
|||
};
|
||||
Worker implements AbstractWorker;
|
||||
|
||||
[Constructor(DOMString scriptURL, optional DOMString name), Exposed=Window,Worker]
|
||||
[Constructor(DOMString scriptURL, optional DOMString name), Exposed=(Window,Worker)]
|
||||
interface SharedWorker : EventTarget {
|
||||
readonly attribute MessagePort port;
|
||||
};
|
||||
|
@ -3388,6 +3388,8 @@ window.onload = function() {
|
|||
PeerConnection: [],
|
||||
MediaStreamEvent: [],
|
||||
ErrorEvent: [],
|
||||
WebSocket: ['new WebSocket("ws://foo")'],
|
||||
CloseEvent: ['new CloseEvent("close")'],
|
||||
AbstractWorker: [],
|
||||
Worker: [],
|
||||
SharedWorker: [],
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>Unrecognized type should fallback as text type</title>
|
||||
<link rel="match" href="unrecognized-type-should-fallback-as-text-type-ref.html">
|
||||
<body>
|
||||
<input type="text">
|
||||
<input type="text">
|
||||
</body>
|
|
@ -0,0 +1,8 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>Unrecognized type should fallback as text type</title>
|
||||
<link rel="match" href="unrecognized-type-should-fallback-as-text-type-ref.html">
|
||||
<body>
|
||||
<input>
|
||||
<input type="unknown">
|
||||
</body>
|
|
@ -0,0 +1,37 @@
|
|||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.row {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.row div {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.red {
|
||||
background-color: red;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="row">
|
||||
<div class="red" style="width: 200px">a</div>
|
||||
<div style="width: 200px">a</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="red" style="width: 200px">a</div>
|
||||
<div style="width: 200px">a</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="red" style="width: 100px">a</div>
|
||||
<div style="width: 300px">a</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="red" style="width: 100px">a</div>
|
||||
<div style="width: 300px">a</div>
|
||||
</div>
|
|
@ -0,0 +1,54 @@
|
|||
<link rel="match" href="table-cell-width-ref.html">
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 400px;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
th {
|
||||
font-weight: normal;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
td, th {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
td:first-child, th:first-child {
|
||||
background-color: red;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- width=0 should be treated as 'auto' -->
|
||||
<table>
|
||||
<tr>
|
||||
<th width=0>a</th>
|
||||
<th>a</th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td width=0>a</td>
|
||||
<td>a</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- test valid width attribute value-->
|
||||
<table>
|
||||
<tr>
|
||||
<th width=100>a</th>
|
||||
<th>a</th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td width=100>a</td>
|
||||
<td>a</td>
|
||||
</tr>
|
||||
</table>
|
|
@ -0,0 +1,13 @@
|
|||
<style>
|
||||
p {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
<p>a b</p>
|
||||
|
||||
<hr>
|
||||
|
||||
<p>a</p>
|
||||
<p>b</p>
|
|
@ -0,0 +1,30 @@
|
|||
<link rel="match" href="table-width-ref.html">
|
||||
|
||||
<style>
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- width=0 should be treated as 'auto' -->
|
||||
<table width=0>
|
||||
<tr>
|
||||
<td>
|
||||
a b
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<hr>
|
||||
|
||||
<table width=1>
|
||||
<tr>
|
||||
<td>
|
||||
a b
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
|
@ -18,12 +18,13 @@
|
|||
<script>
|
||||
var t = async_test("toDataURL works before any context has been got");
|
||||
_addTest(function(canvas, ctx) {
|
||||
|
||||
var canvas2 = document.createElement('canvas');
|
||||
var data = canvas2.toDataURL();
|
||||
assert_regexp_match(data, /^data:image\/png[;,]/);
|
||||
|
||||
|
||||
var no_context_data = canvas.toDataURL();
|
||||
var ctx = canvas.getContext('2d');
|
||||
ctx.rect(0, 0, 100, 50);
|
||||
ctx.fillStyle = "rgba(0, 0, 0, 0)";
|
||||
ctx.fill();
|
||||
var data = canvas.toDataURL();
|
||||
assert_equals(no_context_data, data);
|
||||
});
|
||||
</script>
|
||||
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
<!doctype html>
|
||||
<title>img update the image data: fail to resolve URL</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id=log></div>
|
||||
|
||||
<img src="//[">
|
||||
<img srcset="//[">
|
||||
<img srcset="//[" src="/images/red.png">
|
||||
<img srcset="//[, /images/red.png">
|
||||
|
||||
<script>
|
||||
setup({explicit_done: true});
|
||||
|
||||
var expected = '//[';
|
||||
|
||||
onload = function() {
|
||||
[].forEach.call(document.images, function(img) {
|
||||
test(function() {
|
||||
assert_equals(img.currentSrc, expected);
|
||||
}, img.outerHTML);
|
||||
});
|
||||
done();
|
||||
};
|
||||
</script>
|
|
@ -0,0 +1,3 @@
|
|||
<form action="about:blank">
|
||||
<button id="submit">Submit</button>
|
||||
</form>
|
|
@ -0,0 +1,17 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title></title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<iframe src="button-activate-frame.html" onload="runTest()"></iframe>
|
||||
<script>
|
||||
var t = async_test("button activation behaviour submits form");
|
||||
function runTest() {
|
||||
var iframe = document.querySelector('iframe');
|
||||
iframe.onload = t.step_func(function() {
|
||||
t.done();
|
||||
});
|
||||
var doc = iframe.contentDocument;
|
||||
doc.querySelector('button').click();
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,20 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>Testing [SameObject] on the 'elements' attribute on the 'form' element</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
|
||||
<form>
|
||||
<input>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
var form = document.querySelector('form');
|
||||
var elements = form.elements;
|
||||
assert_true(elements === form.elements);
|
||||
form.appendChild(document.createElement('input'));
|
||||
assert_true(elements === form.elements);
|
||||
}, "[SameObject] should apply to 'elements' attr on <form>");
|
||||
</script>
|
|
@ -0,0 +1,15 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<title>Script src with a base URL</title>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<base href=../beta/>
|
||||
<div id=log></div>
|
||||
<script>
|
||||
function do_test(path) {
|
||||
test(function() {
|
||||
assert_equals(path, "beta");
|
||||
});
|
||||
}
|
||||
</script>
|
||||
<script src=test.js></script>
|
|
@ -0,0 +1 @@
|
|||
do_test("alpha");
|
|
@ -0,0 +1 @@
|
|||
do_test("beta");
|
|
@ -0,0 +1,27 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<title>Script src with an empty URL</title>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<base href=unreachable.js>
|
||||
<div id=log></div>
|
||||
<script>
|
||||
async_test(function(t) {
|
||||
window.unreachable = this.unreached_func("Should not load unreachable.js");
|
||||
var queued = false;
|
||||
var script = document.createElement("script");
|
||||
script.onerror = this.step_func_done(function(ev) {
|
||||
assert_equals(ev.type, "error");
|
||||
assert_false(ev.bubbles, "bubbles");
|
||||
assert_false(ev.cancelable, "cancelable");
|
||||
assert_true(ev.isTrusted, "isTrusted");
|
||||
assert_equals(ev.target, script);
|
||||
assert_true(ev instanceof Event, "instanceof Event");
|
||||
assert_class_string(ev, "Event");
|
||||
assert_true(queued, "event should not be dispatched synchronously");
|
||||
});
|
||||
script.setAttribute("src", "");
|
||||
document.body.appendChild(script);
|
||||
queued = true;
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,32 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<title>Script src with an empty URL</title>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<div id=log></div>
|
||||
<script>
|
||||
// For a better error message in case the UA tries to load "" (which resolves
|
||||
// to this document).
|
||||
setup({
|
||||
"allow_uncaught_exception": true,
|
||||
});
|
||||
async_test(function(t) {
|
||||
window.onerror = this.unreached_func("Should not get an error reported to " +
|
||||
"the window before the script");
|
||||
var queued = false;
|
||||
var script = document.createElement("script");
|
||||
script.onerror = this.step_func_done(function(ev) {
|
||||
assert_equals(ev.type, "error");
|
||||
assert_false(ev.bubbles, "bubbles");
|
||||
assert_false(ev.cancelable, "cancelable");
|
||||
assert_true(ev.isTrusted, "isTrusted");
|
||||
assert_equals(ev.target, script);
|
||||
assert_true(ev instanceof Event, "instanceof Event");
|
||||
assert_class_string(ev, "Event");
|
||||
assert_true(queued, "event should not be dispatched synchronously");
|
||||
});
|
||||
script.setAttribute("src", "");
|
||||
document.body.appendChild(script);
|
||||
queued = true;
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,25 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<title>Script src with an invalid URL</title>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<div id=log></div>
|
||||
<script>
|
||||
async_test(function(t) {
|
||||
var queued = false;
|
||||
var script = document.createElement("script");
|
||||
script.onerror = this.step_func_done(function(ev) {
|
||||
assert_equals(ev.type, "error");
|
||||
assert_false(ev.bubbles, "bubbles");
|
||||
assert_false(ev.cancelable, "cancelable");
|
||||
assert_true(ev.isTrusted, "isTrusted");
|
||||
assert_equals(ev.target, script);
|
||||
assert_true(ev instanceof Event, "instanceof Event");
|
||||
assert_class_string(ev, "Event");
|
||||
assert_true(queued, "event should not be dispatched synchronously");
|
||||
});
|
||||
script.setAttribute("src", "//[]");
|
||||
document.body.appendChild(script);
|
||||
queued = true;
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1 @@
|
|||
unreachable();
|
|
@ -15,10 +15,12 @@ setup(function() {
|
|||
script.appendChild(document.createElement("a"))
|
||||
.appendChild(document.createTextNode("ELEMENT"))
|
||||
})
|
||||
|
||||
test(function() {
|
||||
assert_equals(script.text, " TEXT ")
|
||||
assert_equals(script.textContent, " TEXT ELEMENT")
|
||||
}, "Getter")
|
||||
|
||||
test(function() {
|
||||
script.text = " text "
|
||||
assert_equals(script.text, " text ")
|
||||
|
@ -28,12 +30,14 @@ test(function() {
|
|||
assert_equals(script.firstChild, script.lastChild)
|
||||
assert_array_equals(script.childNodes, [script.firstChild])
|
||||
}, "Setter (non-empty string)")
|
||||
|
||||
test(function() {
|
||||
script.text = ""
|
||||
assert_equals(script.text, "")
|
||||
assert_equals(script.textContent, "")
|
||||
assert_equals(script.firstChild, null)
|
||||
}, "Setter (empty string)")
|
||||
|
||||
test(function() {
|
||||
script.text = null
|
||||
assert_equals(script.text, "null")
|
||||
|
@ -42,6 +46,7 @@ test(function() {
|
|||
assert_equals(script.firstChild.data, "null")
|
||||
assert_equals(script.firstChild, script.lastChild)
|
||||
}, "Setter (null)")
|
||||
|
||||
test(function() {
|
||||
script.text = undefined
|
||||
assert_equals(script.text, "undefined")
|
||||
|
@ -50,4 +55,18 @@ test(function() {
|
|||
assert_equals(script.firstChild.data, "undefined")
|
||||
assert_equals(script.firstChild, script.lastChild)
|
||||
}, "Setter (undefined)")
|
||||
|
||||
test(function() {
|
||||
var s = document.createElement("script");
|
||||
var text = document.createTextNode("one");
|
||||
s.appendChild(text);
|
||||
|
||||
assert_equals(s.firstChild, text);
|
||||
assert_equals(text.nodeValue, "one");
|
||||
|
||||
s.text = "two";
|
||||
assert_not_equals(s.firstChild, text);
|
||||
assert_equals(text.nodeValue, "one");
|
||||
assert_equals(s.firstChild.nodeValue, "two");
|
||||
}, "Setter (text node reuse)")
|
||||
</script>
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
t.step(function() {
|
||||
assert_false(dcl, "DOMContentLoaded should not have fired before executing " +
|
||||
"a defer script");
|
||||
|
||||
setTimeout(t.step_func(function() {
|
||||
assert_false(dcl, "DOMContentLoaded should not have fired before " +
|
||||
"executing a task queued from a defer script");
|
||||
setTimeout(t.step_func_done(function() {
|
||||
assert_true(dcl, "DOMContentLoaded should have fired in a task that " +
|
||||
"was queued after the DOMContentLoaded task was queued");
|
||||
}), 0);
|
||||
}), 0);
|
||||
});
|
|
@ -0,0 +1,17 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<title>The end: DOMContentLoaded and defer scripts</title>
|
||||
<link rel=help href="https://html.spec.whatwg.org/multipage/#the-end">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
var dcl;
|
||||
var t = async_test(function() {
|
||||
dcl = false;
|
||||
document.addEventListener("DOMContentLoaded", function(e) {
|
||||
dcl = true;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<script defer src=DOMContentLoaded-defer-support.js></script>
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче