Warning, /libraries/kirigami-addons/autotests/tst_avatar.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 * SPDX-FileCopyrightText: 2020 Janet Blackquill <uhhadd@gmail.com>
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 as QQC2
0010 import QtQuick.Templates as T
0011 import QtTest
0012
0013 import org.kde.kirigami as Kirigami
0014 import org.kde.kirigamiaddons.components as KirigamiComponents
0015
0016 Item {
0017 id: root
0018
0019 width: 110
0020 height: 110 * 3
0021
0022 TestCase {
0023 name: "AvatarTests"
0024 function test_latin_name() {
0025 compare(KirigamiComponents.NameUtils.isStringUnsuitableForInitials("Nate Martin"), false)
0026 compare(KirigamiComponents.NameUtils.initialsFromString("Nate Martin"), "NM")
0027
0028 compare(KirigamiComponents.NameUtils.isStringUnsuitableForInitials("Kalanoka"), false)
0029 compare(KirigamiComponents.NameUtils.initialsFromString("Kalanoka"), "K")
0030
0031 compare(KirigamiComponents.NameUtils.isStringUnsuitableForInitials("Why would anyone use such a long not name in the field of the Name"), false)
0032 compare(KirigamiComponents.NameUtils.initialsFromString("Why would anyone use such a long not name in the field of the Name"), "WN")
0033
0034 compare(KirigamiComponents.NameUtils.isStringUnsuitableForInitials("Live-CD User"), false)
0035 compare(KirigamiComponents.NameUtils.initialsFromString("Live-CD User"), "LU")
0036 }
0037 // these are just randomly sampled names from internet pages in the
0038 // source languages of the name
0039 function test_jp_name() {
0040 compare(KirigamiComponents.NameUtils.isStringUnsuitableForInitials("北里 柴三郎"), false)
0041 compare(KirigamiComponents.NameUtils.initialsFromString("北里 柴三郎"), "北")
0042
0043 compare(KirigamiComponents.NameUtils.isStringUnsuitableForInitials("小野田 寛郎"), false)
0044 compare(KirigamiComponents.NameUtils.initialsFromString("小野田 寛郎"), "小")
0045 }
0046 function test_cn_name() {
0047 compare(KirigamiComponents.NameUtils.isStringUnsuitableForInitials("蔣經國"), false)
0048 compare(KirigamiComponents.NameUtils.initialsFromString("蔣經國"), "蔣")
0049 }
0050 function test_cyrillic_name() {
0051 compare(KirigamiComponents.NameUtils.isStringUnsuitableForInitials("Нейт Мартин"), false)
0052 compare(KirigamiComponents.NameUtils.initialsFromString("Нейт Мартин"), "НМ")
0053
0054 compare(KirigamiComponents.NameUtils.isStringUnsuitableForInitials("Каланока"), false)
0055 compare(KirigamiComponents.NameUtils.initialsFromString("Каланока"), "К")
0056
0057 compare(KirigamiComponents.NameUtils.isStringUnsuitableForInitials("Зачем кому-то использовать такое длинное не имя в поле Имя"), false)
0058 compare(KirigamiComponents.NameUtils.initialsFromString("Зачем кому-то использовать такое длинное не имя в поле Имя"), "ЗИ")
0059
0060 compare(KirigamiComponents.NameUtils.isStringUnsuitableForInitials("Пользователь Лайв-СИДИ"), false)
0061 compare(KirigamiComponents.NameUtils.initialsFromString("Лайв-СИДИ Пользователь"), "ЛП")
0062 }
0063 function test_bad_names() {
0064 compare(KirigamiComponents.NameUtils.isStringUnsuitableForInitials("151231023"), true)
0065 }
0066 }
0067
0068 TestCase {
0069 name: "AvatarActions"
0070
0071 width: 110
0072 height: 110 * 1
0073 visible: true
0074 when: windowShown
0075
0076 KirigamiComponents.AvatarButton {
0077 id: avatarButton
0078
0079 x: 5
0080 y: 5
0081 width: 100
0082 height: 100
0083
0084 activeFocusOnTab: true
0085 }
0086
0087 function test_avatar_type() {
0088 // Implies that it is clickable, keyboard-interactible, and supports actions.
0089 verify(avatarButton instanceof T.AbstractButton)
0090 }
0091 }
0092
0093 TestCase {
0094 name: "AvatarColors"
0095 y: 110 * 1
0096 width: 110
0097 height: 110 * 2
0098 visible: true
0099 when: windowShown
0100
0101 KirigamiComponents.Avatar {
0102 id: avatarWithDefaultInitialsColor
0103
0104 x: 5
0105 y: 5
0106 width: 100
0107 height: 100
0108 }
0109
0110 KirigamiComponents.Avatar {
0111 id: avatarWithNonWritableColors
0112
0113 x: 5
0114 y: 110 + 5
0115 width: 100
0116 height: 100
0117 }
0118
0119 function checkInitialsColorIsDefault(avatar) {
0120 compare(avatar.initialsColor, avatar.defaultInitialsColor);
0121 }
0122
0123 function test_initialsColors() {
0124 checkInitialsColorIsDefault(avatarWithDefaultInitialsColor);
0125 avatarWithDefaultInitialsColor.initialsColor = "red";
0126 verify(Qt.colorEqual(avatarWithDefaultInitialsColor.initialsColor, "red"));
0127 // Test reset
0128 avatarWithDefaultInitialsColor.initialsColor = Qt.binding(() => avatarWithDefaultInitialsColor.defaultInitialsColor);
0129 checkInitialsColorIsDefault(avatarWithDefaultInitialsColor);
0130 }
0131
0132 function test_defaultColorIsNotWritable() {
0133 let failed = false;
0134 try {
0135 avatarWithNonWritableColors.defaultInitialsColor = "red";
0136 } catch (ex) {
0137 failed = true;
0138 }
0139 verify(failed);
0140 checkInitialsColorIsDefault(avatarWithNonWritableColors);
0141 }
0142 }
0143 }