Code owners
Assign users and groups as approvers for specific file changes. Learn more.
tst_OngoingCallPage.qml 3.75 KiB
/*
* Copyright (C) 2024 Savoir-faire Linux Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import QtQuick
import QtQuick.Controls
import QtTest
import net.jami.Models 1.1
import net.jami.Constants 1.1
import "../../../src/app/"
import "../../../src/app/mainview/components"
OngoingCallPage {
id: uut
width: 800
height: 600
property QtObject appWindow
property ViewManager viewManager: ViewManager {
}
property ViewCoordinator viewCoordinator: ViewCoordinator {
viewManager: uut.viewManager
}
TestCase {
name: "Check basic visibility of action bar during a call"
when: windowShown // Mouse events can only be handled
// after the window has been shown.
property var callOverlay
property var mainOverlay
function initTestCase() {
callOverlay = findChild(uut, "callOverlay")
mainOverlay = findChild(callOverlay, "mainOverlay")
// The CallActionBar on the OngoingCallPage starts out invisible and
// is made visible whenever the user moves their mouse.
// This is implemented via an event filter in the CallOverlayModel
// class. The event filter is created when the MainOverlay becomes
// visible. In the actual Jami application, this happens when a call
// is started, but we need to toggle the visiblity manually here
// because the MainOverlay is visible at the beginning of the test.
appWindow = uut.Window.window
mainOverlay.visible = false
mainOverlay.visible = true
// Calling mouseMove() will generate warnings if we don't call init first.
viewCoordinator.init(uut)
}
function test_checkBasicVisibility() {
var callActionBar = findChild(mainOverlay, "callActionBar")
// The primary and secondary actions in the CallActionBar are currently being added
// one by one (not using a loop) to CallOverlayModel in the Component.onCompleted
// block of CallActionBar.qml. The two lines below are meant as a sanity check
// that no action has been forgotten.
compare(callActionBar.primaryActions.length, CallOverlayModel.primaryModel().rowCount())
compare(callActionBar.secondaryActions.length, CallOverlayModel.secondaryModel().rowCount())
compare(callActionBar.visible, false)
mouseMove(uut)
// We need to wait for the fade-in animation of the CallActionBar to be completed
// before we check that it's visible.
var waitTime = JamiTheme.overlayFadeDuration + 100
// Make sure we have time to check that the CallActioinBar is visible before it fades out:
verify(waitTime + 100 < JamiTheme.overlayFadeDelay)
// Note: The CallActionBar is supposed to stay visible for a few seconds. If the above
// check fails, then this means that either overlayFadeDuration or overlayFadeDelay
// got changed to a value that's way too high/low.
wait(waitTime)
compare(callActionBar.visible, true)
}
}
}