File indexing completed on 2024-06-16 04:27:59

0001 /*
0002    SPDX-FileCopyrightText: 2019-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "languagetoolconfigwidgettest.h"
0008 #include "languagetool/languagetoolcombobox.h"
0009 #include "languagetool/languagetoolconfigwidget.h"
0010 #include <QCheckBox>
0011 #include <QLabel>
0012 #include <QLineEdit>
0013 #include <QStandardPaths>
0014 #include <QTest>
0015 #include <QToolButton>
0016 #include <QVBoxLayout>
0017 #include <qtestmouse.h>
0018 
0019 QTEST_MAIN(LanguageToolConfigWidgetTest)
0020 LanguageToolConfigWidgetTest::LanguageToolConfigWidgetTest(QObject *parent)
0021     : QObject(parent)
0022 {
0023     QStandardPaths::setTestModeEnabled(true);
0024 }
0025 
0026 void LanguageToolConfigWidgetTest::shouldHaveDefaultValue()
0027 {
0028     TextGrammarCheck::LanguageToolConfigWidget w;
0029     auto mainLayout = w.findChild<QVBoxLayout *>(QStringLiteral("mainlayout"));
0030     QVERIFY(mainLayout);
0031     QCOMPARE(mainLayout->contentsMargins(), QMargins());
0032 
0033     auto mUseLocalInstance = w.findChild<QCheckBox *>(QStringLiteral("uselocalinstance"));
0034     QVERIFY(mUseLocalInstance);
0035     QVERIFY(!mUseLocalInstance->text().isEmpty());
0036     QVERIFY(!mUseLocalInstance->isChecked());
0037 
0038     auto instancePathLabel = w.findChild<QLabel *>(QStringLiteral("instancepath"));
0039     QVERIFY(instancePathLabel);
0040     QVERIFY(!instancePathLabel->text().isEmpty());
0041     QVERIFY(!instancePathLabel->isEnabled());
0042 
0043     auto mInstancePath = w.findChild<QLineEdit *>(QStringLiteral("instancepath"));
0044     QVERIFY(mInstancePath);
0045     // We load default value
0046     QVERIFY(!mInstancePath->text().isEmpty());
0047     QVERIFY(!mInstancePath->isEnabled());
0048     QVERIFY(mInstancePath->isClearButtonEnabled());
0049 
0050     auto languageLabel = w.findChild<QLabel *>(QStringLiteral("languageLabel"));
0051     QVERIFY(languageLabel);
0052     QVERIFY(!languageLabel->text().isEmpty());
0053 
0054     auto mLanguageToolCombobox = w.findChild<TextGrammarCheck::LanguageToolComboBox *>(QStringLiteral("languagecombobox"));
0055     QVERIFY(mLanguageToolCombobox);
0056 
0057     auto refreshButton = w.findChild<QToolButton *>(QStringLiteral("refreshbutton"));
0058     QVERIFY(refreshButton);
0059     // QVERIFY(!refreshButton->icon().isNull());
0060 }
0061 
0062 void LanguageToolConfigWidgetTest::shouldUpdateWidgets()
0063 {
0064     TextGrammarCheck::LanguageToolConfigWidget w;
0065 
0066     auto mUseLocalInstance = w.findChild<QCheckBox *>(QStringLiteral("uselocalinstance"));
0067 
0068     auto instancePathLabel = w.findChild<QLabel *>(QStringLiteral("instancepath"));
0069 
0070     auto mInstancePath = w.findChild<QLineEdit *>(QStringLiteral("instancepath"));
0071     QTest::mouseClick(mUseLocalInstance, Qt::LeftButton);
0072 
0073     QVERIFY(mUseLocalInstance->isChecked());
0074     QVERIFY(mUseLocalInstance->isEnabled());
0075     QVERIFY(instancePathLabel->isEnabled());
0076     QVERIFY(mInstancePath->isEnabled());
0077 
0078     QTest::mouseClick(mUseLocalInstance, Qt::LeftButton);
0079     QVERIFY(!mUseLocalInstance->isChecked());
0080     QVERIFY(mUseLocalInstance->isEnabled());
0081     QVERIFY(!instancePathLabel->isEnabled());
0082     QVERIFY(!mInstancePath->isEnabled());
0083 }
0084 
0085 #include "moc_languagetoolconfigwidgettest.cpp"