summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/text/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/gui/text/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp')
-rw-r--r--tests/auto/gui/text/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/auto/gui/text/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp b/tests/auto/gui/text/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp
index 9d6ce78b24..c683ecd424 100644
--- a/tests/auto/gui/text/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp
+++ b/tests/auto/gui/text/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp
@@ -82,6 +82,7 @@ private slots:
void preservePreeditArea();
void task108530();
void avoidUnnecessaryRehighlight();
+ void avoidUnnecessaryDelayedRehighlight();
void noContentsChangedDuringHighlight();
void rehighlight();
void rehighlightBlock();
@@ -478,6 +479,24 @@ void tst_QSyntaxHighlighter::avoidUnnecessaryRehighlight()
QTRY_VERIFY(!hl->highlighted);
}
+void tst_QSyntaxHighlighter::avoidUnnecessaryDelayedRehighlight()
+{
+ // Having text in the document before creating the highlighter starts the delayed rehighlight
+ cursor.insertText("Hello World");
+
+ TestHighlighter *hl = new TestHighlighter(doc);
+ QVERIFY(!hl->highlighted);
+
+ hl->rehighlight();
+ QVERIFY(hl->highlighted);
+
+ hl->highlighted = false;
+ // Process events, including delayed rehighlight emission
+ QCoreApplication::processEvents();
+ // Should be cancelled and no extra rehighlight should be done
+ QVERIFY(!hl->highlighted);
+}
+
void tst_QSyntaxHighlighter::noContentsChangedDuringHighlight()
{
QVector<QTextLayout::FormatRange> formats;