OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <script src="../resources/testharness.js"></script> | 2 <script src="../resources/testharness.js"></script> |
3 <script src="../resources/testharnessreport.js"></script> | 3 <script src="../resources/testharnessreport.js"></script> |
4 <script src="../resources/mojo-helpers.js"></script> | 4 <script src="../resources/mojo-helpers.js"></script> |
5 <script src="resources/mock-share-service.js"></script> | 5 <script src="resources/mock-share-service.js"></script> |
6 <script> | 6 <script> |
7 | 7 |
| 8 function getAbsoluteUrl(url) { |
| 9 return new URL(url, location).toString(); |
| 10 } |
| 11 |
8 share_test((t, mock) => { | 12 share_test((t, mock) => { |
9 mock.pushShareResult('the title', 'the message', null); | 13 let url = 'https://www.example.com/some/path?some_query#some_fragment'; |
| 14 mock.pushShareResult('the title', 'the message', getAbsoluteUrl(url), null); |
10 return callWithKeyDown(() => navigator.share( | 15 return callWithKeyDown(() => navigator.share( |
11 {title: 'the title', text: 'the message', url: 'the URL'})); | 16 {title: 'the title', text: 'the message', url: url})); |
12 }, 'successful share'); | 17 }, 'successful share'); |
13 | 18 |
14 share_test((t, mock) => { | 19 share_test((t, mock) => { |
15 mock.pushShareResult('', '', null); | 20 mock.pushShareResult('', '', '', null); |
16 return callWithKeyDown(() => navigator.share({})); | 21 return callWithKeyDown(() => navigator.share({})); |
17 }, 'successful share with empty ShareData'); | 22 }, 'successful share with empty ShareData'); |
18 | 23 |
| 24 share_test((t, mock) => { |
| 25 let url = '//www.example.com/some/path?some_query#some_fragment'; |
| 26 mock.pushShareResult('', '', getAbsoluteUrl(url), null); |
| 27 return callWithKeyDown(() => navigator.share({url: url})); |
| 28 }, 'successful share with URL without a scheme'); |
| 29 |
| 30 share_test((t, mock) => { |
| 31 let url = '/some/path?some_query#some_fragment'; |
| 32 mock.pushShareResult('', '', getAbsoluteUrl(url), null); |
| 33 return callWithKeyDown(() => navigator.share({url: url})); |
| 34 }, 'successful share with a path-only URL'); |
| 35 |
| 36 share_test((t, mock) => { |
| 37 let url = 'foo'; |
| 38 mock.pushShareResult('', '', getAbsoluteUrl(url), null); |
| 39 return callWithKeyDown(() => navigator.share({url: url})); |
| 40 }, 'successful share with a relative URL'); |
| 41 |
| 42 share_test((t, mock) => { |
| 43 let url = ''; |
| 44 mock.pushShareResult('', '', getAbsoluteUrl(url), null); |
| 45 return callWithKeyDown(() => navigator.share({url: url})); |
| 46 }, 'successful share with an empty URL'); |
| 47 |
| 48 share_test((t, mock) => { |
| 49 let url = 'data:foo'; |
| 50 mock.pushShareResult('', '', getAbsoluteUrl(url), null); |
| 51 return callWithKeyDown(() => navigator.share({url: url})); |
| 52 }, 'successful share with a data URL'); |
| 53 |
19 </script> | 54 </script> |
OLD | NEW |