tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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>