VulpesOS/gaia/apps/system/test/marionette/browser_video_test.js
OverSu b38dea0597 Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
2026-09-30 23:13:03 +02:00

87 lines
2.2 KiB
JavaScript
Executable file

'use strict';
var Server = require('../../../../shared/test/integration/server');
var Rocketbar = require('../../../system/test/marionette/lib/rocketbar');
var VideoPlayer = require('../../../system/test/marionette/lib/video_player');
var assert = require('assert');
marionette('Video', function() {
var system, actions, rocketbar, client, server, player;
var ACCEPTABLE_DELAY = 0.2;
client = marionette.client({
desiredCapabilities: { raisesAccessibilityExceptions: false }
});
suiteSetup(function(done) {
Server.create(__dirname + '/fixtures/', function(err, _server) {
server = _server;
done();
});
});
suiteTeardown(function() {
server.stop();
});
setup(function() {
system = client.loader.getAppClass('system');
player = new VideoPlayer(client);
rocketbar = new Rocketbar(client);
actions = client.loader.getActions();
system.waitForFullyLoaded();
});
// https://moztrap.mozilla.org/manage/case/6073/
test('Confirm video playback', function() {
var videoUrl = server.url('VID_0001.webm');
rocketbar.homescreenFocus();
rocketbar.enterText(videoUrl, true);
var browserFrame = system.waitForUrlLoaded(videoUrl);
client.switchToFrame(browserFrame);
player.waitForVideoLoaded();
assert(player.isPlaying());
player.invokeControls();
var stoppedAt = player.currentTimestamp;
player.tapPause();
assert(!player.isPlaying());
var resumedAt = player.currentTimestamp;
player.tapPlay();
player.waitForVideoLoaded();
assert(player.isPlaying());
assert(stoppedAt - resumedAt < ACCEPTABLE_DELAY);
player.invokeControls();
player.tapMute();
player.tapUnmute();
player.invokeControls();
player.tapFullscreen();
client.switchToFrame();
client.waitFor(function() {
return system.permissionDialog.displayed();
});
system.permissionYes.tap();
system.gotoBrowser(videoUrl);
client.waitFor(function() {
return player.isFullScreen();
});
client.helper.wait (1000);
player.invokeControls();
player.tapFullscreen();
client.waitFor(function() {
return !player.isFullScreen() && !player.visibleControls();
});
});
});