<!doctype html>
<title>Historical media element features should not be supported</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<script>
function t(property, tagName) {
  var tagNames = tagName ? [tagName] : ['audio', 'video'];
  tagNames.forEach(function(tagName) {
    test(function() {
      assert_false(property in document.createElement(tagName));
    }, tagName + '.' + property + ' should not be supported');
  });
}

t('bufferingRate'); // added in r678, removed in r2872.
t('start'); // added in r692, removed in r2401.
t('end'); // added in r692, removed in r2401.
t('loopStart'); // added in r692, removed in r2401.
t('loopEnd'); // added in r692, removed in r2401.
t('loopCount'); // added in r692, replaced with playCount in r1105.
t('currentLoop'); // added in r692, removed in r2401.
t('addCuePoint'); // added in r721, replaced with addCueRange in r1106.
t('removeCuePoint'); // added in r721, replaced with removeCueRanges in r1106.
t('media', 'source'); // added in r724, removed in r8472.
t('playCount'); // added in r1105, removed in r2401.
t('addCueRange'); // added in r1106, removed in r5070.
t('removeCueRanges'); // added in r1106, removed in r5070.
t('pixelratio', 'source'); // added in r1629, removed in r2493.
t('bufferedBytes'); // added in r1630, removed in r2405.
t('totalBytes'); // added in r1630, removed in r2405.
t('bufferingThrottled'); // added in r1632, removed in r2872.
t('autobuffer'); // added in r2855, replaced with preload in r4811.
t('startTime'); // added in r3035, replaced with initialTime in r5310.
t('startOffsetTime'); // added in r5310, replaced with startDate in r7045.
t('initialTime'); // added in r5310, removed in r7046.
t('audio', 'video'); // added in r5636, replaced with muted in r5991.
t('startDate'); // added in r7045, replaced with getStartDate() in r8113.

// TextTrackCue constructor: added in r5723, removed in r7742.
test(function() {
  assert_throws(new TypeError(), function() {
    new TextTrackCue(0, 0, '');
  });
}, 'TextTrackCue constructor should not be supported');
</script>
