summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2021-07-21 14:38:44 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2021-07-22 08:55:46 +0000
commit1275a125822ae62489a854d4a252ef7b695683df (patch)
tree0ef7c6e2ae6b00ec859998dc82f776cc647f90d1 /src/plugins/cpptools
parentda588b7cc498f8044134f1c3ce57fd095213f366 (diff)
downloadqt-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.h19
-rw-r--r--src/plugins/cpptools/cpptoolsunittestfiles.pri6
-rw-r--r--src/plugins/cpptools/senddocumenttracker.cpp175
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