| <!DOCTYPE html> |
| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| <script> |
| |
| test(function() { |
| assert_false(new BeforeInstallPromptEvent('eventType').bubbles, 'bubbles'); |
| assert_false(new BeforeInstallPromptEvent('eventType').cancelable, 'cancelable'); |
| }, 'No initializer passed'); |
| |
| test(function() { |
| assert_true(new BeforeInstallPromptEvent('eventType', { bubbles: true } ).bubbles, 'bubbles'); |
| assert_true(new BeforeInstallPromptEvent('eventType', { cancelable: true } ).cancelable, 'cancelable'); |
| }, 'Initializer values not respected'); |
| |
| test(function() { |
| var event = new BeforeInstallPromptEvent('eventType', { platforms: ['a'] }); |
| assert_array_equals(['a'], event.platforms, 'platforms'); |
| }, 'platforms is passed'); |
| |
| test(function() { |
| var event = new BeforeInstallPromptEvent('eventType', { platforms: ['a'] }); |
| event.preventDefault(); |
| }, 'preventDefault called'); |
| |
| async_test(function(t) { |
| var event = new BeforeInstallPromptEvent('eventType', { platforms: ['a'] }); |
| var thrown = false; |
| var rejected = false; |
| event.prompt() |
| .then(t.unreached_func('prompt() should not resolve'), function(){ |
| rejected = true; |
| }) |
| .catch(function(reason) { thrown = true; }); |
| t.done(); |
| |
| assert_true(rejected); |
| assert_true(thrown); |
| }, 'prompt() called and rejected'); |
| |
| async_test(function(t) { |
| var event = new BeforeInstallPromptEvent('eventType', { platforms: ['a'] }); |
| var thrown = false; |
| var rejected = false; |
| event.userChoice |
| .then(t.unreached_func('userChoice should not resolve'), function(){ |
| rejected = true; |
| }) |
| .catch(function(reason) { thrown = true; }); |
| t.done(); |
| |
| assert_true(rejected); |
| assert_true(thrown); |
| }, 'userChoice accessed, throws and rejects'); |
| </script> |