diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2021-07-21 14:38:44 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2021-07-22 08:55:46 +0000 |
commit | 1275a125822ae62489a854d4a252ef7b695683df (patch) | |
tree | 0ef7c6e2ae6b00ec859998dc82f776cc647f90d1 /src/plugins/cpptools | |
parent | da588b7cc498f8044134f1c3ce57fd095213f366 (diff) | |
download | qt-creator-1275a125822ae62489a854d4a252ef7b695683df.tar.gz |
CppTools: Move SendDocumentTracker tests into plugin
Change-Id: I1d0532b5d0e155f6d53c683d01c4a92e4bae3ce9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'src/plugins/cpptools')
-rw-r--r-- | src/plugins/cpptools/cpptoolsplugin.h | 19 | ||||
-rw-r--r-- | src/plugins/cpptools/cpptoolsunittestfiles.pri | 6 | ||||
-rw-r--r-- | src/plugins/cpptools/senddocumenttracker.cpp | 175 |
3 files changed, 196 insertions, 4 deletions
diff --git a/src/plugins/cpptools/cpptoolsplugin.h b/src/plugins/cpptools/cpptoolsplugin.h index 203cab22d7..e3778ee513 100644 --- a/src/plugins/cpptools/cpptoolsplugin.h +++ b/src/plugins/cpptools/cpptoolsplugin.h @@ -261,6 +261,25 @@ private slots: void test_projectFileCategorizer_objectiveCxx(); void test_projectFileCategorizer_mixedCAndCxx(); void test_projectFileCategorizer_ambiguousHeaderOnly(); + + void test_documentTracker_defaultLastSentRevision(); + void test_documentTracker_setRevision(); + void test_documentTracker_setLastCompletionPosition(); + void test_documentTracker_applyContentChange(); + void test_documentTracker_dontSendCompletionIfPositionIsEqual(); + void test_documentTracker_sendCompletionIfPositionIsDifferent(); + void test_documentTracker_sendCompletionIfChangeIsBeforeCompletionPositionAndPositionIsEqual(); + void test_documentTracker_dontSendCompletionIfChangeIsAfterCompletionPositionAndPositionIsEqual(); + void test_documentTracker_dontSendRevisionIfRevisionIsEqual(); + void test_documentTracker_sendRevisionIfRevisionIsDifferent(); + void test_documentTracker_dontSendRevisionWithDefaults(); + void test_documentTracker_dontSendIfRevisionIsDifferentAndCompletionPositionIsEqualAndNoContentChange(); + void test_documentTracker_dontSendIfRevisionIsDifferentAndCompletionPositionIsDifferentAndNoContentChange(); + void test_documentTracker_dontSendIfRevisionIsEqualAndCompletionPositionIsDifferentAndNoContentChange(); + void test_documentTracker_sendIfChangeIsBeforeCompletionAndPositionIsEqualAndRevisionIsDifferent(); + void test_documentTracker_dontSendIfChangeIsAfterCompletionPositionAndRevisionIsDifferent(); + void test_documentTracker_sendIfChangeIsBeforeCompletionPositionAndRevisionIsDifferent(); + void test_documentTracker_resetChangedContentStartPositionIfLastRevisionIsSet(); #endif private: diff --git a/src/plugins/cpptools/cpptoolsunittestfiles.pri b/src/plugins/cpptools/cpptoolsunittestfiles.pri index cb5e5359b7..85f6d91ab2 100644 --- a/src/plugins/cpptools/cpptoolsunittestfiles.pri +++ b/src/plugins/cpptools/cpptoolsunittestfiles.pri @@ -5,9 +5,7 @@ shared { } HEADERS += \ - $$PWD/cppprojectfile.h \ - $$PWD/senddocumenttracker.h + $$PWD/cppprojectfile.h SOURCES += \ - $$PWD/cppprojectfile.cpp \ - $$PWD/senddocumenttracker.cpp + $$PWD/cppprojectfile.cpp diff --git a/src/plugins/cpptools/senddocumenttracker.cpp b/src/plugins/cpptools/senddocumenttracker.cpp index 619b3eeaea..f5bdc07020 100644 --- a/src/plugins/cpptools/senddocumenttracker.cpp +++ b/src/plugins/cpptools/senddocumenttracker.cpp @@ -27,6 +27,11 @@ #include <algorithm> +#ifdef WITH_TESTS +#include "cpptoolsplugin.h" +#include <QtTest> +#endif + namespace CppTools { void SendDocumentTracker::setLastSentRevision(int revision) @@ -81,4 +86,174 @@ bool SendDocumentTracker::changedBeforeCompletionPosition(int newCompletionPosit return m_contentChangeStartPosition < newCompletionPosition; } +#ifdef WITH_TESTS +namespace Internal { + +void CppToolsPlugin::test_documentTracker_defaultLastSentRevision() +{ + SendDocumentTracker tracker; + + QCOMPARE(tracker.lastSentRevision(), -1); + QCOMPARE(tracker.lastCompletionPosition(), -1); +} + +void CppToolsPlugin::test_documentTracker_setRevision() +{ + SendDocumentTracker tracker; + tracker.setLastSentRevision(46); + + QCOMPARE(tracker.lastSentRevision(), 46); + QCOMPARE(tracker.lastCompletionPosition(), -1); +} + +void CppToolsPlugin::test_documentTracker_setLastCompletionPosition() +{ + SendDocumentTracker tracker; + tracker.setLastCompletionPosition(33); + + QCOMPARE(tracker.lastSentRevision(), -1); + QCOMPARE(tracker.lastCompletionPosition(), 33); +} + +void CppToolsPlugin::test_documentTracker_applyContentChange() +{ + SendDocumentTracker tracker; + tracker.setLastSentRevision(46); + tracker.setLastCompletionPosition(33); + tracker.applyContentChange(10); + + QCOMPARE(tracker.lastSentRevision(), 46); + QCOMPARE(tracker.lastCompletionPosition(), -1); +} + +void CppToolsPlugin::test_documentTracker_dontSendCompletionIfPositionIsEqual() +{ + SendDocumentTracker tracker; + tracker.setLastCompletionPosition(33); + + QVERIFY(!tracker.shouldSendCompletion(33)); +} + +void CppToolsPlugin::test_documentTracker_sendCompletionIfPositionIsDifferent() +{ + SendDocumentTracker tracker; + tracker.setLastSentRevision(46); + tracker.setLastCompletionPosition(33); + + QVERIFY(tracker.shouldSendCompletion(22)); +} + +void CppToolsPlugin::test_documentTracker_sendCompletionIfChangeIsBeforeCompletionPositionAndPositionIsEqual() +{ + SendDocumentTracker tracker; + tracker.setLastSentRevision(46); + tracker.setLastCompletionPosition(33); + tracker.applyContentChange(10); + + QVERIFY(tracker.shouldSendCompletion(33)); +} + +void CppToolsPlugin::test_documentTracker_dontSendCompletionIfChangeIsAfterCompletionPositionAndPositionIsEqual() +{ + SendDocumentTracker tracker; + tracker.setLastSentRevision(46); + tracker.setLastCompletionPosition(33); + tracker.applyContentChange(40); + + QVERIFY(!tracker.shouldSendCompletion(33)); +} + +void CppToolsPlugin::test_documentTracker_dontSendRevisionIfRevisionIsEqual() +{ + SendDocumentTracker tracker; + tracker.setLastSentRevision(46); + + QVERIFY(!tracker.shouldSendRevision(46)); +} + +void CppToolsPlugin::test_documentTracker_sendRevisionIfRevisionIsDifferent() +{ + SendDocumentTracker tracker; + tracker.setLastSentRevision(46); + + QVERIFY(tracker.shouldSendRevision(21)); +} + +void CppToolsPlugin::test_documentTracker_dontSendRevisionWithDefaults() +{ + SendDocumentTracker tracker; + QVERIFY(!tracker.shouldSendRevisionWithCompletionPosition(21, 33)); +} + +void CppToolsPlugin::test_documentTracker_dontSendIfRevisionIsDifferentAndCompletionPositionIsEqualAndNoContentChange() +{ + SendDocumentTracker tracker; + tracker.setLastSentRevision(46); + tracker.setLastCompletionPosition(33); + + QVERIFY(!tracker.shouldSendRevisionWithCompletionPosition(21, 33)); +} + +void CppToolsPlugin::test_documentTracker_dontSendIfRevisionIsDifferentAndCompletionPositionIsDifferentAndNoContentChange() +{ + SendDocumentTracker tracker; + tracker.setLastSentRevision(46); + tracker.setLastCompletionPosition(33); + + QVERIFY(!tracker.shouldSendRevisionWithCompletionPosition(21, 44)); +} + +void CppToolsPlugin::test_documentTracker_dontSendIfRevisionIsEqualAndCompletionPositionIsDifferentAndNoContentChange() +{ + SendDocumentTracker tracker; + tracker.setLastSentRevision(46); + tracker.setLastCompletionPosition(33); + + QVERIFY(!tracker.shouldSendRevisionWithCompletionPosition(46,44)); +} + +void CppToolsPlugin::test_documentTracker_sendIfChangeIsBeforeCompletionAndPositionIsEqualAndRevisionIsDifferent() +{ + SendDocumentTracker tracker; + tracker.setLastSentRevision(46); + tracker.setLastCompletionPosition(33); + tracker.applyContentChange(10); + + QVERIFY(tracker.shouldSendRevisionWithCompletionPosition(45, 33)); +} + +void CppToolsPlugin::test_documentTracker_dontSendIfChangeIsAfterCompletionPositionAndRevisionIsDifferent() +{ + SendDocumentTracker tracker; + tracker.setLastSentRevision(46); + tracker.setLastCompletionPosition(50); + tracker.applyContentChange(40); + + QVERIFY(!tracker.shouldSendRevisionWithCompletionPosition(45, 36)); +} + +void CppToolsPlugin::test_documentTracker_sendIfChangeIsBeforeCompletionPositionAndRevisionIsDifferent() +{ + SendDocumentTracker tracker; + tracker.setLastSentRevision(46); + tracker.setLastCompletionPosition(50); + tracker.applyContentChange(30); + + QVERIFY(tracker.shouldSendRevisionWithCompletionPosition(45, 36)); +} + +void CppToolsPlugin::test_documentTracker_resetChangedContentStartPositionIfLastRevisionIsSet() +{ + SendDocumentTracker tracker; + tracker.setLastSentRevision(46); + tracker.setLastCompletionPosition(50); + tracker.applyContentChange(30); + tracker.setLastSentRevision(47); + + QVERIFY(!tracker.shouldSendRevisionWithCompletionPosition(45, 36)); +} + +} // namespace Internal +#endif + } // namespace CppTools |