Index: third_party/WebKit/LayoutTests/media/remoteplayback/cancel-watch-availability.html |
diff --git a/third_party/WebKit/LayoutTests/media/remoteplayback/cancel-watch-availability.html b/third_party/WebKit/LayoutTests/media/remoteplayback/cancel-watch-availability.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1043a99002e8c6593f20557ffb2da6087fca1410 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/media/remoteplayback/cancel-watch-availability.html |
@@ -0,0 +1,61 @@ |
+<!DOCTYPE html> |
+<html> |
+ <head> |
+ <title>Tests various ways to call cancelWatchAvailability()</title> |
+ <script src="../../resources/testharness.js"></script> |
+ <script src="../../resources/testharnessreport.js"></script> |
+ <script src="../media-file.js"></script> |
+ </head> |
+ <body> |
+ <script> |
+ var notFoundErrorException = new DOMException( |
+ 'A callback with the given id is not found.', |
+ 'NotFoundError'); |
+ |
+ async_test(function(t) { |
+ var v = document.createElement('video'); |
+ v.src = findMediaFile('video', 'content/test'); |
+ document.body.appendChild(v); |
+ |
+ v.remote.watchAvailability(function() {}) |
+ .then(t.step_func(function(id) { |
+ v.remote.cancelWatchAvailability(id).then(t.step_func(function() { |
+ v.remote.cancelWatchAvailability(id).then( |
+ t.unreached_func(), t.step_func_done(function(e) { |
+ assert_equals(e.name, notFoundErrorException.name); |
+ assert_equals(e.message, notFoundErrorException.message); |
+ }) |
+ ); |
+ }), |
+ t.unreached_func()); |
+ }), |
+ t.unreached_func()); |
+ }, 'Test that calling cancelWatchAvailability() with an id does remove the callback.'); |
+ |
+ async_test(function(t) { |
+ var v = document.createElement('video'); |
+ v.src = findMediaFile('video', 'content/test'); |
+ document.body.appendChild(v); |
+ |
+ Promise.all([ |
+ v.remote.watchAvailability(function() {}), |
+ v.remote.watchAvailability(function() {}) |
+ ]).then(t.step_func(function(ids) { |
+ v.remote.cancelWatchAvailability().then(t.step_func(function() { |
+ v.remote.cancelWatchAvailability(ids[0]).then(t.unreached_func(), t.step_func(function(e) { |
+ assert_equals(e.name, notFoundErrorException.name); |
+ assert_equals(e.message, notFoundErrorException.message); |
+ v.remote.cancelWatchAvailability(ids[1]) |
+ .then(t.unreached_func(), t.step_func_done(function(e) { |
+ assert_equals(e.name, notFoundErrorException.name); |
+ assert_equals(e.message, notFoundErrorException.message); |
+ })); |
+ })); |
+ }), |
+ t.unreached_func()); |
+ }), |
+ t.unreached_func()); |
+ }, 'Test that calling cancelWatchAvailability() without an id removes all the callbacks.'); |
+ </script> |
+ </body> |
+</html> |