| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <title>WebShare Test: canShare without files</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <script> |
| 'use strict'; |
| |
| test(() => { |
| assert_equals(navigator.canShare(), false); |
| }, 'canShare with no arguments (same as empty dictionary)'); |
| |
| test(() => { |
| assert_equals(navigator.canShare({}), false); |
| }, 'canShare with an empty dictionary'); |
| |
| test(() => { |
| assert_equals(navigator.canShare(undefined), false); |
| }, 'canShare with a undefined argument (same as empty dictionary)'); |
| |
| test(() => { |
| assert_equals(navigator.canShare(null), false); |
| }, 'canShare with a null argument (same as empty dictionary)'); |
| |
| test(() => { |
| assert_equals(navigator.canShare({unused: 'unexpected field'}), false); |
| }, 'canShare with a dictionary containing only surplus fields'); |
| |
| test(() => { |
| // URL is invalid in that the URL Parser returns failure (port is too |
| // large). |
| const url = 'http://example.com:65536'; |
| assert_equals(navigator.canShare({url}), false); |
| }, 'canShare with an invalid URL'); |
| |
| test(() => { |
| assert_equals(navigator.canShare({title: undefined}), false); |
| }, 'canShare with attribute undefined is equivalent to omitting the attribute'); |
| |
| test(() => { |
| assert_equals(navigator.canShare({title: 'subject'}), true); |
| }, 'canShare with title'); |
| |
| test(() => { |
| assert_equals(navigator.canShare({text: 'body'}), true); |
| }, 'canShare with text'); |
| |
| test(() => { |
| assert_equals(navigator.canShare({url: 'https://www.example.com/some/path?some_query#some_fragment'}), true); |
| }, 'canShare with URL'); |
| |
| test(() => { |
| assert_equals(navigator.canShare({title: null}), true); |
| }, 'canShare with null attribute'); |
| |
| test(() => { |
| assert_equals(navigator.canShare({text: 123}), true); |
| }, 'canShare with number'); |
| |
| test(() => { |
| assert_equals(navigator.canShare({url: {toString() { return 'https://example.com/'; }}}), true); |
| }, 'canShare with object'); |
| |
| test(() => { |
| assert_equals(navigator.canShare({title: 'subject', text: 'body', url: 'https://example.com/', unused: 'unexpected field'}), true); |
| }, 'canShare with unexpected field'); |
| |
| test(() => { |
| assert_equals(navigator.canShare({url: 'data:the url'}), true); |
| }, 'canShare with data URL'); |
| |
| test(() => { |
| assert_equals(navigator.canShare({url: ''}), true); |
| }, 'canShare with empty URL'); |
| |
| test(() => { |
| assert_equals(navigator.canShare({url: '//www.example.com/some/path?some_query#some_fragment'}), true); |
| }, 'canShare with URL having no scheme'); |
| </script> |
| </body> |
| </html> |