diff --git a/src/plugins/cpptools/cpptoolsplugin.h b/src/plugins/cpptools/cpptoolsplugin.h index 203cab22d75..e3778ee5138 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 cb5e5359b75..85f6d91ab2f 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 619b3eeaeab..f5bdc07020f 100644 --- a/src/plugins/cpptools/senddocumenttracker.cpp +++ b/src/plugins/cpptools/senddocumenttracker.cpp @@ -27,6 +27,11 @@ #include +#ifdef WITH_TESTS +#include "cpptoolsplugin.h" +#include +#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 diff --git a/tests/unit/unittest/CMakeLists.txt b/tests/unit/unittest/CMakeLists.txt index 1af3285cd4f..80d2991ab33 100644 --- a/tests/unit/unittest/CMakeLists.txt +++ b/tests/unit/unittest/CMakeLists.txt @@ -207,7 +207,6 @@ extend_qtc_test(unittest fixit-test.cpp gtest-clang-printing.cpp gtest-clang-printing.h readexporteddiagnostics-test.cpp - senddocumenttracker-test.cpp skippedsourceranges-test.cpp sourcelocation-test.cpp sourcerange-test.cpp @@ -425,7 +424,6 @@ extend_qtc_test(unittest DEFINES CPPTOOLS_STATIC_LIBRARY SOURCES cppprojectfile.cpp cppprojectfile.h - senddocumenttracker.cpp senddocumenttracker.h ) extend_qtc_test(unittest diff --git a/tests/unit/unittest/senddocumenttracker-test.cpp b/tests/unit/unittest/senddocumenttracker-test.cpp deleted file mode 100644 index dbea1415531..00000000000 --- a/tests/unit/unittest/senddocumenttracker-test.cpp +++ /dev/null @@ -1,198 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#include "googletest.h" - -#include - -using CppTools::SendDocumentTracker; -using testing::PrintToString; - -namespace { - -MATCHER_P2(HasValues, lastSentRevision, lastCompletionPosition, - std::string(negation ? "isn't" : "is") - + " DocumentRevisionManagement with last sent revision "+ PrintToString(lastSentRevision) - + " , last completion position " + PrintToString(lastCompletionPosition)) -{ - return arg.lastSentRevision() == lastSentRevision - && arg.lastCompletionPosition() == lastCompletionPosition; -} - -class SendDocumentTracker : public testing::Test -{ -protected: - ::SendDocumentTracker tracker; -}; - -TEST_F(SendDocumentTracker, DefaultLastSentRevision) -{ - ASSERT_THAT(tracker, HasValues(-1, -1)); -} - -TEST_F(SendDocumentTracker, SetRevision) -{ - tracker.setLastSentRevision(46); - - ASSERT_THAT(tracker, HasValues(46, -1)); -} - -TEST_F(SendDocumentTracker, SetLastCompletionPosition) -{ - tracker.setLastCompletionPosition(33); - - ASSERT_THAT(tracker, HasValues(-1, 33)); -} - -TEST_F(SendDocumentTracker, ApplyContentChange) -{ - tracker.setLastSentRevision(46); - tracker.setLastCompletionPosition(33); - - tracker.applyContentChange(10); - - ASSERT_THAT(tracker, HasValues(46, -1)); -} - -TEST_F(SendDocumentTracker, DontSendCompletionIfPositionIsEqual) -{ - tracker.setLastCompletionPosition(33); - - ASSERT_FALSE(tracker.shouldSendCompletion(33)); -} - -TEST_F(SendDocumentTracker, SendCompletionIfPositionIsDifferent) -{ - tracker.setLastSentRevision(46); - tracker.setLastCompletionPosition(33); - - ASSERT_TRUE(tracker.shouldSendCompletion(22)); -} - -TEST_F(SendDocumentTracker, SendCompletionIfChangeIsBeforeCompletionPositionAndPositionIsEqual) -{ - tracker.setLastSentRevision(46); - tracker.setLastCompletionPosition(33); - - tracker.applyContentChange(10); - - ASSERT_TRUE(tracker.shouldSendCompletion(33)); -} - -TEST_F(SendDocumentTracker, DontSendCompletionIfChangeIsAfterCompletionPositionAndPositionIsEqual) -{ - tracker.setLastSentRevision(46); - tracker.setLastCompletionPosition(33); - - tracker.applyContentChange(40); - - ASSERT_FALSE(tracker.shouldSendCompletion(33)); -} - -TEST_F(SendDocumentTracker, DontSendRevisionIfRevisionIsEqual) -{ - tracker.setLastSentRevision(46); - - ASSERT_FALSE(tracker.shouldSendRevision(46)); -} - -TEST_F(SendDocumentTracker, SendRevisionIfRevisionIsDifferent) -{ - tracker.setLastSentRevision(46); - - ASSERT_TRUE(tracker.shouldSendRevision(21)); -} - -TEST_F(SendDocumentTracker, DontSendRevisionWithDefaults) -{ - ASSERT_FALSE(tracker.shouldSendRevisionWithCompletionPosition(21, 33)); -} - -TEST_F(SendDocumentTracker, DontSendIfRevisionIsDifferentAndCompletionPositionIsEqualAndNoContentChange) -{ - tracker.setLastSentRevision(46); - tracker.setLastCompletionPosition(33); - - ASSERT_FALSE(tracker.shouldSendRevisionWithCompletionPosition(21, 33)); -} - -TEST_F(SendDocumentTracker, DontSendIfRevisionIsDifferentAndCompletionPositionIsDifferentAndNoContentChange) -{ - tracker.setLastSentRevision(46); - tracker.setLastCompletionPosition(33); - - ASSERT_FALSE(tracker.shouldSendRevisionWithCompletionPosition(21, 44)); -} - -TEST_F(SendDocumentTracker, DontSendIfRevisionIsEqualAndCompletionPositionIsDifferentAndNoContentChange) -{ - tracker.setLastSentRevision(46); - tracker.setLastCompletionPosition(33); - - ASSERT_FALSE(tracker.shouldSendRevisionWithCompletionPosition(46,44)); -} - -TEST_F(SendDocumentTracker, SendIfChangeIsBeforeCompletionAndPositionIsEqualAndRevisionIsDifferent) -{ - tracker.setLastSentRevision(46); - tracker.setLastCompletionPosition(33); - - tracker.applyContentChange(10); - - ASSERT_TRUE(tracker.shouldSendRevisionWithCompletionPosition(45, 33)); -} - -TEST_F(SendDocumentTracker, DontSendIfChangeIsAfterCompletionPositionAndRevisionIsDifferent) -{ - tracker.setLastSentRevision(46); - tracker.setLastCompletionPosition(50); - - tracker.applyContentChange(40); - - ASSERT_FALSE(tracker.shouldSendRevisionWithCompletionPosition(45, 36)); -} - -TEST_F(SendDocumentTracker, SendIfChangeIsBeforeCompletionPositionAndRevisionIsDifferent) -{ - tracker.setLastSentRevision(46); - tracker.setLastCompletionPosition(50); - - tracker.applyContentChange(30); - - ASSERT_TRUE(tracker.shouldSendRevisionWithCompletionPosition(45, 36)); -} - -TEST_F(SendDocumentTracker, ResetChangedContentStartPositionIfLastRevisionIsSet) -{ - tracker.setLastSentRevision(46); - tracker.setLastCompletionPosition(50); - tracker.applyContentChange(30); - - tracker.setLastSentRevision(47); - - ASSERT_FALSE(tracker.shouldSendRevisionWithCompletionPosition(45, 36)); -} - -} diff --git a/tests/unit/unittest/unittest.pro b/tests/unit/unittest/unittest.pro index 6f708806f64..3a876e4a1c1 100644 --- a/tests/unit/unittest/unittest.pro +++ b/tests/unit/unittest/unittest.pro @@ -142,7 +142,6 @@ SOURCES += \ fixit-test.cpp \ gtest-clang-printing.cpp \ highlightingresultreporter-test.cpp \ - senddocumenttracker-test.cpp \ skippedsourceranges-test.cpp \ sourcelocation-test.cpp \ sourcerange-test.cpp \ diff --git a/tests/unit/unittest/unittest.qbs b/tests/unit/unittest/unittest.qbs index aaff3a41eb4..4501f54d3ba 100644 --- a/tests/unit/unittest/unittest.qbs +++ b/tests/unit/unittest/unittest.qbs @@ -277,7 +277,6 @@ Project { "gtest-clang-printing.h", "highlightingresultreporter-test.cpp", "readexporteddiagnostics-test.cpp", - "senddocumenttracker-test.cpp", "skippedsourceranges-test.cpp", "sourcelocation-test.cpp", "sourcerange-test.cpp", @@ -470,8 +469,6 @@ Project { files: [ "cppprojectfile.cpp", "cppprojectfile.h", - "senddocumenttracker.cpp", - "senddocumenttracker.h", ] }