diff --git a/src/plugins/cppeditor/cppautocompleter.cpp b/src/plugins/cppeditor/cppautocompleter.cpp index c587654e7e8..dcd2cebacd8 100644 --- a/src/plugins/cppeditor/cppautocompleter.cpp +++ b/src/plugins/cppeditor/cppautocompleter.cpp @@ -6,6 +6,7 @@ #include #include +#include #include #include @@ -182,14 +183,19 @@ static QChar closingChar(QChar c) return QChar(); } -static QTextCursor openEditor(const QString &text) +static TextEditor::BaseTextEditor *creteCppEditor(const QString &text) { - QTextCursor tc; QString name(QLatin1String("auto_complete_test")); Core::IEditor *editor = Core::EditorManager::openEditorWithContents( - Constants::CPPEDITOR_ID, &name, text.toLocal8Bit()); + Constants::CPPEDITOR_ID, &name, text.toLocal8Bit()); + + return qobject_cast(editor); +} + +static QTextCursor openEditor(TextEditor::BaseTextEditor *cppEditor) +{ + QTextCursor tc; - const auto cppEditor = qobject_cast(editor); if (cppEditor == 0) return tc; tc = cppEditor->editorWidget()->textCursor(); @@ -268,7 +274,12 @@ void AutoCompleterTest::testAutoComplete() QVERIFY(text.contains(QLatin1Char('|'))); const QScopeGuard cleanup([] { Core::EditorManager::closeAllEditors(false); }); - QTextCursor tc = openEditor(text); + + TextEditor::BaseTextEditor *cppEditor = creteCppEditor(text); + QVERIFY(cppEditor); + QTRY_VERIFY(cppEditor->textDocument()->syntaxHighlighterRunner()->syntaxInfoUpdated()); + QTextCursor tc = openEditor(cppEditor); + QTRY_VERIFY(cppEditor->textDocument()->syntaxHighlighterRunner()->syntaxInfoUpdated()); QVERIFY(!tc.isNull()); @@ -327,7 +338,11 @@ void AutoCompleterTest::testSurroundWithSelection() QVERIFY(text.count(QLatin1Char('|')) == 2); const QScopeGuard cleanup([] { Core::EditorManager::closeAllEditors(false); }); - QTextCursor tc = openEditor(text); + TextEditor::BaseTextEditor *cppEditor = creteCppEditor(text); + QVERIFY(cppEditor); + QTRY_VERIFY(cppEditor->textDocument()->syntaxHighlighterRunner()->syntaxInfoUpdated()); + QTextCursor tc = openEditor(cppEditor); + QTRY_VERIFY(cppEditor->textDocument()->syntaxHighlighterRunner()->syntaxInfoUpdated()); QVERIFY(!tc.isNull()); @@ -360,7 +375,11 @@ void AutoCompleterTest::testAutoBackspace() QVERIFY(text.contains(QLatin1Char('|'))); const QScopeGuard cleanup([] { Core::EditorManager::closeAllEditors(false); }); - QTextCursor tc = openEditor(text); + TextEditor::BaseTextEditor *cppEditor = creteCppEditor(text); + QVERIFY(cppEditor); + QTRY_VERIFY(cppEditor->textDocument()->syntaxHighlighterRunner()->syntaxInfoUpdated()); + QTextCursor tc = openEditor(cppEditor); + QTRY_VERIFY(cppEditor->textDocument()->syntaxHighlighterRunner()->syntaxInfoUpdated()); QVERIFY(!tc.isNull()); @@ -400,7 +419,11 @@ void AutoCompleterTest::testInsertParagraph() QVERIFY(text.contains(QLatin1Char('|'))); const QScopeGuard cleanup([] { Core::EditorManager::closeAllEditors(false); }); - QTextCursor tc = openEditor(text); + TextEditor::BaseTextEditor *cppEditor = creteCppEditor(text); + QVERIFY(cppEditor); + QTRY_VERIFY(cppEditor->textDocument()->syntaxHighlighterRunner()->syntaxInfoUpdated()); + QTextCursor tc = openEditor(cppEditor); + QTRY_VERIFY(cppEditor->textDocument()->syntaxHighlighterRunner()->syntaxInfoUpdated()); QVERIFY(!tc.isNull()); diff --git a/src/plugins/cppeditor/cppcompletion_test.cpp b/src/plugins/cppeditor/cppcompletion_test.cpp index a61f0707ec3..5a3cc312612 100644 --- a/src/plugins/cppeditor/cppcompletion_test.cpp +++ b/src/plugins/cppeditor/cppcompletion_test.cpp @@ -8,10 +8,11 @@ #include "cppmodelmanager.h" #include "cpptoolstestcase.h" -#include -#include -#include #include +#include +#include +#include +#include #include #include @@ -61,6 +62,11 @@ public: // Open in editor m_editor = EditorManager::openEditor(filePath); QVERIFY(m_editor); + + TextEditor::BaseTextEditor *cppEditor = qobject_cast(m_editor); + QVERIFY(cppEditor); + QTRY_VERIFY(cppEditor->textDocument()->syntaxHighlighterRunner()->syntaxInfoUpdated()); + closeEditorAtEndOfTestCase(m_editor); m_editorWidget = TextEditorWidget::fromEditor(m_editor); QVERIFY(m_editorWidget);