getAvailability.https.html (2852B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>Getting the presentation displays availability information.</title> 4 <meta name="timeout" content="long"> 5 <link rel="author" title="Marius Wessel" href="http://www.fokus.fraunhofer.de"> 6 <link rel="author" title="Tomoyuki Shimizu" href="https://github.com/tomoyukilabs"> 7 <link rel="help" href="http://w3c.github.io/presentation-api/#dfn-presentation-display-availability"> 8 <script src="/resources/testharness.js"></script> 9 <script src="/resources/testharnessreport.js"></script> 10 <script src="common.js"></script> 11 12 <p>The test passes if a "PASS" result appears.</p> 13 14 <script> 15 16 // --------------------------------------- 17 // Presentation Availability Tests - begin 18 // --------------------------------------- 19 20 const catchNotSupported = err => { 21 assert_equals(err.name, 'NotSupportedError', 'getAvailability() rejects a Promise with a NotSupportedError exception, if the browser can find presentation displays only when starting a connection.') 22 }; 23 24 promise_test(t => { 25 let availability; 26 27 const request = new PresentationRequest(presentationUrls); 28 assert_true(request instanceof PresentationRequest, 'The request is an instance of PresentationRequest.'); 29 30 const promise = request.getAvailability(); 31 assert_true(promise instanceof Promise, 'PresentationRequest.getAvailability() returns a Promise.'); 32 const newPromise = request.getAvailability(); 33 assert_true(newPromise instanceof Promise, 'PresentationRequest.getAvailabilty() returns a Promise.'); 34 assert_not_equals(promise, newPromise, 'PresentationRequest.getAvailability() should return a new Promise each time it is called.'); 35 36 return promise.then(a => { 37 availability = a; 38 assert_true(availability instanceof PresentationAvailability, 'The promise is resolved with an instance of PresentationAvailability.'); 39 assert_equals(typeof availability.value, 'boolean', 'The availability has an boolean value.'); 40 41 const request2 = new PresentationRequest('https://example.com'); 42 return request2.getAvailability(); 43 }).then(a => { 44 assert_not_equals(availability, a, 'A presentation availability object is newly created if the presentation request has a newly added presentation URLs.'); 45 46 const newPromise = request.getAvailability(); 47 assert_not_equals(promise, newPromise, 'PresentationRequest.getAvailability() should return a new Promise each time it is called.'); 48 49 return newPromise.then(newAvailability => { 50 assert_equals(availability, newAvailability, 'Promises from a PresentationRequest\'s getAvailability are resolved with the same PresentationAvailability object.'); 51 }, catchNotSupported); 52 }, catchNotSupported); 53 }); 54 </script>