OLD | NEW |
(Empty) | |
| 1 /* |
| 2 * mediasessionservice-mock contains a mock implementation of MediaSessionServic
e. |
| 3 */ |
| 4 |
| 5 "use strict"; |
| 6 |
| 7 function mojoString16ToJS(mojoString16) { |
| 8 return String.fromCharCode.apply(null, mojoString16.data); |
| 9 } |
| 10 |
| 11 function mojoImageToJS(mojoImage) { |
| 12 var src = mojoImage.src.url; |
| 13 var type = mojoString16ToJS(mojoImage.type); |
| 14 var sizes = ""; |
| 15 for (var i = 0; i < mojoImage.sizes.length; i++) { |
| 16 if (i > 0) |
| 17 sizes += " "; |
| 18 |
| 19 var mojoSize = mojoImage.sizes[i]; |
| 20 sizes += mojoSize.width.toString() + "x" + mojoSize.height.toString(); |
| 21 } |
| 22 return { src: src, type: type, sizes: sizes }; |
| 23 } |
| 24 |
| 25 function mojoMetadataToJS(mojoMetadata) { |
| 26 if (mojoMetadata == null) |
| 27 return null; |
| 28 |
| 29 var title = mojoString16ToJS(mojoMetadata.title); |
| 30 var artist = mojoString16ToJS(mojoMetadata.artist); |
| 31 var album = mojoString16ToJS(mojoMetadata.album); |
| 32 var artwork = []; |
| 33 for (var i = 0; i < mojoMetadata.artwork.length; i++) |
| 34 artwork.push(mojoImageToJS(mojoMetadata.artwork[i])); |
| 35 |
| 36 return new MediaMetadata({title: title, artist: artist, album: album, artwork:
artwork}); |
| 37 } |
| 38 |
| 39 let mediaSessionServiceMock = loadMojoModules( |
| 40 'mediaSessionServiceMock', |
| 41 ['third_party/WebKit/public/platform/modules/mediasession/media_session.mojo
m', |
| 42 'mojo/public/js/router', |
| 43 ]).then(mojo => { |
| 44 let [mediaSessionService, router] = mojo.modules; |
| 45 |
| 46 class MediaSessionServiceMock { |
| 47 constructor(interfaceProvider) { |
| 48 interfaceProvider.addInterfaceOverrideForTesting( |
| 49 mediaSessionService.MediaSessionService.name, |
| 50 handle => this.connectMediaSessionService_(handle)); |
| 51 this.interfaceProvider_ = interfaceProvider; |
| 52 this.pendingResponse_ = null; |
| 53 } |
| 54 |
| 55 connectMediaSessionService_(handle) { |
| 56 this.mediaSessionServiceStub_ = new mediaSessionService.MediaSessionSe
rvice.stubClass(this); |
| 57 this.mediaSessionServiceRouter_ = new router.Router(handle); |
| 58 this.mediaSessionServiceRouter_.setIncomingReceiver(this.mediaSessionS
erviceStub_); |
| 59 } |
| 60 |
| 61 setMetadata(metadata) { |
| 62 if (!!this.metadataCallback_) |
| 63 this.metadataCallback_(mojoMetadataToJS(metadata)); |
| 64 } |
| 65 |
| 66 setMetadataCallback(callback) { |
| 67 this.metadataCallback_ = callback; |
| 68 } |
| 69 } |
| 70 |
| 71 return new MediaSessionServiceMock(mojo.frameInterfaces); |
| 72 }); |
OLD | NEW |