From d734b94b89656a9fe9a896b4a91e2de15e18505a Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Sat, 28 May 2022 11:29:27 +0300 Subject: [PATCH] kate: skip some tests if there is no window manager Signed-off-by: Ivailo Monev --- .../kte_iconinserter/iconinserterplugin.h | 2 - kate/addons/ktexteditor/lumen/completion.h | 2 - kate/addons/ktexteditor/lumen/lumen.h | 2 - kate/tests/codecompletiontestmodels.h | 37 +++---- kate/tests/completion_test.cpp | 103 +++++++++++++----- 5 files changed, 91 insertions(+), 55 deletions(-) diff --git a/kate/addons/ktexteditor/kte_iconinserter/iconinserterplugin.h b/kate/addons/ktexteditor/kte_iconinserter/iconinserterplugin.h index a663df5d..ccc5a80a 100644 --- a/kate/addons/ktexteditor/kte_iconinserter/iconinserterplugin.h +++ b/kate/addons/ktexteditor/kte_iconinserter/iconinserterplugin.h @@ -31,8 +31,6 @@ #include #include -using namespace KTextEditor; - class IconInserterPlugin; class IconInserterPluginView: public QObject, public KXMLGUIClient diff --git a/kate/addons/ktexteditor/lumen/completion.h b/kate/addons/ktexteditor/lumen/completion.h index db07ea76..f9258d38 100644 --- a/kate/addons/ktexteditor/lumen/completion.h +++ b/kate/addons/ktexteditor/lumen/completion.h @@ -24,8 +24,6 @@ #include #include "dcd.h" -using namespace KTextEditor; - class LumenCompletionModel: public CodeCompletionModel2, public KTextEditor::CodeCompletionModelControllerInterface { diff --git a/kate/addons/ktexteditor/lumen/lumen.h b/kate/addons/ktexteditor/lumen/lumen.h index 3fdb5255..aa508f22 100644 --- a/kate/addons/ktexteditor/lumen/lumen.h +++ b/kate/addons/ktexteditor/lumen/lumen.h @@ -33,8 +33,6 @@ #include "dcd.h" #include "completion.h" -using namespace KTextEditor; - class LumenPlugin; class LumenPluginView: public QObject, public KXMLGUIClient diff --git a/kate/tests/codecompletiontestmodels.h b/kate/tests/codecompletiontestmodels.h index 8f0d275d..554fd6c1 100644 --- a/kate/tests/codecompletiontestmodels.h +++ b/kate/tests/codecompletiontestmodels.h @@ -26,10 +26,7 @@ #include #include -using namespace KTextEditor; - - -class CustomRangeModel : public CodeCompletionTestModel, public CodeCompletionModelControllerInterface +class CustomRangeModel : public CodeCompletionTestModel, public KTextEditor::CodeCompletionModelControllerInterface { Q_OBJECT Q_INTERFACES(KTextEditor::CodeCompletionModelControllerInterface) @@ -37,12 +34,12 @@ public: CustomRangeModel(KTextEditor::View* parent = 0L, const QString &startText = QString()) : CodeCompletionTestModel(parent, startText) {} - Range completionRange(View* view, const Cursor &position) + KTextEditor::Range completionRange(KTextEditor::View* view, const KTextEditor::Cursor &position) { - Range range = CodeCompletionModelControllerInterface::completionRange(view, position); + KTextEditor::Range range = CodeCompletionModelControllerInterface::completionRange(view, position); if (range.start().column() > 0) { - KTextEditor::Range preRange(Cursor(range.start().line(), range.start().column()-1), - Cursor(range.start().line(), range.start().column())); + KTextEditor::Range preRange(KTextEditor::Cursor(range.start().line(), range.start().column()-1), + KTextEditor::Cursor(range.start().line(), range.start().column())); kDebug() << preRange << view->document()->text(preRange); if (view->document()->text(preRange) == "$") { range.expandToRange(preRange); @@ -52,7 +49,7 @@ public: return range; } - bool shouldAbortCompletion(View* view, const Range& range, const QString ¤tCompletion) + bool shouldAbortCompletion(KTextEditor::View* view, const KTextEditor::Range& range, const QString ¤tCompletion) { Q_UNUSED(view); Q_UNUSED(range); @@ -61,7 +58,7 @@ public: } }; -class CustomAbortModel : public CodeCompletionTestModel, public CodeCompletionModelControllerInterface +class CustomAbortModel : public CodeCompletionTestModel, public KTextEditor::CodeCompletionModelControllerInterface { Q_OBJECT Q_INTERFACES(KTextEditor::CodeCompletionModelControllerInterface) @@ -70,7 +67,7 @@ public: : CodeCompletionTestModel(parent, startText) {} - bool shouldAbortCompletion(View* view, const Range& range, const QString ¤tCompletion) + bool shouldAbortCompletion(KTextEditor::View* view, const KTextEditor::Range& range, const QString ¤tCompletion) { Q_UNUSED(view); Q_UNUSED(range); @@ -79,7 +76,7 @@ public: } }; -class EmptyFilterStringModel : public CodeCompletionTestModel, public CodeCompletionModelControllerInterface +class EmptyFilterStringModel : public CodeCompletionTestModel, public KTextEditor::CodeCompletionModelControllerInterface { Q_OBJECT Q_INTERFACES(KTextEditor::CodeCompletionModelControllerInterface) @@ -88,13 +85,13 @@ public: : CodeCompletionTestModel(parent, startText) {} - QString filterString(View*, const Range&, const Cursor &) + QString filterString(KTextEditor::View*, const KTextEditor::Range&, const KTextEditor::Cursor &) { return QString(); } }; -class UpdateCompletionRangeModel : public CodeCompletionTestModel, public CodeCompletionModelControllerInterface +class UpdateCompletionRangeModel : public CodeCompletionTestModel, public KTextEditor::CodeCompletionModelControllerInterface { Q_OBJECT Q_INTERFACES(KTextEditor::CodeCompletionModelControllerInterface) @@ -103,15 +100,15 @@ public: : CodeCompletionTestModel(parent, startText) {} - Range updateCompletionRange(View* view, const Range& range) + KTextEditor::Range updateCompletionRange(KTextEditor::View* view, const KTextEditor::Range& range) { Q_UNUSED(view); if (view->document()->text(range) == QString("ab")) { - return Range(Cursor(range.start().line(), 0), range.end()); + return KTextEditor::Range(KTextEditor::Cursor(range.start().line(), 0), range.end()); } return range; } - bool shouldAbortCompletion(View* view, const Range &range, const QString ¤tCompletion) + bool shouldAbortCompletion(KTextEditor::View* view, const KTextEditor::Range &range, const QString ¤tCompletion) { Q_UNUSED(view); Q_UNUSED(range); @@ -120,7 +117,7 @@ public: } }; -class StartCompletionModel : public CodeCompletionTestModel, public CodeCompletionModelControllerInterface +class StartCompletionModel : public CodeCompletionTestModel, public KTextEditor::CodeCompletionModelControllerInterface { Q_OBJECT Q_INTERFACES(KTextEditor::CodeCompletionModelControllerInterface) @@ -129,7 +126,7 @@ public: : CodeCompletionTestModel(parent, startText) {} - bool shouldStartCompletion(View* view, const QString &insertedText, bool userInsertion, const Cursor &position) + bool shouldStartCompletion(KTextEditor::View* view, const QString &insertedText, bool userInsertion, const KTextEditor::Cursor &position) { Q_UNUSED(view); Q_UNUSED(userInsertion); @@ -145,7 +142,7 @@ public: } }; -class ImmideatelyAbortCompletionModel : public CodeCompletionTestModel, public CodeCompletionModelControllerInterface +class ImmideatelyAbortCompletionModel : public CodeCompletionTestModel, public KTextEditor::CodeCompletionModelControllerInterface { Q_OBJECT Q_INTERFACES(KTextEditor::CodeCompletionModelControllerInterface) diff --git a/kate/tests/completion_test.cpp b/kate/tests/completion_test.cpp index 4685f44a..80fe9a73 100644 --- a/kate/tests/completion_test.cpp +++ b/kate/tests/completion_test.cpp @@ -23,6 +23,8 @@ #include "moc_codecompletiontestmodels.cpp" #include +#include +#include #include #include @@ -36,9 +38,6 @@ QTEST_KDEMAIN(CompletionTest, GUI) - -using namespace KTextEditor; - static const qint64 verifyTimeout = 3000; int countItems(KateCompletionModel *model) @@ -50,6 +49,12 @@ int countItems(KateCompletionModel *model) return ret; } +static bool hasWM() +{ + static const QByteArray wmname = NETRootInfo(QX11Info::display(), NET::SupportingWMCheck).wmName(); + return !wmname.isEmpty(); +} + static void verifyCompletionStarted(KateView* view) { QElapsedTimer timer; @@ -88,7 +93,7 @@ static void invokeCompletionBox(KateView* view) void CompletionTest::init() { - Editor* editor = EditorChooser::editor(); + KTextEditor::Editor* editor = KTextEditor::EditorChooser::editor(); QVERIFY(editor); m_doc = editor->createDocument(this); @@ -112,10 +117,14 @@ void CompletionTest::cleanup() void CompletionTest::testFilterEmptyRange() { + if (!hasWM()) { + QSKIP("No window manager", SkipAll); + } + KateCompletionModel *model = m_view->completionWidget()->model(); new CodeCompletionTestModel(m_view, "a"); - m_view->setCursorPosition(Cursor(0, 0)); + m_view->setCursorPosition(KTextEditor::Cursor(0, 0)); invokeCompletionBox(m_view); QCOMPARE(countItems(model), 40); @@ -129,13 +138,13 @@ void CompletionTest::testFilterWithRange() KateCompletionModel *model = m_view->completionWidget()->model(); CodeCompletionTestModel* testModel = new CodeCompletionTestModel(m_view, "a"); - m_view->setCursorPosition(Cursor(0, 2)); + m_view->setCursorPosition(KTextEditor::Cursor(0, 2)); invokeCompletionBox(m_view); KTextEditor::MovingRange *movingRange = m_view->completionWidget()->completionRange(testModel); QVERIFY(movingRange); - Range complRange = movingRange->toRange(); - QCOMPARE(complRange, Range(Cursor(0, 0), Cursor(0, 2))); + KTextEditor::Range complRange = movingRange->toRange(); + QCOMPARE(complRange, KTextEditor::Range(KTextEditor::Cursor(0, 0), KTextEditor::Cursor(0, 2))); QCOMPARE(countItems(model), 14); m_view->insertText("a"); @@ -149,13 +158,13 @@ void CompletionTest::testAbortCursorMovedOutOfRange() KateCompletionModel *model = m_view->completionWidget()->model(); new CodeCompletionTestModel(m_view, "a"); - m_view->setCursorPosition(Cursor(0, 2)); + m_view->setCursorPosition(KTextEditor::Cursor(0, 2)); invokeCompletionBox(m_view); QCOMPARE(countItems(model), 14); QVERIFY(m_view->completionWidget()->isCompletionActive()); - m_view->setCursorPosition(Cursor(0, 4)); + m_view->setCursorPosition(KTextEditor::Cursor(0, 4)); QTest::qWait(1000); // process events QVERIFY(!m_view->completionWidget()->isCompletionActive()); } @@ -165,7 +174,7 @@ void CompletionTest::testAbortInvalidText() KateCompletionModel *model = m_view->completionWidget()->model(); new CodeCompletionTestModel(m_view, "a"); - m_view->setCursorPosition(Cursor(0, 2)); + m_view->setCursorPosition(KTextEditor::Cursor(0, 2)); invokeCompletionBox(m_view); QCOMPARE(countItems(model), 14); @@ -181,14 +190,14 @@ void CompletionTest::testCustomRange1() KateCompletionModel *model = m_view->completionWidget()->model(); CodeCompletionTestModel* testModel = new CustomRangeModel(m_view, "$a"); - m_view->setCursorPosition(Cursor(0, 3)); + m_view->setCursorPosition(KTextEditor::Cursor(0, 3)); invokeCompletionBox(m_view); KTextEditor::MovingRange *movingRange = m_view->completionWidget()->completionRange(testModel); QVERIFY(movingRange); - Range complRange = movingRange->toRange(); + KTextEditor::Range complRange = movingRange->toRange(); kDebug() << complRange; - QCOMPARE(complRange, Range(Cursor(0, 0), Cursor(0, 3))); + QCOMPARE(complRange, KTextEditor::Range(KTextEditor::Cursor(0, 0), KTextEditor::Cursor(0, 3))); QCOMPARE(countItems(model), 14); m_view->insertText("a"); @@ -198,17 +207,21 @@ void CompletionTest::testCustomRange1() void CompletionTest::testCustomRange2() { + if (!hasWM()) { + QSKIP("No window manager", SkipAll); + } + m_doc->setText("$ bb cc\ndd"); KateCompletionModel *model = m_view->completionWidget()->model(); CodeCompletionTestModel* testModel = new CustomRangeModel(m_view, "$a"); - m_view->setCursorPosition(Cursor(0, 1)); + m_view->setCursorPosition(KTextEditor::Cursor(0, 1)); invokeCompletionBox(m_view); KTextEditor::MovingRange *movingRange = m_view->completionWidget()->completionRange(testModel); QVERIFY(movingRange); - Range complRange = movingRange->toRange(); - QCOMPARE(complRange, Range(Cursor(0, 0), Cursor(0, 1))); + KTextEditor::Range complRange = movingRange->toRange(); + QCOMPARE(complRange, KTextEditor::Range(KTextEditor::Cursor(0, 0), KTextEditor::Cursor(0, 1))); QCOMPARE(countItems(model), 40); m_view->insertText("aa"); @@ -218,20 +231,24 @@ void CompletionTest::testCustomRange2() void CompletionTest::testCustomRangeMultipleModels() { + if (!hasWM()) { + QSKIP("No window manager", SkipAll); + } + m_doc->setText("$a bb cc\ndd"); KateCompletionModel *model = m_view->completionWidget()->model(); CodeCompletionTestModel* testModel1 = new CustomRangeModel(m_view, "$a"); CodeCompletionTestModel* testModel2 = new CodeCompletionTestModel(m_view, "a"); - m_view->setCursorPosition(Cursor(0, 1)); + m_view->setCursorPosition(KTextEditor::Cursor(0, 1)); invokeCompletionBox(m_view); KTextEditor::MovingRange *movingRange1 = m_view->completionWidget()->completionRange(testModel1); QVERIFY(movingRange1); KTextEditor::MovingRange *movingRange2 = m_view->completionWidget()->completionRange(testModel2); QVERIFY(movingRange2); - QCOMPARE(Range(movingRange1->toRange()), Range(Cursor(0, 0), Cursor(0, 2))); - QCOMPARE(Range(movingRange2->toRange()), Range(Cursor(0, 1), Cursor(0, 2))); + QCOMPARE(KTextEditor::Range(movingRange1->toRange()), KTextEditor::Range(KTextEditor::Cursor(0, 0), KTextEditor::Cursor(0, 2))); + QCOMPARE(KTextEditor::Range(movingRange2->toRange()), KTextEditor::Range(KTextEditor::Cursor(0, 1), KTextEditor::Cursor(0, 2))); QCOMPARE(model->currentCompletion(testModel1), QString("$")); QCOMPARE(model->currentCompletion(testModel2), QString("")); QCOMPARE(countItems(model), 80); @@ -246,10 +263,14 @@ void CompletionTest::testCustomRangeMultipleModels() void CompletionTest::testAbortController() { + if (!hasWM()) { + QSKIP("No window manager", SkipAll); + } + KateCompletionModel *model = m_view->completionWidget()->model(); new CustomRangeModel(m_view, "$a"); - m_view->setCursorPosition(Cursor(0, 0)); + m_view->setCursorPosition(KTextEditor::Cursor(0, 0)); invokeCompletionBox(m_view); QCOMPARE(countItems(model), 40); @@ -265,11 +286,15 @@ void CompletionTest::testAbortController() void CompletionTest::testAbortControllerMultipleModels() { + if (!hasWM()) { + QSKIP("No window manager", SkipAll); + } + KateCompletionModel *model = m_view->completionWidget()->model(); CodeCompletionTestModel* testModel1 = new CodeCompletionTestModel(m_view, "aa"); CodeCompletionTestModel* testModel2 = new CustomAbortModel(m_view, "a-"); - m_view->setCursorPosition(Cursor(0, 0)); + m_view->setCursorPosition(KTextEditor::Cursor(0, 0)); invokeCompletionBox(m_view); QCOMPARE(countItems(model), 80); @@ -295,10 +320,14 @@ void CompletionTest::testAbortControllerMultipleModels() void CompletionTest::testEmptyFilterString() { + if (!hasWM()) { + QSKIP("No window manager", SkipAll); + } + KateCompletionModel *model = m_view->completionWidget()->model(); new EmptyFilterStringModel(m_view, "aa"); - m_view->setCursorPosition(Cursor(0, 0)); + m_view->setCursorPosition(KTextEditor::Cursor(0, 0)); invokeCompletionBox(m_view); QCOMPARE(countItems(model), 40); @@ -314,35 +343,43 @@ void CompletionTest::testEmptyFilterString() void CompletionTest::testUpdateCompletionRange() { + if (!hasWM()) { + QSKIP("No window manager", SkipAll); + } + m_doc->setText("ab bb cc\ndd"); KateCompletionModel *model = m_view->completionWidget()->model(); CodeCompletionTestModel* testModel = new UpdateCompletionRangeModel(m_view, "ab ab"); - m_view->setCursorPosition(Cursor(0, 3)); + m_view->setCursorPosition(KTextEditor::Cursor(0, 3)); invokeCompletionBox(m_view); KTextEditor::MovingRange *movingRange = m_view->completionWidget()->completionRange(testModel); QVERIFY(movingRange); QCOMPARE(countItems(model), 40); - QCOMPARE(Range(movingRange->toRange()), Range(Cursor(0, 3), Cursor(0, 3))); + QCOMPARE(KTextEditor::Range(movingRange->toRange()), KTextEditor::Range(KTextEditor::Cursor(0, 3), KTextEditor::Cursor(0, 3))); m_view->insertText("ab"); QTest::qWait(1000); // process events movingRange = m_view->completionWidget()->completionRange(testModel); QVERIFY(movingRange); - QCOMPARE(Range(movingRange->toRange()), Range(Cursor(0, 0), Cursor(0, 5))); + QCOMPARE(KTextEditor::Range(movingRange->toRange()), KTextEditor::Range(KTextEditor::Cursor(0, 0), KTextEditor::Cursor(0, 5))); QCOMPARE(countItems(model), 40); } void CompletionTest::testCustomStartCompl() { + if (!hasWM()) { + QSKIP("No window manager", SkipAll); + } + KateCompletionModel *model = m_view->completionWidget()->model(); m_view->completionWidget()->setAutomaticInvocationDelay(1); new StartCompletionModel(m_view, "aa"); - m_view->setCursorPosition(Cursor(0, 0)); + m_view->setCursorPosition(KTextEditor::Cursor(0, 0)); m_view->insertText("%"); QTest::qWait(1000); @@ -369,7 +406,7 @@ void CompletionTest::testKateCompletionModel() void CompletionTest::testAbortImmideatelyAfterStart() { new ImmideatelyAbortCompletionModel(m_view); - m_view->setCursorPosition(Cursor(0, 3)); + m_view->setCursorPosition(KTextEditor::Cursor(0, 3)); QVERIFY(!m_view->completionWidget()->isCompletionActive()); emit m_view->userInvokedCompletion(); QVERIFY(!m_view->completionWidget()->isCompletionActive()); @@ -377,6 +414,10 @@ void CompletionTest::testAbortImmideatelyAfterStart() void CompletionTest::testJumpToListBottomAfterCursorUpWhileAtTop() { + if (!hasWM()) { + QSKIP("No window manager", SkipAll); + } + new CodeCompletionTestModel(m_view, "aa"); invokeCompletionBox(m_view); @@ -488,6 +529,10 @@ void CompletionTest::testAbbrevAndContainsMatching() void CompletionTest::benchCompletionModel() { + if (!hasWM()) { + QSKIP("No window manager", SkipAll); + } + const QString text("abcdefg abcdef"); m_doc->setText(text); CodeCompletionTestModel* testModel1 = new CodeCompletionTestModel(m_view, "abcdefg"); @@ -500,7 +545,7 @@ void CompletionTest::benchCompletionModel() testModel4->setRowCount(5000); QBENCHMARK_ONCE { for(int i = 0; i < text.size(); ++i) { - m_view->setCursorPosition(Cursor(0, i)); + m_view->setCursorPosition(KTextEditor::Cursor(0, i)); invokeCompletionBox(m_view); } }