Warning, /frameworks/kirigami/autotests/tst_keynavigation.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 * SPDX-FileCopyrightText: 2016 Aleix Pol Gonzalez <aleixpol@kde.org> 0003 * SPDX-FileCopyrightText: 2023 ivan tkachenko <me@ratijas.tk> 0004 * 0005 * SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 import QtQuick 0009 import QtQuick.Controls 0010 import QtQuick.Window 0011 import org.kde.kirigami as Kirigami 0012 import QtTest 0013 import "../tests" 0014 0015 TestCase { 0016 id: testCase 0017 width: 400 0018 height: 400 0019 name: "KeyboardNavigation" 0020 0021 Component { 0022 id: mainComponent 0023 KeyboardTest { 0024 id: window 0025 0026 width: 480 0027 height: 360 0028 0029 readonly property SignalSpy spyLastKey: SignalSpy { 0030 target: window.pageStack.currentItem 0031 signalName: "lastKeyChanged" 0032 } 0033 } 0034 } 0035 0036 // The following methods are adaptation of QtTest internals 0037 0038 function waitForWindowActive(window: Window) { 0039 tryVerify(() => window.active); 0040 } 0041 0042 function ensureWindowShown(window: Window) { 0043 window.requestActivate(); 0044 waitForWindowActive(window); 0045 wait(0); 0046 } 0047 0048 function test_press() { 0049 const window = createTemporaryObject(mainComponent, this); 0050 verify(window); 0051 const spy = window.spyLastKey; 0052 verify(spy.valid); 0053 0054 ensureWindowShown(window); 0055 0056 compare(window.pageStack.depth, 2); 0057 compare(window.pageStack.currentIndex, 1); 0058 0059 let keyCount = 0; 0060 0061 keyClick("A"); 0062 keyCount += 1; 0063 compare(spy.count, keyCount); 0064 compare(window.pageStack.currentItem.lastKey, "A"); 0065 0066 keyClick(Qt.Key_Left, Qt.AltModifier); 0067 keyCount += 1; 0068 compare(spy.count, keyCount); 0069 compare(window.pageStack.currentIndex, 0); 0070 compare(window.pageStack.currentItem.lastKey, ""); 0071 0072 keyClick("B") 0073 keyCount += 1; 0074 compare(spy.count, keyCount); 0075 compare(window.pageStack.currentItem.lastKey, "B"); 0076 } 0077 }