Bug 1241948 - Update web-platform-tests to revision 967dfa72eaa149af854c6c38cb64e28b4961a480, a=testonly

This commit is contained in:
James Graham 2016-01-18 12:54:03 +00:00
Родитель 5f14071eeb
Коммит 4fd2b26023
2504 изменённых файлов: 194803 добавлений и 1296 удалений

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&#x5d0;</span> 3</div>
<div dir="ltr"><span dir="rtl">a</span> 3</div>
<div dir="rtl"><span dir="ltr">&#x5d0;</span> 3</div>
<div dir="rtl"><span dir="ltr">a</span> 3</div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&#x5d0; 3&#x202c;</div>
<div dir="ltr">&#x202d;a 3&#x202c;</div>
<div dir="rtl">&#x202d;3 &#x5d0;&#x202c;</div>
<div dir="rtl">&#x202d;3 a&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&#x5d0;</span> 3</div>
<div dir="ltr"><span dir="auto">a</span> 3</div>
<div dir="rtl"><span dir="auto">&#x5d0;</span> 3</div>
<div dir="rtl"><span dir="auto">a</span> 3</div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&#x5d0; 3&#x202c;</div>
<div dir="ltr">&#x202d;a 3&#x202c;</div>
<div dir="rtl">&#x202d;3 &#x5d0;&#x202c;</div>
<div dir="rtl">&#x202d;3 a&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&#x5d0;</span> 3</div>
<div dir="ltr"><span dir="ltr">a</span> 3</div>
<div dir="rtl"><span dir="rtl">&#x5d0;</span> 3</div>
<div dir="rtl"><span dir="rtl">a</span> 3</div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&#x5d0; 3&#x202c;</div>
<div dir="ltr">&#x202d;a 3&#x202c;</div>
<div dir="rtl">&#x202d;3 &#x5d0;&#x202c;</div>
<div dir="rtl">&#x202d;3 a&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">> &#x5d0; ></span> > 3 ></div>
<div dir="ltr"><span dir="rtl">> a ></span> > 3 ></div>
<div dir="rtl"><span dir="ltr">> &#x5d0; ></span> > 3 ></div>
<div dir="rtl"><span dir="ltr">> a ></span> > 3 ></div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&lt; &#x5d0; &lt; &gt; 3 &gt;&#x202c;</div>
<div dir="ltr">&#x202d;&lt; a &lt; &gt; 3 &gt;&#x202c;</div>
<div dir="rtl">&#x202d;&lt; 3 &lt; &gt; &#x5d0; &gt;&#x202c;</div>
<div dir="rtl">&#x202d;&lt; 3 &lt; &gt; a &gt;&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">> &#x5d0; ></span> > 3 ></div>
<div dir="ltr"><span dir="auto">> a ></span> > 3 ></div>
<div dir="rtl"><span dir="auto">> &#x5d0; ></span> > 3 ></div>
<div dir="rtl"><span dir="auto">> a ></span> > 3 ></div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&lt; &#x5d0; &lt; &gt; 3 &gt;&#x202c;</div>
<div dir="ltr">&#x202d;&gt; a &gt; &gt; 3 &gt;&#x202c;</div>
<div dir="rtl">&#x202d;&lt; 3 &lt; &lt; &#x5d0; &lt;&#x202c;</div>
<div dir="rtl">&#x202d;&lt; 3 &lt; &gt; a &gt;&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&gt; &#x5d0; &gt;</span> &gt; 3 &gt;</div>
<div dir="ltr"><span dir="ltr">&gt; a &gt;</span> &gt; 3 &gt;</div>
<div dir="rtl"><span dir="rtl">&gt; &#x5d0; &gt;</span> &gt; 3 &gt;</div>
<div dir="rtl"><span dir="rtl">&gt; a &gt;</span> &gt; 3 &gt;</div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&gt; &#x5d0; &gt; &gt; 3 &gt;&#x202c;</div>
<div dir="ltr">&#x202d;&gt; a &gt; &gt; 3 &gt;&#x202c;</div>
<div dir="rtl">&#x202d;&lt; 3 &lt; &lt; &#x5d0; &lt;&#x202c;</div>
<div dir="rtl">&#x202d;&lt; 3 &lt; &lt; a &lt;&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&#x5d0;</span>3</div>
<div dir="ltr"><span dir="rtl">a</span>3</div>
<div dir="rtl"><span dir="ltr">&#x5d0;</span>3</div>
<div dir="rtl"><span dir="ltr">a</span>3</div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&#x5d0;3&#x202c;</div>
<div dir="ltr">&#x202d;a3&#x202c;</div>
<div dir="rtl">&#x202d;3&#x5d0;&#x202c;</div>
<div dir="rtl">&#x202d;3a&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&#x5d0;</span>3</div>
<div dir="ltr"><span dir="auto">a</span>3</div>
<div dir="rtl"><span dir="auto">&#x5d0;</span>3</div>
<div dir="rtl"><span dir="auto">a</span>3</div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&#x5d0;3&#x202c;</div>
<div dir="ltr">&#x202d;a3&#x202c;</div>
<div dir="rtl">&#x202d;3&#x5d0;&#x202c;</div>
<div dir="rtl">&#x202d;3a&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&#x5d0;</span>3</div>
<div dir="ltr"><span dir="ltr">a</span>3</div>
<div dir="rtl"><span dir="rtl">&#x5d0;</span>3</div>
<div dir="rtl"><span dir="rtl">a</span>3</div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&#x5d0;3&#x202c;</div>
<div dir="ltr">&#x202d;a3&#x202c;</div>
<div dir="rtl">&#x202d;3&#x5d0;&#x202c;</div>
<div dir="rtl">&#x202d;3a&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&#x5d0; <span dir="rtl">3</span></div>
<div dir="ltr">a <span dir="rtl">3</span></div>
<div dir="rtl">&#x5d0; <span dir="ltr">3</span></div>
<div dir="rtl">a <span dir="ltr">3</span></div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&#x5d0; 3&#x202c;</div>
<div dir="ltr">&#x202d;a 3&#x202c;</div>
<div dir="rtl">&#x202d;3 &#x5d0;&#x202c;</div>
<div dir="rtl">&#x202d;3 a&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&#x5d0; <span dir="auto">3</span></div>
<div dir="ltr">a <span dir="auto">3</span></div>
<div dir="rtl">&#x5d0; <span dir="auto">3</span></div>
<div dir="rtl">a <span dir="auto">3</span></div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&#x5d0; 3&#x202c;</div>
<div dir="ltr">&#x202d;a 3&#x202c;</div>
<div dir="rtl">&#x202d;3 &#x5d0;&#x202c;</div>
<div dir="rtl">&#x202d;3 a&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&#x5d0; <span dir="ltr">3</span></div>
<div dir="ltr">a <span dir="ltr">3</span></div>
<div dir="rtl">&#x5d0; <span dir="rtl">3</span></div>
<div dir="rtl">a <span dir="rtl">3</span></div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&#x5d0; 3&#x202c;</div>
<div dir="ltr">&#x202d;a 3&#x202c;</div>
<div dir="rtl">&#x202d;3 &#x5d0;&#x202c;</div>
<div dir="rtl">&#x202d;3 a&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&#x5d0;</span> &#x5d1;...</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">&#x5d0;</span> &#x5d1;...</div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&#x5d0; &#x5d1;...&#x202c;</div>
<div dir="ltr">&#x202d;a b...&#x202c;</div>
<div dir="rtl">&#x202d;...b a&#x202c;</div>
<div dir="rtl">&#x202d;...&#x5d1; &#x5d0;&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&#x5d0;</span> &#x5d1;...</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">&#x5d0;</span> &#x5d1;...</div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&#x5d0; &#x5d1;...&#x202c;</div>
<div dir="ltr">&#x202d;a b...&#x202c;</div>
<div dir="rtl">&#x202d;...b a&#x202c;</div>
<div dir="rtl">&#x202d;...&#x5d1; &#x5d0;&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&#x5d0;</span> &#x5d1;...</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">&#x5d0;</span> &#x5d1;...</div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&#x5d0; &#x5d1;...&#x202c;</div>
<div dir="ltr">&#x202d;a b...&#x202c;</div>
<div dir="rtl">&#x202d;...b a&#x202c;</div>
<div dir="rtl">&#x202d;...&#x5d1; &#x5d0;&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&gt; &#x5d0; &gt;</span> &gt; &#x5d1; &gt;...</div>
<div dir="rtl"><span dir="ltr">&gt; a &gt;</span> &gt; b &gt;...</div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&lt; &#x5d0; &lt; &gt; &#x5d1; &gt;...&#x202c;</div>
<div dir="rtl">&#x202d;...&lt; b &lt; &gt; a &gt;&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&gt; &#x5d0; &gt;</span> &gt; &#x5d1; &gt;...</div>
<div dir="rtl"><span dir="auto">&gt; a &gt;</span> &gt; b &gt;...</div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&lt; &#x5d0; &lt; &gt; &#x5d1; &gt;...&#x202c;</div>
<div dir="rtl">&#x202d;...&lt; b &lt; &gt; a &gt;&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&gt; &#x5d0; &gt;</span> &gt; &#x5d1; &gt;...</div>
<div dir="rtl"><span dir="rtl">&gt; a &gt;</span> &gt; b &gt;...</div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&gt; &#x5d0; &gt; &gt; &#x5d1; &gt;...&#x202c;</div>
<div dir="rtl">&#x202d;...&lt; b &lt; &lt; a &lt;&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&#x5d0;</span>&#x5d1;...</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">&#x5d0;</span>&#x5d1;...</div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&#x5d0;&#x5d1;...&#x202c;</div>
<div dir="ltr">&#x202d;ab...&#x202c;</div>
<div dir="rtl">&#x202d;...ba&#x202c;</div>
<div dir="rtl">&#x202d;...&#x5d1;&#x5d0;&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&#x5d0;</span>&#x5d1;...</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">&#x5d0;</span>&#x5d1;...</div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&#x5d0;&#x5d1;...&#x202c;</div>
<div dir="ltr">&#x202d;ab...&#x202c;</div>
<div dir="rtl">&#x202d;...ba&#x202c;</div>
<div dir="rtl">&#x202d;...&#x5d1;&#x5d0;&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&#x5d0;</span>&#x5d1;...</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">&#x5d0;</span>&#x5d1;...</div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&#x5d0;&#x5d1;...&#x202c;</div>
<div dir="ltr">&#x202d;ab...&#x202c;</div>
<div dir="rtl">&#x202d;...ba&#x202c;</div>
<div dir="rtl">&#x202d;...&#x5d1;&#x5d0;&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&#x5d0; <span dir="rtl">&#x5d1;</span></div>
<div dir="ltr">a <span dir="rtl">b</span></div>
<div dir="rtl">&#x5d0; <span dir="ltr">&#x5d1;</span></div>
<div dir="rtl">a <span dir="ltr">b</span></div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&#x5d0; &#x5d1;&#x202c;</div>
<div dir="ltr">&#x202d;a b&#x202c;</div>
<div dir="rtl">&#x202d;&#x5d1; &#x5d0;&#x202c;</div>
<div dir="rtl">&#x202d;b a&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&#x5d0; <span dir="auto">&#x5d1;</span></div>
<div dir="ltr">a <span dir="auto">b</span></div>
<div dir="rtl">&#x5d0; <span dir="auto">&#x5d1;</span></div>
<div dir="rtl">a <span dir="auto">b</span></div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&#x5d0; &#x5d1;&#x202c;</div>
<div dir="ltr">&#x202d;a b&#x202c;</div>
<div dir="rtl">&#x202d;&#x5d1; &#x5d0;&#x202c;</div>
<div dir="rtl">&#x202d;b a&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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">&#x5d0; <span dir="ltr">&#x5d1;</span></div>
<div dir="ltr">a <span dir="ltr">b</span></div>
<div dir="rtl">&#x5d0; <span dir="rtl">&#x5d1;</span></div>
<div dir="rtl">a <span dir="rtl">b</span></div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&#x5d0; &#x5d1;&#x202c;</div>
<div dir="ltr">&#x202d;a b&#x202c;</div>
<div dir="rtl">&#x202d;&#x5d1; &#x5d0;&#x202c;</div>
<div dir="rtl">&#x202d;b a&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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 &#x5d0; and the &#x5d1;
from forming a single RTL run and thus keep the &gt;s between from being mirrored into &lt;s.
-->
<div class="test">
<div dir="ltr">&#x5d0; &gt; <span dir="rtl">&gt; b &gt;</span> &gt; &#x5d2;...</div>
<div dir="rtl">a &gt; <span dir="ltr">&gt; &#x5d1; &gt;</span> &gt; c...</div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&#x5d2; &lt; &lt; b &lt; &lt; &#x5d0;...&#x202c;</div>
<div dir="rtl">&#x202d;...a &gt; &gt; &#x5d1; &gt; &gt; c&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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 &#x5d0; and the &#x5d1;
from forming a single RTL run and thus keep the &gt;s between from being mirrored into &lt;s.
-->
<div class="test">
<div dir="ltr">&#x5d0; &gt; <span dir="auto">&gt; b &gt;</span> &gt; &#x5d2;...</div>
<div dir="rtl">a &gt; <span dir="auto">&gt; &#x5d1; &gt;</span> &gt; c...</div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&#x5d2; &lt; &gt; b &gt; &lt; &#x5d0;...&#x202c;</div>
<div dir="rtl">&#x202d;...a &gt; &lt; &#x5d1; &lt; &gt; c&#x202c;</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:
&#x5d0; ... &#x5d5; - The first six Hebrew letters (strongly RTL).
&#x202d; - The LRO (left-to-right-override) formatting character.
&#x202c; - 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 &#x5d0; and the &#x5d1;
from forming a single RTL run and thus keep the &gt;s between from being mirrored into &lt;s.
-->
<div class="test">
<div dir="ltr">&#x5d0; &gt; <span dir="ltr">&gt; b &gt;</span> &gt; &#x5d2;...</div>
<div dir="rtl">a &gt; <span dir="rtl">&gt; &#x5d1; &gt;</span> &gt; c...</div>
</div>
<div class="ref">
<div dir="ltr">&#x202d;&#x5d2; &lt; &gt; b &gt; &lt; &#x5d0;...&#x202c;</div>
<div dir="rtl">&#x202d;...a &gt; &lt; &#x5d1; &lt; &gt; c&#x202c;</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">&#8237;&#1488; 3&#8236;</div><div dir="ltr">&#8237;a 3&#8236;</div><div dir="rtl">&#8237;3 &#1488;&#8236;</div><div dir="rtl">&#8237;3 a&#8236;</div></div>
<div class="ref"><div dir="ltr">&#8237;&#1488; 3&#8236;</div><div dir="ltr">&#8237;a 3&#8236;</div><div dir="rtl">&#8237;3 &#1488;&#8236;</div><div dir="rtl">&#8237;3 a&#8236;</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">&#8237;&lt; &#1488; &lt; &gt; 3 &gt;&#8236;</div><div dir="ltr">&#8237;&lt; a &lt; &gt; 3 &gt;&#8236;</div><div dir="rtl">&#8237;&lt; 3 &lt; &gt; &#1488; &gt;&#8236;</div><div dir="rtl">&#8237;&lt; 3 &lt; &gt; a &gt;&#8236;</div></div>
<div class="ref"><div dir="ltr">&#8237;&lt; &#1488; &lt; &gt; 3 &gt;&#8236;</div><div dir="ltr">&#8237;&lt; a &lt; &gt; 3 &gt;&#8236;</div><div dir="rtl">&#8237;&lt; 3 &lt; &gt; &#1488; &gt;&#8236;</div><div dir="rtl">&#8237;&lt; 3 &lt; &gt; a &gt;&#8236;</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">&#8237;&lt; &#1488; &lt; &gt; 3 &gt;&#8236;</div><div dir="ltr">&#8237;&gt; a &gt; &gt; 3 &gt;&#8236;</div><div dir="rtl">&#8237;&lt; 3 &lt; &lt; &#1488; &lt;&#8236;</div><div dir="rtl">&#8237;&lt; 3 &lt; &gt; a &gt;&#8236;</div></div>
<div class="ref"><div dir="ltr">&#8237;&lt; &#1488; &lt; &gt; 3 &gt;&#8236;</div><div dir="ltr">&#8237;&gt; a &gt; &gt; 3 &gt;&#8236;</div><div dir="rtl">&#8237;&lt; 3 &lt; &lt; &#1488; &lt;&#8236;</div><div dir="rtl">&#8237;&lt; 3 &lt; &gt; a &gt;&#8236;</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">&#8237;&gt; &#1488; &gt; &gt; 3 &gt;&#8236;</div><div dir="ltr">&#8237;&gt; a &gt; &gt; 3 &gt;&#8236;</div><div dir="rtl">&#8237;&lt; 3 &lt; &lt; &#1488; &lt;&#8236;</div><div dir="rtl">&#8237;&lt; 3 &lt; &lt; a &lt;&#8236;</div></div>
<div class="ref"><div dir="ltr">&#8237;&gt; &#1488; &gt; &gt; 3 &gt;&#8236;</div><div dir="ltr">&#8237;&gt; a &gt; &gt; 3 &gt;&#8236;</div><div dir="rtl">&#8237;&lt; 3 &lt; &lt; &#1488; &lt;&#8236;</div><div dir="rtl">&#8237;&lt; 3 &lt; &lt; a &lt;&#8236;</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">&#8237;&#1488;3&#8236;</div><div dir="ltr">&#8237;a3&#8236;</div><div dir="rtl">&#8237;3&#1488;&#8236;</div><div dir="rtl">&#8237;3a&#8236;</div></div>
<div class="ref"><div dir="ltr">&#8237;&#1488;3&#8236;</div><div dir="ltr">&#8237;a3&#8236;</div><div dir="rtl">&#8237;3&#1488;&#8236;</div><div dir="rtl">&#8237;3a&#8236;</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">&#8237;&#1488; 3&#8236;</div><div dir="ltr">&#8237;a 3&#8236;</div><div dir="rtl">&#8237;3 &#1488;&#8236;</div><div dir="rtl">&#8237;3 a&#8236;</div></div>
<div class="ref"><div dir="ltr">&#8237;&#1488; 3&#8236;</div><div dir="ltr">&#8237;a 3&#8236;</div><div dir="rtl">&#8237;3 &#1488;&#8236;</div><div dir="rtl">&#8237;3 a&#8236;</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">&#8237;&#1488; &#1489;...&#8236;</div><div dir="ltr">&#8237;a b...&#8236;</div><div dir="rtl">&#8237;...b a&#8236;</div><div dir="rtl">&#8237;...&#1489; &#1488;&#8236;</div></div>
<div class="ref"><div dir="ltr">&#8237;&#1488; &#1489;...&#8236;</div><div dir="ltr">&#8237;a b...&#8236;</div><div dir="rtl">&#8237;...b a&#8236;</div><div dir="rtl">&#8237;...&#1489; &#1488;&#8236;</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">&#8237;&lt; &#1488; &lt; &gt; &#1489; &gt;...&#8236;</div><div dir="rtl">&#8237;...&lt; b &lt; &gt; a &gt;&#8236;</div></div>
<div class="ref"><div dir="ltr">&#8237;&lt; &#1488; &lt; &gt; &#1489; &gt;...&#8236;</div><div dir="rtl">&#8237;...&lt; b &lt; &gt; a &gt;&#8236;</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">&#8237;&gt; &#1488; &gt; &gt; &#1489; &gt;...&#8236;</div><div dir="rtl">&#8237;...&lt; b &lt; &lt; a &lt;&#8236;</div></div>
<div class="ref"><div dir="ltr">&#8237;&gt; &#1488; &gt; &gt; &#1489; &gt;...&#8236;</div><div dir="rtl">&#8237;...&lt; b &lt; &lt; a &lt;&#8236;</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">&#8237;&#1488;&#1489;...&#8236;</div><div dir="ltr">&#8237;ab...&#8236;</div><div dir="rtl">&#8237;...ba&#8236;</div><div dir="rtl">&#8237;...&#1489;&#1488;&#8236;</div></div>
<div class="ref"><div dir="ltr">&#8237;&#1488;&#1489;...&#8236;</div><div dir="ltr">&#8237;ab...&#8236;</div><div dir="rtl">&#8237;...ba&#8236;</div><div dir="rtl">&#8237;...&#1489;&#1488;&#8236;</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">&#8237;&#1488; &#1489;&#8236;</div><div dir="ltr">&#8237;a b&#8236;</div><div dir="rtl">&#8237;&#1489; &#1488;&#8236;</div><div dir="rtl">&#8237;b a&#8236;</div></div>
<div class="ref"><div dir="ltr">&#8237;&#1488; &#1489;&#8236;</div><div dir="ltr">&#8237;a b&#8236;</div><div dir="rtl">&#8237;&#1489; &#1488;&#8236;</div><div dir="rtl">&#8237;b a&#8236;</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">&#8237;&#1490; &lt; &lt; b &lt; &lt; &#1488;...&#8236;</div><div dir="rtl">&#8237;...a &gt; &gt; &#1489; &gt; &gt; c&#8236;</div></div>
<div class="ref"><div dir="ltr">&#8237;&#1490; &lt; &lt; b &lt; &lt; &#1488;...&#8236;</div><div dir="rtl">&#8237;...a &gt; &gt; &#1489; &gt; &gt; c&#8236;</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">&#8237;&#1490; &lt; &gt; b &gt; &lt; &#1488;...&#8236;</div><div dir="rtl">&#8237;...a &gt; &lt; &#1489; &lt; &gt; c&#8236;</div></div>
<div class="ref"><div dir="ltr">&#8237;&#1490; &lt; &gt; b &gt; &lt; &#1488;...&#8236;</div><div dir="rtl">&#8237;...a &gt; &lt; &#1489; &lt; &gt; c&#8236;</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>

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше