Warning, /frameworks/kirigami/autotests/mobile/tst_pagerow.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 * SPDX-FileCopyrightText: 2023 ivan tkachenko <me@ratijas.tk> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 import QtQuick 0008 import QtQuick.Controls as QQC2 0009 import QtTest 0010 import org.kde.kirigami as Kirigami 0011 0012 TestCase { 0013 id: testCase 0014 0015 width: 400 0016 height: 400 0017 name: "MobilePageRowTest" 0018 visible: false 0019 0020 Component { 0021 id: applicationComponent 0022 Kirigami.ApplicationWindow { 0023 // Mobile pagerow logic branches at 40 gridUnits boundary 0024 width: Kirigami.Units.gridUnit * 30 0025 height: 400 0026 } 0027 } 0028 0029 Component { 0030 id: pageComponent 0031 Kirigami.Page { 0032 id: page 0033 property alias closeButton: closeButton 0034 title: "TestPageComponent" 0035 QQC2.Button { 0036 id: closeButton 0037 anchors.centerIn: parent 0038 objectName: "CloseDialogButton" 0039 text: "Close" 0040 onClicked: page.closeDialog(); 0041 } 0042 } 0043 } 0044 0045 // The following methods are adaptation of QtTest internals 0046 0047 function waitForWindowActive(window: Window) { 0048 tryVerify(() => window.active); 0049 } 0050 0051 function ensureWindowShown(window: Window) { 0052 window.requestActivate(); 0053 waitForWindowActive(window); 0054 wait(0); 0055 } 0056 0057 function init() { 0058 verify(Kirigami.Settings.isMobile); 0059 } 0060 0061 function test_pushDialogLayer() { 0062 const app = createTemporaryObject(applicationComponent, this); 0063 verify(app); 0064 ensureWindowShown(app); 0065 0066 verify(app.pageStack.layers instanceof QQC2.StackView); 0067 compare(app.pageStack.layers.depth, 1); 0068 { 0069 const page = app.pageStack.pushDialogLayer(pageComponent); 0070 verify(page instanceof Kirigami.Page); 0071 compare(page.title, "TestPageComponent"); 0072 // Wait for it to finish animating 0073 tryVerify(() => !app.pageStack.layers.busy); 0074 compare(app.pageStack.layers.depth, 2); 0075 mouseClick(page.closeButton); 0076 tryVerify(() => !app.pageStack.layers.busy); 0077 compare(app.pageStack.layers.depth, 1); 0078 } 0079 app.width = Kirigami.Units.gridUnit * 50; 0080 { 0081 const page = app.pageStack.pushDialogLayer(pageComponent); 0082 verify(page instanceof Kirigami.Page); 0083 compare(page.title, "TestPageComponent"); 0084 verify(!app.pageStack.layers.busy); 0085 compare(app.pageStack.layers.depth, 1); 0086 mouseClick(page.closeButton); 0087 } 0088 } 0089 }