blob: e1cd0480ac4c4ab65cc81cb96e55c06be0de6ca6 [file] [log] [blame]
<!doctype html>
<html>
<head>
<meta charset=utf-8>
<title>HTML time element API</title>
<style>
#time { visibility: hidden; }
</style>
<link rel="help" href="https://html.spec.whatwg.org/multipage/#the-time-element">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id="log"></div>
<!-- intentionally nested to test parsing rules -->
<p id="time"><time pubdate datetime="2000-02-01T03:04:05Z">Dummy text <time>2001-06-07T<time>08:09<time></time></time>Z</time></time></p>
<script type="text/javascript">
function makeTime(dateTime,contents,dateTimeProp) {
var timeEl = document.createElement('time');
if( dateTime ) {
timeEl.setAttribute('datetime',dateTime);
}
if( contents ) {
timeEl.innerHTML = contents;
}
if( dateTimeProp ) {
timeEl.dateTime = dateTimeProp;
}
return timeEl;
}
var timep = document.getElementById('time');
var times = timep.getElementsByTagName('time');
//TIME elements
test(function () {
assert_equals( times.length, 4 );
}, 'HTML parsing should locate 4 time elements in this document');
test(function () {
assert_true( !!window.HTMLTimeElement );
}, 'HTMLTimeElement should be exposed for prototyping');
test(function () {
assert_true( makeTime() instanceof window.HTMLTimeElement, 'createElement variant' );
assert_true( times[0] instanceof window.HTMLTimeElement, 'HTML parsing variant' );
}, 'the time elements should be instanceof HTMLTimeElement');
//dateTime
test(function () {
assert_equals( makeTime('2000-02-01T03:04:05Z','2001-02-01T03:04:05Z').dateTime, '2000-02-01T03:04:05Z' );
}, 'the datetime attribute should be reflected by the .dateTime property');
test(function () {
assert_equals( typeof makeTime().dateTime, 'string', 'typeof test' );
assert_equals( makeTime().dateTime, '', 'value test' );
}, 'the dateTime IDL property should default to an empty string');
test(function () {
assert_equals( makeTime(false,false,'2000-02-01T03:04:05Z').dateTime, '2000-02-01T03:04:05Z' );
}, 'the dateTime property should be read/write');
test(function () {
assert_equals( makeTime('go fish').dateTime, 'go fish' );
}, 'the datetime attribute should be reflected by the .dateTime property even if it is invalid');
test(function () {
assert_equals( makeTime(false,'2000-02-01T03:04:05Z').dateTime, '' );
}, 'the datetime attribute should not reflect the textContent');
</script>
</body>
</html>