Integration test: mock cast, remove loading bar
This lets us use exact screenshots with no transparency.
@@ -33,6 +33,15 @@ function init (appState, callback) {
|
|||||||
state = appState
|
state = appState
|
||||||
update = callback
|
update = callback
|
||||||
|
|
||||||
|
// Don't actually cast during integration tests
|
||||||
|
// (Otherwise you'd need a physical Chromecast + AppleTV + DLNA TV to run them.)
|
||||||
|
if (config.IS_TEST) {
|
||||||
|
state.devices.chromecast = testPlayer('chromecast')
|
||||||
|
state.devices.airplay = testPlayer('airplay')
|
||||||
|
state.devices.dlna = testPlayer('dlna')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// Load modules, scan the network for devices
|
// Load modules, scan the network for devices
|
||||||
airplayer = require('airplayer')()
|
airplayer = require('airplayer')()
|
||||||
chromecasts = require('chromecasts')()
|
chromecasts = require('chromecasts')()
|
||||||
@@ -58,6 +67,32 @@ function init (appState, callback) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// integration test player implementation
|
||||||
|
function testPlayer (type) {
|
||||||
|
return {
|
||||||
|
getDevices,
|
||||||
|
open,
|
||||||
|
play,
|
||||||
|
pause,
|
||||||
|
stop,
|
||||||
|
status,
|
||||||
|
seek,
|
||||||
|
volume
|
||||||
|
}
|
||||||
|
|
||||||
|
function getDevices () {
|
||||||
|
return [{name: type + '-1'}, {name: type + '-2'}]
|
||||||
|
}
|
||||||
|
|
||||||
|
function open () {}
|
||||||
|
function play () {}
|
||||||
|
function pause () {}
|
||||||
|
function stop () {}
|
||||||
|
function status () {}
|
||||||
|
function seek () {}
|
||||||
|
function volume () {}
|
||||||
|
}
|
||||||
|
|
||||||
// chromecast player implementation
|
// chromecast player implementation
|
||||||
function chromecastPlayer () {
|
function chromecastPlayer () {
|
||||||
const ret = {
|
const ret = {
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ const zeroFill = require('zero-fill')
|
|||||||
const TorrentSummary = require('../lib/torrent-summary')
|
const TorrentSummary = require('../lib/torrent-summary')
|
||||||
const Playlist = require('../lib/playlist')
|
const Playlist = require('../lib/playlist')
|
||||||
const {dispatch, dispatcher} = require('../lib/dispatcher')
|
const {dispatch, dispatcher} = require('../lib/dispatcher')
|
||||||
|
const config = require('../../config')
|
||||||
|
|
||||||
// Shows a streaming video player. Standard features + Chromecast + Airplay
|
// Shows a streaming video player. Standard features + Chromecast + Airplay
|
||||||
module.exports = class Player extends React.Component {
|
module.exports = class Player extends React.Component {
|
||||||
@@ -585,6 +586,8 @@ function renderPlayerControls (state) {
|
|||||||
// Renders the loading bar. Shows which parts of the torrent are loaded, which
|
// Renders the loading bar. Shows which parts of the torrent are loaded, which
|
||||||
// can be 'spongey' / non-contiguous
|
// can be 'spongey' / non-contiguous
|
||||||
function renderLoadingBar (state) {
|
function renderLoadingBar (state) {
|
||||||
|
if (config.IS_TEST) return // Don't integration test the loading bar. Screenshots won't match.
|
||||||
|
|
||||||
const torrentSummary = state.getPlayingTorrentSummary()
|
const torrentSummary = state.getPlayingTorrentSummary()
|
||||||
if (!torrentSummary.progress) {
|
if (!torrentSummary.progress) {
|
||||||
return []
|
return []
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 423 KiB After Width: | Height: | Size: 302 KiB |
|
Before Width: | Height: | Size: 694 KiB After Width: | Height: | Size: 478 KiB |
|
Before Width: | Height: | Size: 699 KiB After Width: | Height: | Size: 480 KiB |
|
Before Width: | Height: | Size: 700 KiB After Width: | Height: | Size: 480 KiB |
|
Before Width: | Height: | Size: 698 KiB After Width: | Height: | Size: 480 KiB |
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 700 KiB After Width: | Height: | Size: 481 KiB |