Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Unified Diff: third_party/WebKit/LayoutTests/media/remoteplayback/cancel-watch-availability.html

Issue 2415723002: [Blink, RemotePlayback] watchAvailability() implementation. (Closed)
Patch Set: Added layout test for callback gc Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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>

Powered by Google App Engine
This is Rietveld 408576698