File indexing completed on 2024-10-06 09:42:53

0001 /*
0002     This file is part of the KDE project
0003     SPDX-FileCopyrightText: 2004 Arend van Beelen jr. <arend@auton.nl>
0004     SPDX-FileCopyrightText: 2010 David Faure <faure@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.0-only
0007 */
0008 
0009 #ifndef KFINDTEST_H
0010 #define KFINDTEST_H
0011 
0012 #include <QObject>
0013 #include <QStringList>
0014 #include <ktextwidgets_export.h>
0015 #include <memory>
0016 class KFind;
0017 class KFindRecorder : public QObject
0018 {
0019     Q_OBJECT
0020 
0021 public:
0022     explicit KFindRecorder(const QStringList &text);
0023 
0024     ~KFindRecorder() override;
0025     void find(const QString &pattern, long options = 0);
0026     bool findNext(const QString &pattern = QString());
0027 
0028     void changeText(int line, const QString &text);
0029 
0030     const QStringList &hits() const
0031     {
0032         return m_hits;
0033     }
0034     void clearHits()
0035     {
0036         m_hits.clear();
0037     }
0038 
0039 public Q_SLOTS:
0040     void slotHighlight(const QString &text, int index, int matchedLength);
0041     void slotHighlight(int id, int index, int matchedLengthlength);
0042 
0043 private:
0044     std::unique_ptr<KFind> m_find;
0045     QStringList m_text;
0046     int m_line;
0047     QStringList m_hits;
0048 };
0049 
0050 class TestKFind : public QObject
0051 {
0052     Q_OBJECT
0053 
0054 public:
0055     TestKFind();
0056 
0057 private Q_SLOTS:
0058 
0059 #if KTEXTWIDGETS_BUILD_DEPRECATED_SINCE(5, 70)
0060     void testStaticFindString_data();
0061     void testStaticFindString();
0062 #endif
0063     void testStaticFindRegexp_data();
0064     void testStaticFindRegexp();
0065 
0066     void testRegexpUnicode_data();
0067     void testRegexpUnicode();
0068 
0069     void testSimpleSearch();
0070     void testSimpleRegexp();
0071 
0072 #if KTEXTWIDGETS_BUILD_DEPRECATED_SINCE(5, 70)
0073     void testLineBeginRegexp();
0074 #endif
0075 
0076     void testLineBeginRegularExpression();
0077     void testFindIncremental();
0078     void testFindIncrementalDynamic();
0079 
0080 private:
0081     QString m_text;
0082 };
0083 
0084 #endif