Update playbackRate tests to check for behavior when set to an unsupported value
See https://github.com/whatwg/html/pull/2829 for HTML Standard change.
diff --git a/html/semantics/embedded-content/media-elements/playing-the-media-resource/playbackRate.html b/html/semantics/embedded-content/media-elements/playing-the-media-resource/playbackRate.html
index fa11d99..bfddcd1 100644
--- a/html/semantics/embedded-content/media-elements/playing-the-media-resource/playbackRate.html
+++ b/html/semantics/embedded-content/media-elements/playing-the-media-resource/playbackRate.html
@@ -9,11 +9,46 @@
assert_equals(v.playbackRate, 1);
}, 'playbackRate initial value');
-async_test(function(t) {
+function testPlaybackRateHelper(t, newPlaybackRate) {
var v = document.createElement('video');
- v.playbackRate = 2;
- v.addEventListener('ratechange', t.step_func(function() {
+ var initialRate = v.playbackRate;
+
+ v.addEventListener('ratechange', function() {
+ assert_equals(v.playbackRate, newPlaybackRate);
t.done();
- }));
-}, 'setting playbackRate');
+ });
+
+ try {
+ v.playbackRate = newPlaybackRate;
+ } catch(e) {
+ assert_equals(e.name, 'NotSupportedError');
+ assert_equals(v.playbackRate, initialRate);
+ t.done();
+ }
+}
+
+async_test(function(t) {
+ testPlaybackRateHelper(this, 3);
+}, "playbackRate set to small positive value");
+
+async_test(function(t) {
+ testPlaybackRateHelper(this, 100);
+}, "playbackRate set to large positive value");
+
+async_test(function(t) {
+ testPlaybackRateHelper(this, -3);
+}, "playbackRate set to small negative value");
+
+async_test(function(t) {
+ testPlaybackRateHelper(this, -100);
+}, "playbackRate set to large negative value");
+
+async_test(function(t) {
+ testPlaybackRateHelper(this, 0);
+}, "playbackRate set to 0");
+
+async_test(function(t) {
+ testPlaybackRateHelper(this, -1);
+}, "playbackRate set to -1");
+
</script>