Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(623)

Side by Side Diff: third_party/WebKit/LayoutTests/webshare/resources/mock-share-service.js

Issue 2309403002: Use the URL passed to navigator.share(). (Closed)
Patch Set: rebase Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 'use strict'; 1 'use strict';
2 2
3 let mockShareService = loadMojoModules( 3 let mockShareService = loadMojoModules(
4 'mockShareService', 4 'mockShareService',
5 ['mojo/public/js/router', 5 ['mojo/public/js/router',
6 'third_party/WebKit/public/platform/modules/webshare/webshare.mojom', 6 'third_party/WebKit/public/platform/modules/webshare/webshare.mojom',
7 ]).then(mojo => { 7 ]).then(mojo => {
8 let [router, webshare] = mojo.modules; 8 let [router, webshare] = mojo.modules;
9 9
10 class MockShareService extends webshare.ShareService.stubClass { 10 class MockShareService extends webshare.ShareService.stubClass {
(...skipping 10 matching lines...) Expand all
21 this.shareResultQueue_ = []; 21 this.shareResultQueue_ = [];
22 22
23 return new Promise((resolve, reject) => {this.reject_ = reject}); 23 return new Promise((resolve, reject) => {this.reject_ = reject});
24 } 24 }
25 25
26 connect_(handle) { 26 connect_(handle) {
27 this.router_ = new router.Router(handle); 27 this.router_ = new router.Router(handle);
28 this.router_.setIncomingReceiver(this); 28 this.router_.setIncomingReceiver(this);
29 } 29 }
30 30
31 share(title, text) { 31 share(title, text, url) {
32 let callback = null; 32 let callback = null;
33 let result = new Promise(resolve => {callback = resolve;}); 33 let result = new Promise(resolve => {callback = resolve;});
34 34
35 if (!this.shareResultQueue_.length) { 35 if (!this.shareResultQueue_.length) {
36 this.reject_('Unexpected call to mojo share method'); 36 this.reject_('Unexpected call to mojo share method');
37 return result; 37 return result;
38 } 38 }
39 39
40 let expectedTitle, expectedText, error; 40 let [expectedTitle, expectedText, expectedUrl, error] =
41 [expectedTitle, expectedText, error] = this.shareResultQueue_.shift(); 41 this.shareResultQueue_.shift();
42 try { 42 try {
43 assert_equals(title, expectedTitle); 43 assert_equals(title, expectedTitle);
44 assert_equals(text, expectedText); 44 assert_equals(text, expectedText);
45 assert_equals(url.url, expectedUrl);
45 } catch (e) { 46 } catch (e) {
46 this.reject_(e); 47 this.reject_(e);
47 return result; 48 return result;
48 } 49 }
49 callback({error: error}); 50 callback({error: error});
50 51
51 return result; 52 return result;
52 } 53 }
53 54
54 pushShareResult(expectedTitle, expectedText, result) { 55 pushShareResult(expectedTitle, expectedText, expectedUrl, result) {
55 this.shareResultQueue_.push([expectedTitle, expectedText, result]); 56 this.shareResultQueue_.push(
57 [expectedTitle, expectedText, expectedUrl, result]);
56 } 58 }
57 } 59 }
58 return new MockShareService(mojo.frameInterfaces); 60 return new MockShareService(mojo.frameInterfaces);
59 }); 61 });
60 62
61 function share_test(func, name, properties) { 63 function share_test(func, name, properties) {
62 promise_test(t => mockShareService.then(mock => { 64 promise_test(t => mockShareService.then(mock => {
63 let mockPromise = mock.init_(); 65 let mockPromise = mock.init_();
64 return Promise.race([func(t, mock), mockPromise]); 66 return Promise.race([func(t, mock), mockPromise]);
65 }), name, properties); 67 }), name, properties);
66 } 68 }
67 69
68 // Copied from resources/bluetooth/bluetooth-helpers.js. 70 // Copied from resources/bluetooth/bluetooth-helpers.js.
69 function callWithKeyDown(functionCalledOnKeyPress) { 71 function callWithKeyDown(functionCalledOnKeyPress) {
70 return new Promise(resolve => { 72 return new Promise(resolve => {
71 function onKeyPress() { 73 function onKeyPress() {
72 document.removeEventListener('keypress', onKeyPress, false); 74 document.removeEventListener('keypress', onKeyPress, false);
73 resolve(functionCalledOnKeyPress()); 75 resolve(functionCalledOnKeyPress());
74 } 76 }
75 document.addEventListener('keypress', onKeyPress, false); 77 document.addEventListener('keypress', onKeyPress, false);
76 78
77 eventSender.keyDown(' ', []); 79 eventSender.keyDown(' ', []);
78 }); 80 });
79 } 81 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698