Warning, /frameworks/kirigami/autotests/tst_padding.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 org.kde.kirigami as Kirigami 0010 import QtTest 0011 0012 TestCase { 0013 id: root 0014 0015 name: "PaddingTest" 0016 visible: true 0017 when: windowShown 0018 0019 width: 300 0020 height: 300 0021 0022 Component { 0023 id: spyComponent 0024 SignalSpy {} 0025 } 0026 0027 Component { 0028 id: emptyComponent 0029 Kirigami.Padding {} 0030 } 0031 0032 function test_empty() { 0033 const item = createTemporaryObject(emptyComponent, this); 0034 verify(item); 0035 verify(!item.contentItem); 0036 0037 compare(item.implicitWidth, 0); 0038 compare(item.implicitHeight, 0); 0039 compare(item.width, 0); 0040 compare(item.height, 0); 0041 compare(item.implicitContentWidth, 0); 0042 compare(item.implicitContentHeight, 0); 0043 0044 compare(item.padding, 0); 0045 compare(item.topPadding, 0); 0046 compare(item.leftPadding, 0); 0047 compare(item.rightPadding, 0); 0048 compare(item.bottomPadding, 0); 0049 compare(item.verticalPadding, 0); 0050 compare(item.horizontalPadding, 0); 0051 compare(item.baselineOffset, 0); 0052 0053 item.topPadding = 1; 0054 item.leftPadding = 2; 0055 item.rightPadding = 30; 0056 item.bottomPadding = 40; 0057 verify(waitForRendering(item)) 0058 0059 compare(item.implicitWidth, 32); 0060 compare(item.implicitHeight, 41); 0061 } 0062 0063 function test_paddingInheritance() { 0064 const item = createTemporaryObject(emptyComponent, this); 0065 verify(item); 0066 0067 const paddingSpy = createTemporaryObject(spyComponent, this, { target: item, signalName: "paddingChanged" }); 0068 verify(paddingSpy); 0069 const topPaddingSpy = createTemporaryObject(spyComponent, this, { target: item, signalName: "topPaddingChanged" }); 0070 verify(topPaddingSpy); 0071 const leftPaddingSpy = createTemporaryObject(spyComponent, this, { target: item, signalName: "leftPaddingChanged" }); 0072 verify(leftPaddingSpy); 0073 const rightPaddingSpy = createTemporaryObject(spyComponent, this, { target: item, signalName: "rightPaddingChanged" }); 0074 verify(rightPaddingSpy); 0075 const bottomPaddingSpy = createTemporaryObject(spyComponent, this, { target: item, signalName: "bottomPaddingChanged" }); 0076 verify(bottomPaddingSpy); 0077 const verticalPaddingSpy = createTemporaryObject(spyComponent, this, { target: item, signalName: "verticalPaddingChanged" }); 0078 verify(verticalPaddingSpy); 0079 const horizontalPaddingSpy = createTemporaryObject(spyComponent, this, { target: item, signalName: "horizontalPaddingChanged" }); 0080 verify(horizontalPaddingSpy); 0081 0082 compare(item.padding, 0); 0083 compare(item.topPadding, 0); 0084 compare(item.leftPadding, 0); 0085 compare(item.rightPadding, 0); 0086 compare(item.bottomPadding, 0); 0087 compare(item.verticalPadding, 0); 0088 compare(item.horizontalPadding, 0); 0089 compare(item.baselineOffset, 0); 0090 0091 item.padding = 1; 0092 compare(paddingSpy.count, 1), paddingSpy.clear(); 0093 compare(topPaddingSpy.count, 1), topPaddingSpy.clear(); 0094 compare(leftPaddingSpy.count, 1), leftPaddingSpy.clear(); 0095 compare(rightPaddingSpy.count, 1), rightPaddingSpy.clear(); 0096 compare(bottomPaddingSpy.count, 1), bottomPaddingSpy.clear(); 0097 compare(verticalPaddingSpy.count, 1), verticalPaddingSpy.clear(); 0098 compare(horizontalPaddingSpy.count, 1), horizontalPaddingSpy.clear(); 0099 0100 compare(item.padding, 1); 0101 compare(item.topPadding, 1); 0102 compare(item.leftPadding, 1); 0103 compare(item.rightPadding, 1); 0104 compare(item.bottomPadding, 1); 0105 compare(item.verticalPadding, 1); 0106 compare(item.horizontalPadding, 1); 0107 compare(item.baselineOffset, 0); 0108 0109 item.leftPadding = 2; 0110 compare(leftPaddingSpy.count, 1), leftPaddingSpy.clear(); 0111 0112 compare(item.padding, 1); 0113 compare(item.topPadding, 1); 0114 compare(item.leftPadding, 2); 0115 compare(item.rightPadding, 1); 0116 compare(item.bottomPadding, 1); 0117 0118 item.horizontalPadding = 3; 0119 compare(leftPaddingSpy.count, 0); 0120 compare(rightPaddingSpy.count, 1), rightPaddingSpy.clear(); 0121 compare(horizontalPaddingSpy.count, 1), horizontalPaddingSpy.clear(); 0122 0123 compare(item.padding, 1); 0124 compare(item.topPadding, 1); 0125 compare(item.leftPadding, 2); 0126 compare(item.rightPadding, 3); 0127 compare(item.bottomPadding, 1); 0128 compare(item.horizontalPadding, 3); 0129 compare(item.verticalPadding, 1); 0130 0131 item.verticalPadding = 4; 0132 verify(waitForRendering(item)) 0133 compare(topPaddingSpy.count, 1), topPaddingSpy.clear(); 0134 compare(bottomPaddingSpy.count, 1), bottomPaddingSpy.clear(); 0135 compare(verticalPaddingSpy.count, 1), verticalPaddingSpy.clear(); 0136 0137 compare(item.padding, 1); 0138 compare(item.topPadding, 4); 0139 compare(item.leftPadding, 2); 0140 compare(item.rightPadding, 3); 0141 compare(item.bottomPadding, 4); 0142 compare(item.horizontalPadding, 3); 0143 compare(item.verticalPadding, 4); 0144 0145 item.topPadding = 5; 0146 verify(waitForRendering(item)) 0147 compare(topPaddingSpy.count, 1), topPaddingSpy.clear(); 0148 0149 compare(item.padding, 1); 0150 compare(item.topPadding, 5); 0151 compare(item.leftPadding, 2); 0152 compare(item.rightPadding, 3); 0153 compare(item.bottomPadding, 4); 0154 compare(item.horizontalPadding, 3); 0155 compare(item.verticalPadding, 4); 0156 0157 item.bottomPadding = 6; 0158 verify(waitForRendering(item)) 0159 compare(bottomPaddingSpy.count, 1), bottomPaddingSpy.clear(); 0160 0161 compare(item.padding, 1); 0162 compare(item.topPadding, 5); 0163 compare(item.leftPadding, 2); 0164 compare(item.rightPadding, 3); 0165 compare(item.bottomPadding, 6); 0166 compare(item.horizontalPadding, 3); 0167 compare(item.verticalPadding, 4); 0168 0169 item.bottomPadding = undefined; 0170 compare(bottomPaddingSpy.count, 1), bottomPaddingSpy.clear(); 0171 0172 compare(item.padding, 1); 0173 compare(item.topPadding, 5); 0174 compare(item.leftPadding, 2); 0175 compare(item.rightPadding, 3); 0176 compare(item.bottomPadding, 4); 0177 compare(item.horizontalPadding, 3); 0178 compare(item.verticalPadding, 4); 0179 0180 item.verticalPadding = undefined; 0181 compare(topPaddingSpy.count, 0); 0182 compare(bottomPaddingSpy.count, 1), bottomPaddingSpy.clear(); 0183 compare(verticalPaddingSpy.count, 1), verticalPaddingSpy.clear(); 0184 0185 compare(item.padding, 1); 0186 compare(item.topPadding, 5); 0187 compare(item.leftPadding, 2); 0188 compare(item.rightPadding, 3); 0189 compare(item.bottomPadding, 1); 0190 compare(item.horizontalPadding, 3); 0191 compare(item.verticalPadding, 1); 0192 0193 item.rightPadding = 7; 0194 verify(waitForRendering(item)) 0195 compare(rightPaddingSpy.count, 1), rightPaddingSpy.clear(); 0196 0197 compare(item.padding, 1); 0198 compare(item.topPadding, 5); 0199 compare(item.leftPadding, 2); 0200 compare(item.rightPadding, 7); 0201 compare(item.bottomPadding, 1); 0202 compare(item.horizontalPadding, 3); 0203 compare(item.verticalPadding, 1); 0204 } 0205 0206 Component { 0207 id: sizedComponent 0208 Kirigami.Padding { 0209 topPadding: 1 0210 leftPadding: 2 0211 rightPadding: 30 0212 bottomPadding: 40 0213 0214 contentItem: Rectangle { 0215 color: "#1EA8F7" 0216 implicitWidth: 100 0217 implicitHeight: 200 0218 } 0219 } 0220 } 0221 0222 function test_fixedSizeComponent() { 0223 const item = createTemporaryObject(sizedComponent, this); 0224 verify(item); 0225 verify(waitForRendering(item)) 0226 0227 compare(item.implicitWidth, 132); 0228 compare(item.implicitHeight, 241); 0229 0230 const widthSpy = createTemporaryObject(spyComponent, this, { target: item, signalName: "implicitWidthChanged" }); 0231 const heightSpy = createTemporaryObject(spyComponent, this, { target: item, signalName: "implicitHeightChanged" }); 0232 0233 item.contentItem.implicitWidth = 1000; 0234 verify(waitForRendering(item)) 0235 compare(widthSpy.count, 1), widthSpy.clear(); 0236 compare(heightSpy.count, 0); 0237 0238 item.contentItem.implicitHeight = 2000; 0239 verify(waitForRendering(item)) 0240 compare(widthSpy.count, 0); 0241 compare(heightSpy.count, 1), heightSpy.clear(); 0242 0243 compare(item.implicitWidth, 1032); 0244 compare(item.implicitHeight, 2041); 0245 0246 item.width = 100; 0247 item.height = 200; 0248 verify(waitForRendering(item)) 0249 0250 compare(item.contentItem.width, 100 - 2 - 30); 0251 compare(item.contentItem.height, 200 - 1 - 40); 0252 } 0253 0254 Component { 0255 id: dynamicComponent 0256 Kirigami.Padding { 0257 topPadding: 1 0258 leftPadding: 2 0259 rightPadding: 30 0260 bottomPadding: 40 0261 } 0262 } 0263 0264 Component { 0265 id: contentComponent 0266 Rectangle { 0267 color: "#1EA8F7" 0268 implicitWidth: 100 0269 implicitHeight: 200 0270 } 0271 } 0272 0273 function test_dynamicComponent() { 0274 const item = createTemporaryObject(dynamicComponent, this); 0275 verify(item); 0276 verify(waitForRendering(item)) 0277 const content = createTemporaryObject(contentComponent, this); 0278 verify(content); 0279 0280 compare(item.width, 32); 0281 compare(item.height, 41); 0282 0283 item.contentItem = content; 0284 verify(waitForRendering(item)) 0285 0286 compare(item.implicitWidth, 132); 0287 compare(item.implicitHeight, 241); 0288 } 0289 }