Warning, /frameworks/kirigami/autotests/tst_inlinemessage.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 QtTest 0009 import org.kde.kirigami as Kirigami 0010 0011 TestCase { 0012 id: testCase 0013 0014 name: "InlineMessageTests" 0015 when: windowShown 0016 0017 width: 300 0018 height: 300 0019 visible: true 0020 0021 Component { 0022 id: inlineMessageComponent 0023 Kirigami.InlineMessage { 0024 id: message 0025 0026 readonly property SignalSpy linkHoveredSpy: SignalSpy { 0027 target: message 0028 signalName: "linkHovered" 0029 } 0030 readonly property SignalSpy linkActivatedSpy: SignalSpy { 0031 target: message 0032 signalName: "linkActivated" 0033 } 0034 0035 anchors { 0036 top: parent.top 0037 left: parent.left 0038 right: parent.right 0039 } 0040 visible: true 0041 } 0042 } 0043 0044 function hoverAll(item: Item, /*predicate*/ until) { 0045 for (let x = 0; x < item.width; x += 10) { 0046 for (let y = 0; y < item.height; y += 10) { 0047 mouseMove(item, x, y); 0048 if (until()) { 0049 return Qt.point(x, y); 0050 } 0051 } 0052 } 0053 return null; 0054 } 0055 0056 function test_link() { 0057 skip("finding links by sweeping with the mouse cursor all over the place seems very unreliable, especially on FreeBSD and Windows TODO: find a better way to find links") 0058 const href = "some"; 0059 const message = createTemporaryObject(inlineMessageComponent, this, { 0060 text: `<a href="${href}">link</a>`, 0061 }); 0062 verify(message); 0063 verify(message.linkHoveredSpy.valid); 0064 verify(message.linkActivatedSpy.valid); 0065 0066 const point = hoverAll(message, () => message.hoveredLink === href); 0067 verify(point !== null); 0068 compare(message.linkHoveredSpy.count, 1); 0069 const hoveredLink = message.linkHoveredSpy.signalArguments[0][0]; 0070 compare(hoveredLink, href); 0071 0072 mouseClick(message, point.x, point.y); 0073 compare(message.linkActivatedSpy.count, 1); 0074 const activatedLink = message.linkActivatedSpy.signalArguments[0][0]; 0075 compare(activatedLink, href); 0076 } 0077 0078 function test_hoveredLink_is_readonly() { 0079 const message = createTemporaryObject(inlineMessageComponent, this); 0080 verify(message); 0081 compare(message.hoveredLink, ""); 0082 let failed = false; 0083 try { 0084 message.hoveredLink = "something"; 0085 } catch (e) { 0086 failed = true; 0087 } 0088 verify(failed); 0089 } 0090 }