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 }