File indexing completed on 2024-06-23 04:40:16
0001 /* 0002 SPDX-FileCopyrightText: 2023-2024 Laurent Montel <montel.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "richtextbrowserfindbartest.h" 0008 #include "richtextbrowser/richtextbrowserfindbar.h" 0009 #include <QTest> 0010 #include <QTextBrowser> 0011 0012 QTEST_MAIN(RichTextBrowserFindBarTest) 0013 Q_DECLARE_METATYPE(TextCustomEditor::TextEditFindBarBase::FindFlags) 0014 RichTextBrowserFindBarTest::RichTextBrowserFindBarTest(QObject *parent) 0015 : QObject{parent} 0016 { 0017 } 0018 0019 void RichTextBrowserFindBarTest::shouldHaveDefaultValues() 0020 { 0021 QTextBrowser edit; 0022 TextCustomEditor::RichTextBrowserFindBar w(&edit); 0023 QVERIFY(w.text().isEmpty()); 0024 } 0025 0026 class RichTextEditFindBarExample : public TextCustomEditor::RichTextBrowserFindBar 0027 { 0028 public: 0029 explicit RichTextEditFindBarExample(QTextBrowser *view, QWidget *parent = nullptr) 0030 : RichTextBrowserFindBar(view, parent) 0031 { 0032 } 0033 ~RichTextEditFindBarExample() override = default; 0034 [[nodiscard]] bool searchInDocument(const QString &text, TextEditFindBarBase::FindFlags searchOptions) override 0035 { 0036 return TextCustomEditor::RichTextBrowserFindBar::searchInDocument(text, searchOptions); 0037 } 0038 0039 [[nodiscard]] bool searchInDocument(const QRegularExpression ®Exp, TextEditFindBarBase::FindFlags searchOptions) override 0040 { 0041 return TextCustomEditor::RichTextBrowserFindBar::searchInDocument(regExp, searchOptions); 0042 } 0043 }; 0044 0045 void RichTextBrowserFindBarTest::shouldSearchText_data() 0046 { 0047 QTest::addColumn<QString>("text"); 0048 QTest::addColumn<QString>("searchText"); 0049 QTest::addColumn<TextCustomEditor::TextEditFindBarBase::FindFlags>("flags"); 0050 QTest::addColumn<bool>("found"); 0051 0052 QTest::newRow("empty") << QString() << QStringLiteral("blabla") << TextCustomEditor::TextEditFindBarBase::FindFlags() << false; 0053 { 0054 TextCustomEditor::TextEditFindBarBase::FindFlags flags; 0055 flags |= TextCustomEditor::TextEditFindBarBase::FindRespectDiacritics; 0056 QTest::newRow("empty-1") << QString() << QStringLiteral("blabla") << flags << false; 0057 } 0058 { 0059 TextCustomEditor::TextEditFindBarBase::FindFlags flags; 0060 flags |= TextCustomEditor::TextEditFindBarBase::FindCaseSensitively; 0061 QTest::newRow("empty-2") << QString() << QStringLiteral("blabla") << flags << false; 0062 } 0063 { 0064 TextCustomEditor::TextEditFindBarBase::FindFlags flags; 0065 flags |= TextCustomEditor::TextEditFindBarBase::FindWholeWords; 0066 QTest::newRow("findwholewords-1") << QStringLiteral("bla bla") << QStringLiteral("bla") << flags << true; 0067 0068 QTest::newRow("findwholewords-2") << QStringLiteral("blabla") << QStringLiteral("bla") << flags << false; 0069 } 0070 { 0071 TextCustomEditor::TextEditFindBarBase::FindFlags flags; 0072 flags |= TextCustomEditor::TextEditFindBarBase::FindRespectDiacritics; 0073 QTest::newRow("find-diacritics-1") << QStringLiteral("numéro numéro") << QStringLiteral("numero") << flags << false; 0074 0075 QTest::newRow("find-diacritics-2") << QStringLiteral("numéro numéro") << QStringLiteral("numéro") << flags << true; 0076 } 0077 } 0078 0079 void RichTextBrowserFindBarTest::shouldSearchText() 0080 { 0081 QFETCH(QString, text); 0082 QFETCH(QString, searchText); 0083 QFETCH(TextCustomEditor::TextEditFindBarBase::FindFlags, flags); 0084 QFETCH(bool, found); 0085 0086 QTextBrowser edit; 0087 RichTextEditFindBarExample w(&edit); 0088 edit.setPlainText(text); 0089 0090 QCOMPARE(w.searchInDocument(searchText, flags), found); 0091 } 0092 0093 #include "moc_richtextbrowserfindbartest.cpp"