CppEditor/CppTools: Clean up *Test* classes

* Unify class names
* Fix coding style

Change-Id: I7498192ba9e6b9fc0e97d3d4f0dbb30f1853a0c9
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
This commit is contained in:
Nikolai Kosjar
2013-12-19 01:30:49 +01:00
parent 5c8df5fa4e
commit c7f3ac4073
20 changed files with 436 additions and 382 deletions

View File

@@ -35,7 +35,7 @@
#include <QString>
#include <QTest>
using namespace Core::Internal::Tests;
using namespace Core::Tests;
static void maybeAppendSlash(QString *string)
{

View File

@@ -36,7 +36,7 @@
#include <QString>
#define QTC_DECLARE_MYTESTDATADIR(PATH) \
class MyTestDataDir : public Core::Internal::Tests::TestDataDir \
class MyTestDataDir : public Core::Tests::TestDataDir \
{ \
public: \
MyTestDataDir(const QString &testDataDirectory = QString()) \
@@ -44,7 +44,6 @@
};
namespace Core {
namespace Internal {
namespace Tests {
class CORE_EXPORT TestDataDir
@@ -61,7 +60,6 @@ private:
};
} // namespace Tests
} // namespace Internal
} // namespace Core
#endif // TESTDATADIR_H

View File

@@ -59,18 +59,18 @@ typedef QByteArray _;
* Encapsulates the whole process of setting up an editor,
* pressing ENTER and checking the result.
*/
class TestCase : public CppEditor::Internal::Tests::TestCase
class DoxygenTestCase : public CppEditor::Internal::Tests::TestCase
{
public:
TestCase(const QByteArray &input);
void run(const QByteArray &expected, int undoCount = 1);
DoxygenTestCase(const QByteArray &input);
void run(const QByteArray &expected);
private:
CppEditor::Internal::Tests::TestDocument testDocument;
};
/// The '|' in the input denotes the cursor position.
TestCase::TestCase(const QByteArray &input)
DoxygenTestCase::DoxygenTestCase(const QByteArray &input)
: testDocument("file.cpp", input, '|')
{
QVERIFY(testDocument.hasCursorMarker());
@@ -97,7 +97,7 @@ TestCase::TestCase(const QByteArray &input)
waitForRehighlightedSemanticDocument(testDocument.m_editorWidget);
}
void TestCase::run(const QByteArray &expected, int undoCount)
void DoxygenTestCase::run(const QByteArray &expected)
{
// Send 'ENTER' key press
QKeyEvent event(QEvent::KeyPress, Qt::Key_Enter, Qt::NoModifier);
@@ -106,12 +106,12 @@ void TestCase::run(const QByteArray &expected, int undoCount)
QCOMPARE(QLatin1String(result), QLatin1String(expected));
for (int i = 0; i < undoCount; ++i)
testDocument.m_editorWidget->undo();
testDocument.m_editorWidget->undo();
const QByteArray contentsAfterUndo
= testDocument.m_editorWidget->document()->toPlainText().toUtf8();
QCOMPARE(contentsAfterUndo, testDocument.m_source);
}
} // anonymous namespace
void CppEditorPlugin::test_doxygen_comments_data()
@@ -257,6 +257,6 @@ void CppEditorPlugin::test_doxygen_comments()
{
QFETCH(QByteArray, given);
QFETCH(QByteArray, expected);
TestCase data(given);
data.run(expected);
DoxygenTestCase test(given);
test.run(expected);
}

View File

@@ -45,10 +45,11 @@ using namespace CppEditor::Internal;
using namespace CppTools;
namespace {
class TestCase : public CppEditor::Internal::Tests::TestCase
class IncludeHierarchyTestCase: public CppEditor::Internal::Tests::TestCase
{
public:
TestCase(const QList<QByteArray> &sourceList)
IncludeHierarchyTestCase(const QList<QByteArray> &sourceList)
{
QStringList filePaths;
const int sourceListSize = sourceList.size();
@@ -81,7 +82,8 @@ public:
QCOMPARE(model.rowCount(model.index(1, 0)), includedByCount);
}
};
}
} // anonymous namespace
void CppEditorPlugin::test_includeHierarchyModel_simpleIncludes()
{
@@ -89,7 +91,7 @@ void CppEditorPlugin::test_includeHierarchyModel_simpleIncludes()
sourceList.append(QByteArray("#include \"file2.h\"\n"));
sourceList.append(QByteArray());
TestCase testCase(sourceList);
IncludeHierarchyTestCase testCase(sourceList);
testCase.run(1, 0);
}
@@ -99,18 +101,17 @@ void CppEditorPlugin::test_includeHierarchyModel_simpleIncludedBy()
sourceList.append(QByteArray());
sourceList.append(QByteArray("#include \"file1.h\"\n"));
TestCase testCase(sourceList);
IncludeHierarchyTestCase testCase(sourceList);
testCase.run(0, 1);
}
void CppEditorPlugin::test_includeHierarchyModel_simpleIncludesAndIncludedBy()
{
QList<QByteArray> sourceList;
QByteArray source;
sourceList.append(QByteArray("#include \"file2.h\"\n"));
sourceList.append(QByteArray());
sourceList.append(QByteArray("#include \"file1.h\"\n"));
TestCase testCase(sourceList);
IncludeHierarchyTestCase testCase(sourceList);
testCase.run(1, 1);
}

View File

@@ -59,6 +59,8 @@ using namespace CppTools;
using namespace IncludeUtils;
using namespace TextEditor;
using CppTools::Tests::TestIncludePaths;
namespace {
typedef QByteArray _;
@@ -91,8 +93,6 @@ public:
return TestDocumentPtr(new TestDocument(fileName, source, expectedSource));
}
bool changesExpected() const { return m_source != m_expectedSource; }
public:
QByteArray m_expectedSource;
};
@@ -101,37 +101,37 @@ public:
* Encapsulates the whole process of setting up an editor, getting the
* quick-fix, applying it, and checking the result.
*/
class TestCase : public CppEditor::Internal::Tests::TestCase
class QuickFixTestCase : public CppEditor::Internal::Tests::TestCase
{
public:
TestCase(const QByteArray &originalSource, const QByteArray &expectedSource,
const QStringList &includePaths = QStringList());
TestCase(const QList<TestDocumentPtr> theTestFiles,
const QStringList &includePaths = QStringList());
~TestCase();
QuickFixOperation::Ptr getFix(CppQuickFixFactory *factory, CPPEditorWidget *editorWidget,
int resultIndex = 0);
TestDocumentPtr testFileWithCursorMarker() const;
QuickFixTestCase(const QByteArray &originalSource, const QByteArray &expectedSource,
const QStringList &includePaths = QStringList());
QuickFixTestCase(const QList<TestDocumentPtr> theTestFiles,
const QStringList &includePaths = QStringList());
~QuickFixTestCase();
void run(CppQuickFixFactory *factory, int resultIndex = 0);
private:
TestDocumentPtr testFileWithCursorMarker() const;
QuickFixOperation::Ptr getFix(CppQuickFixFactory *factory, CPPEditorWidget *editorWidget,
int resultIndex = 0);
void init(const QStringList &includePaths);
private:
QList<TestDocumentPtr> testFiles;
QList<TestDocumentPtr> m_testFiles;
CppCodeStylePreferences *cppCodeStylePreferences;
QByteArray cppCodeStylePreferencesOriginalDelegateId;
CppCodeStylePreferences *m_cppCodeStylePreferences;
QByteArray m_cppCodeStylePreferencesOriginalDelegateId;
QStringList includePathsToRestore;
bool restoreIncludePaths;
QStringList m_includePathsToRestore;
bool m_restoreIncludePaths;
};
/// Apply the factory on the source and get back the resultIndex'th result or a null pointer.
QuickFixOperation::Ptr TestCase::getFix(CppQuickFixFactory *factory, CPPEditorWidget *editorWidget,
int resultIndex)
QuickFixOperation::Ptr QuickFixTestCase::getFix(CppQuickFixFactory *factory,
CPPEditorWidget *editorWidget,
int resultIndex)
{
CppQuickFixInterface qfi(new CppQuickFixAssistInterface(editorWidget, ExplicitlyInvoked));
TextEditor::QuickFixOperations results;
@@ -140,51 +140,57 @@ QuickFixOperation::Ptr TestCase::getFix(CppQuickFixFactory *factory, CPPEditorWi
}
/// The '@' in the originalSource is the position from where the quick-fix discovery is triggered.
TestCase::TestCase(const QByteArray &originalSource, const QByteArray &expectedSource,
const QStringList &includePaths)
: cppCodeStylePreferences(0), restoreIncludePaths(false)
QuickFixTestCase::QuickFixTestCase(const QByteArray &originalSource,
const QByteArray &expectedSource,
const QStringList &includePaths)
: m_cppCodeStylePreferences(0)
, m_restoreIncludePaths(false)
{
testFiles << TestDocument::create("file.cpp", originalSource, expectedSource);
m_testFiles << TestDocument::create("file.cpp", originalSource, expectedSource);
init(includePaths);
}
/// Exactly one TestFile must contain the cursor position marker '@' in the originalSource.
TestCase::TestCase(const QList<TestDocumentPtr> theTestFiles, const QStringList &includePaths)
: testFiles(theTestFiles), cppCodeStylePreferences(0), restoreIncludePaths(false)
QuickFixTestCase::QuickFixTestCase(const QList<TestDocumentPtr> theTestFiles,
const QStringList &includePaths)
: m_testFiles(theTestFiles)
, m_cppCodeStylePreferences(0)
, m_restoreIncludePaths(false)
{
init(includePaths);
}
void TestCase::init(const QStringList &includePaths)
void QuickFixTestCase::init(const QStringList &includePaths)
{
// Check if there is exactly one cursor marker
unsigned cursorMarkersCount = 0;
foreach (const TestDocumentPtr testFile, testFiles) {
foreach (const TestDocumentPtr testFile, m_testFiles) {
if (testFile->hasCursorMarker())
++cursorMarkersCount;
}
QVERIFY2(cursorMarkersCount == 1, "Exactly one cursor marker is allowed.");
// Write files to disk
foreach (TestDocumentPtr testFile, testFiles)
foreach (TestDocumentPtr testFile, m_testFiles)
testFile->writeToDisk();
// Set appropriate include paths
if (!includePaths.isEmpty()) {
restoreIncludePaths = true;
includePathsToRestore = m_modelManager->includePaths();
m_restoreIncludePaths = true;
m_includePathsToRestore = m_modelManager->includePaths();
m_modelManager->setIncludePaths(includePaths);
}
// Update Code Model
QStringList filePaths;
foreach (const TestDocumentPtr &testFile, testFiles)
foreach (const TestDocumentPtr &testFile, m_testFiles)
filePaths << testFile->filePath();
QVERIFY(parseFiles(filePaths));
// Open Files
foreach (TestDocumentPtr testFile, testFiles) {
QVERIFY(openCppEditor(testFile->filePath(), &testFile->m_editor, &testFile->m_editorWidget));
foreach (TestDocumentPtr testFile, m_testFiles) {
QVERIFY(openCppEditor(testFile->filePath(), &testFile->m_editor,
&testFile->m_editorWidget));
closeEditorAtEndOfTestCase(testFile->m_editor);
// Set cursor position
@@ -198,24 +204,24 @@ void TestCase::init(const QStringList &includePaths)
// Enforce the default cpp code style, so we are independent of config file settings.
// This is needed by e.g. the GenerateGetterSetter quick fix.
cppCodeStylePreferences = CppToolsSettings::instance()->cppCodeStyle();
QVERIFY(cppCodeStylePreferences);
cppCodeStylePreferencesOriginalDelegateId = cppCodeStylePreferences->currentDelegateId();
cppCodeStylePreferences->setCurrentDelegate("qt");
m_cppCodeStylePreferences = CppToolsSettings::instance()->cppCodeStyle();
QVERIFY(m_cppCodeStylePreferences);
m_cppCodeStylePreferencesOriginalDelegateId = m_cppCodeStylePreferences->currentDelegateId();
m_cppCodeStylePreferences->setCurrentDelegate("qt");
}
TestCase::~TestCase()
QuickFixTestCase::~QuickFixTestCase()
{
// Restore default cpp code style
if (cppCodeStylePreferences)
cppCodeStylePreferences->setCurrentDelegate(cppCodeStylePreferencesOriginalDelegateId);
if (m_cppCodeStylePreferences)
m_cppCodeStylePreferences->setCurrentDelegate(m_cppCodeStylePreferencesOriginalDelegateId);
// Restore include paths
if (restoreIncludePaths)
m_modelManager->setIncludePaths(includePathsToRestore);
if (m_restoreIncludePaths)
m_modelManager->setIncludePaths(m_includePathsToRestore);
// Remove created files from file system
foreach (const TestDocumentPtr &testDocument, testFiles)
foreach (const TestDocumentPtr &testDocument, m_testFiles)
QVERIFY(QFile::remove(testDocument->filePath()));
}
@@ -239,11 +245,11 @@ QByteArray &removeTrailingWhitespace(QByteArray &input)
return input;
}
void TestCase::run(CppQuickFixFactory *factory, int resultIndex)
void QuickFixTestCase::run(CppQuickFixFactory *factory, int resultIndex)
{
// Run the fix in the file having the cursor marker
TestDocumentPtr testFile;
foreach (const TestDocumentPtr file, testFiles) {
foreach (const TestDocumentPtr file, m_testFiles) {
if (file->hasCursorMarker())
testFile = file;
}
@@ -255,7 +261,7 @@ void TestCase::run(CppQuickFixFactory *factory, int resultIndex)
qDebug() << "Quickfix was not triggered";
// Compare all files
foreach (const TestDocumentPtr testFile, testFiles) {
foreach (const TestDocumentPtr testFile, m_testFiles) {
// Check
QByteArray result = testFile->m_editorWidget->document()->toPlainText().toUtf8();
removeTrailingWhitespace(result);
@@ -1194,8 +1200,8 @@ void CppEditorPlugin::test_quickfix()
if (expected.isEmpty())
expected = original + '\n';
TestCase data(original, expected);
data.run(factory.data());
QuickFixTestCase test(original, expected);
test.run(factory.data());
}
/// Checks: In addition to test_quickfix_GenerateGetterSetter_basicGetterWithPrefix
@@ -1248,8 +1254,8 @@ void CppEditorPlugin::test_quickfix_GenerateGetterSetter_basicGetterWithPrefixAn
testFiles << TestDocument::create("file.cpp", original, expected);
GenerateGetterSetter factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check if definition is inserted right after class for insert definition outside
@@ -1292,8 +1298,8 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_afterClass()
testFiles << TestDocument::create("file.cpp", original, expected);
InsertDefFromDecl factory;
TestCase data(testFiles);
data.run(&factory, 1);
QuickFixTestCase test(testFiles);
test.run(&factory, 1);
}
/// Check from header file: If there is a source file, insert the definition in the source file.
@@ -1326,8 +1332,8 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_basic1()
testFiles << TestDocument::create("file.cpp", original, expected);
InsertDefFromDecl factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check from header file: If there is a source file, insert the definition in the source file.
@@ -1365,8 +1371,8 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_basic2()
testFiles << TestDocument::create("file.cpp", original, expected);
InsertDefFromDecl factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check from source file: Insert in source file, not header file.
@@ -1397,8 +1403,8 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_basic3()
testFiles << TestDocument::create("file.cpp", original, expected);
InsertDefFromDecl factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check from header file: If the class is in a namespace, the added function definition
@@ -1433,8 +1439,8 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_namespace1()
testFiles << TestDocument::create("file.cpp", original, expected);
InsertDefFromDecl factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check from header file: If the class is in namespace N and the source file has a
@@ -1473,8 +1479,8 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_namespace2()
testFiles << TestDocument::create("file.cpp", original, expected);
InsertDefFromDecl factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check definition insert inside class
@@ -1492,8 +1498,8 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_insideClass()
"};\n";
InsertDefFromDecl factory;
TestCase data(original, expected);
data.run(&factory, 1);
QuickFixTestCase test(original, expected);
test.run(&factory, 1);
}
/// Check not triggering when definition exists
@@ -1507,8 +1513,8 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_notTriggeringWhenDefinitio
const QByteArray expected = original + "\n";
InsertDefFromDecl factory;
TestCase data(original, expected);
data.run(&factory, 1);
QuickFixTestCase test(original, expected);
test.run(&factory, 1);
}
/// Find right implementation file.
@@ -1559,8 +1565,8 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_findRightImplementationFil
testFiles << TestDocument::create("file2.cpp", original, expected);
InsertDefFromDecl factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Ignore generated functions declarations when looking at the surrounding
@@ -1616,8 +1622,8 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_ignoreSurroundingGenerated
testFiles << TestDocument::create("file2.cpp", original, expected);
InsertDefFromDecl factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check if whitespace is respected for operator functions
@@ -1642,8 +1648,8 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_respectWsInOperatorNames1(
"\n";
InsertDefFromDecl factory;
TestCase data(original, expected);
data.run(&factory);
QuickFixTestCase test(original, expected);
test.run(&factory);
}
/// Check if whitespace is respected for operator functions
@@ -1668,8 +1674,8 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_respectWsInOperatorNames2(
"\n";
InsertDefFromDecl factory;
TestCase data(original, expected);
data.run(&factory);
QuickFixTestCase test(original, expected);
test.run(&factory);
}
/// Check if a function like macro use is not separated by the function to insert
@@ -1712,8 +1718,8 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_macroUsesAtEndOfFile1()
testFiles << TestDocument::create("file.cpp", original, expected);
InsertDefFromDecl factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check if a function like macro use is not separated by the function to insert
@@ -1754,8 +1760,8 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_macroUsesAtEndOfFile2()
testFiles << TestDocument::create("file.cpp", original, expected);
InsertDefFromDecl factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check if insertion happens before syntactically erroneous statements at end of file.
@@ -1793,8 +1799,8 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_erroneousStatementAtEndOfF
testFiles << TestDocument::create("file.cpp", original, expected);
InsertDefFromDecl factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check: Respect rvalue references
@@ -1823,8 +1829,8 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_rvalueReference()
testFiles << TestDocument::create("file.cpp", original, expected);
InsertDefFromDecl factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
// Function for one of InsertDeclDef section cases
@@ -1861,8 +1867,8 @@ void insertToSectionDeclFromDef(const QByteArray &section, int sectionIndex)
testFiles << TestDocument::create("file.cpp", original, expected);
InsertDeclFromDef factory;
TestCase data(testFiles);
data.run(&factory, sectionIndex);
QuickFixTestCase test(testFiles);
test.run(&factory, sectionIndex);
}
/// Check from source file: Insert in header file.
@@ -1878,8 +1884,8 @@ void CppEditorPlugin::test_quickfix_InsertDeclFromDef()
QList<Include> includesForSource(const QByteArray &source)
{
const QString fileName = TestIncludePaths::directoryOfTestFile() + QLatin1String("/file.cpp");
TestCase::writeFile(fileName, source);
const QString fileName = TestIncludePaths::testFilePath();
CppTools::Tests::TestCase::writeFile(fileName, source);
using namespace CppTools::Internal;
@@ -2070,8 +2076,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_normal()
// Do not use the test factory, at least once we want to go through the "full stack".
AddIncludeForUndefinedIdentifier factory;
TestCase data(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
data.run(&factory);
QuickFixTestCase test(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
test.run(&factory);
}
/// Check: Ignore *.moc includes
@@ -2097,8 +2103,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_ignoremoc()
+ "/file.cpp", original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
TestCase data(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
data.run(&factory);
QuickFixTestCase test(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
test.run(&factory);
}
/// Check: Insert include at top for a sorted group
@@ -2124,8 +2130,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_sortingTop(
+ "/file.cpp", original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
TestCase data(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
data.run(&factory);
QuickFixTestCase test(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
test.run(&factory);
}
/// Check: Insert include in the middle for a sorted group
@@ -2151,8 +2157,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_sortingMidd
+ "/file.cpp", original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
TestCase data(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
data.run(&factory);
QuickFixTestCase test(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
test.run(&factory);
}
/// Check: Insert include at bottom for a sorted group
@@ -2178,8 +2184,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_sortingBott
+ "/file.cpp", original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
TestCase data(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
data.run(&factory);
QuickFixTestCase test(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
test.run(&factory);
}
/// Check: For an unsorted group the new include is appended
@@ -2205,8 +2211,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_appendToUns
+ "/file.cpp", original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
TestCase data(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
data.run(&factory);
QuickFixTestCase test(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
test.run(&factory);
}
/// Check: Insert a local include at front if there are only global includes
@@ -2233,8 +2239,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_firstLocalI
+ "/file.cpp", original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
TestCase data(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
data.run(&factory);
QuickFixTestCase test(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
test.run(&factory);
}
/// Check: Insert a global include at back if there are only local includes
@@ -2264,8 +2270,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_firstGlobal
+ "/file.cpp", original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("<file.h>"));
TestCase data(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
data.run(&factory);
QuickFixTestCase test(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
test.run(&factory);
}
/// Check: Prefer group with longest matching prefix
@@ -2295,8 +2301,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_preferGroup
+ "/file.cpp", original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"prefixc.h\""));
TestCase data(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
data.run(&factory);
QuickFixTestCase test(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
test.run(&factory);
}
/// Check: Create a new include group if there are only include groups with a different include dir
@@ -2323,8 +2329,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_newGroupIfO
+ "/file.cpp", original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
TestCase data(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
data.run(&factory);
QuickFixTestCase test(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
test.run(&factory);
}
/// Check: Include group with mixed include dirs, sorted --> insert properly
@@ -2352,8 +2358,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_mixedDirsSo
+ "/file.cpp", original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("<firstlib/file.h>"));
TestCase data(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
data.run(&factory);
QuickFixTestCase test(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
test.run(&factory);
}
/// Check: Include group with mixed include dirs, unsorted --> append
@@ -2381,8 +2387,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_mixedDirsUn
+ "/file.cpp", original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("<lastlib/file.h>"));
TestCase data(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
data.run(&factory);
QuickFixTestCase test(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
test.run(&factory);
}
/// Check: Include group with mixed include types
@@ -2408,8 +2414,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_mixedInclud
+ "/file.cpp", original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"z.h\""));
TestCase data(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
data.run(&factory);
QuickFixTestCase test(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
test.run(&factory);
}
/// Check: Include group with mixed include types
@@ -2435,8 +2441,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_mixedInclud
+ "/file.cpp", original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"a.h\""));
TestCase data(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
data.run(&factory);
QuickFixTestCase test(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
test.run(&factory);
}
/// Check: Include group with mixed include types
@@ -2462,8 +2468,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_mixedInclud
+ "/file.cpp", original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"lib/file.h\""));
TestCase data(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
data.run(&factory);
QuickFixTestCase test(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
test.run(&factory);
}
/// Check: Include group with mixed include types
@@ -2489,8 +2495,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_mixedInclud
+ "/file.cpp", original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("<lib/file.h>"));
TestCase data(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
data.run(&factory);
QuickFixTestCase test(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
test.run(&factory);
}
/// Check: Insert very first include
@@ -2514,8 +2520,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_noinclude()
+ "/file.cpp", original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
TestCase data(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
data.run(&factory);
QuickFixTestCase test(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
test.run(&factory);
}
/// Check: Insert very first include if there is a c++ style comment on top
@@ -2545,8 +2551,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_veryFirstIn
+ "/file.cpp", original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
TestCase data(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
data.run(&factory);
QuickFixTestCase test(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
test.run(&factory);
}
/// Check: Insert very first include if there is a c style comment on top
@@ -2580,8 +2586,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_veryFirstIn
+ "/file.cpp", original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
TestCase data(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
data.run(&factory);
QuickFixTestCase test(testFiles, QStringList(TestIncludePaths::globalIncludePath()));
test.run(&factory);
}
/// Check: If a "Qt Class" was not found by the locator, check the header files in the Qt
@@ -2606,8 +2612,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_checkQSomet
+ "/file.cpp", original, expected);
AddIncludeForUndefinedIdentifier factory;
TestCase data(testFiles, QStringList(TestIncludePaths::globalQtCoreIncludePath()));
data.run(&factory);
QuickFixTestCase test(testFiles, QStringList(CppTools::Tests::TestIncludePaths::globalQtCoreIncludePath()));
test.run(&factory);
}
/// Check: Move definition from header to cpp.
@@ -2650,8 +2656,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_MemberFuncToCpp()
testFiles << TestDocument::create("file.cpp", original, expected);
MoveFuncDefOutside factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_MemberFuncToCppInsideNS()
@@ -2697,8 +2703,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_MemberFuncToCppInsideNS()
testFiles << TestDocument::create("file.cpp", original, expected);
MoveFuncDefOutside factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check: Move definition outside class
@@ -2732,8 +2738,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_MemberFuncOutside1()
"void Foo::f4() {}\n\n";
MoveFuncDefOutside factory;
TestCase data(original, expected);
data.run(&factory);
QuickFixTestCase test(original, expected);
test.run(&factory);
}
/// Check: Move definition outside class
@@ -2775,8 +2781,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_MemberFuncOutside2()
testFiles << TestDocument::create("file.cpp", original, expected);
MoveFuncDefOutside factory;
TestCase data(testFiles);
data.run(&factory, 1);
QuickFixTestCase test(testFiles);
test.run(&factory, 1);
}
/// Check: Move definition from header to cpp (with namespace).
@@ -2819,8 +2825,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_MemberFuncToCppNS()
testFiles << TestDocument::create("file.cpp", original, expected);
MoveFuncDefOutside factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check: Move definition from header to cpp (with namespace + using).
@@ -2865,8 +2871,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_MemberFuncToCppNSUsing()
testFiles << TestDocument::create("file.cpp", original, expected);
MoveFuncDefOutside factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check: Move definition outside class with Namespace
@@ -2893,8 +2899,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_MemberFuncOutsideWithNs()
"\n}\n";
MoveFuncDefOutside factory;
TestCase data(original, expected);
data.run(&factory);
QuickFixTestCase test(original, expected);
test.run(&factory);
}
/// Check: Move free function from header to cpp.
@@ -2930,8 +2936,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_FreeFuncToCpp()
testFiles << TestDocument::create("file.cpp", original, expected);
MoveFuncDefOutside factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check: Move free function from header to cpp (with namespace).
@@ -2971,8 +2977,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_FreeFuncToCppNS()
testFiles << TestDocument::create("file.cpp", original, expected);
MoveFuncDefOutside factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check: Move Ctor with member initialization list (QTCREATORBUG-9157).
@@ -3012,8 +3018,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_CtorWithInitialization1()
testFiles << TestDocument::create("file.cpp", original, expected);
MoveFuncDefOutside factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check: Move Ctor with member initialization list (QTCREATORBUG-9462).
@@ -3058,8 +3064,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_CtorWithInitialization2()
testFiles << TestDocument::create("file.cpp", original, expected);
MoveFuncDefOutside factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check if definition is inserted right after class for move definition outside
@@ -3101,8 +3107,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_afterClass()
testFiles << TestDocument::create("file.cpp", original, expected);
MoveFuncDefOutside factory;
TestCase data(testFiles);
data.run(&factory, 1);
QuickFixTestCase test(testFiles);
test.run(&factory, 1);
}
/// Check if whitespace is respected for operator functions
@@ -3124,8 +3130,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_respectWsInOperatorNames1
"\n";
MoveFuncDefOutside factory;
TestCase data(original, expected);
data.run(&factory);
QuickFixTestCase test(original, expected);
test.run(&factory);
}
/// Check if whitespace is respected for operator functions
@@ -3147,8 +3153,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_respectWsInOperatorNames2
"\n";
MoveFuncDefOutside factory;
TestCase data(original, expected);
data.run(&factory);
QuickFixTestCase test(original, expected);
test.run(&factory);
}
/// Check: revert test_quickfix_MoveFuncDefOutside_MemberFuncToCpp()
@@ -3180,8 +3186,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_MemberFunc()
testFiles << TestDocument::create("file.cpp", original, expected);
MoveFuncDefToDecl factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check: revert test_quickfix_MoveFuncDefOutside_MemberFuncOutside()
@@ -3207,8 +3213,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_MemberFuncOutside()
"\n\n\n";
MoveFuncDefToDecl factory;
TestCase data(original, expected);
data.run(&factory);
QuickFixTestCase test(original, expected);
test.run(&factory);
}
/// Check: revert test_quickfix_MoveFuncDefOutside_MemberFuncToCppNS()
@@ -3248,8 +3254,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_MemberFuncToCppNS()
testFiles << TestDocument::create("file.cpp", original, expected);
MoveFuncDefToDecl factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check: revert test_quickfix_MoveFuncDefOutside_MemberFuncToCppNSUsing()
@@ -3293,8 +3299,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_MemberFuncToCppNSUsing()
testFiles << TestDocument::create("file.cpp", original, expected);
MoveFuncDefToDecl factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check: revert test_quickfix_MoveFuncDefOutside_MemberFuncOutsideWithNs()
@@ -3321,8 +3327,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_MemberFuncOutsideWithNs()
"};\n\n\n}\n\n";
MoveFuncDefToDecl factory;
TestCase data(original, expected);
data.run(&factory);
QuickFixTestCase test(original, expected);
test.run(&factory);
}
/// Check: revert test_quickfix_MoveFuncDefOutside_FreeFuncToCpp()
@@ -3354,8 +3360,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_FreeFuncToCpp()
testFiles << TestDocument::create("file.cpp", original, expected);
MoveFuncDefToDecl factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check: revert test_quickfix_MoveFuncDefOutside_FreeFuncToCppNS()
@@ -3393,8 +3399,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_FreeFuncToCppNS()
testFiles << TestDocument::create("file.cpp", original, expected);
MoveFuncDefToDecl factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check: revert test_quickfix_MoveFuncDefOutside_CtorWithInitialization()
@@ -3433,8 +3439,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_CtorWithInitialization()
testFiles << TestDocument::create("file.cpp", original, expected);
MoveFuncDefToDecl factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check: Definition should not be placed behind the variable. QTCREATORBUG-10303
@@ -3460,8 +3466,8 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_structWithAssignedVariable
"} bar;\n\n\n";
MoveFuncDefToDecl factory;
TestCase data(original, expected);
data.run(&factory);
QuickFixTestCase test(original, expected);
test.run(&factory);
}
void CppEditorPlugin::test_quickfix_AssignToLocalVariable_templates()
@@ -3498,8 +3504,8 @@ void CppEditorPlugin::test_quickfix_AssignToLocalVariable_templates()
testFiles << TestDocument::create("file.cpp", original, expected);
AssignToLocalVariable factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_typeDeduction_data()
@@ -3563,8 +3569,8 @@ void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_typeDeduction()
}
ExtractLiteralAsParameter factory;
TestCase data(original, expected);
data.run(&factory);
QuickFixTestCase test(original, expected);
test.run(&factory);
}
void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_freeFunction_separateFiles()
@@ -3590,8 +3596,8 @@ void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_freeFunction_separ
testFiles << TestDocument::create("file.cpp", original, expected);
ExtractLiteralAsParameter factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_memberFunction_separateFiles()
@@ -3625,8 +3631,8 @@ void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_memberFunction_sep
testFiles << TestDocument::create("file.cpp", original, expected);
ExtractLiteralAsParameter factory;
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
Q_DECLARE_METATYPE(InsertVirtualMethodsDialog::ImplementationMode)
@@ -3931,8 +3937,8 @@ void CppEditorPlugin::test_quickfix_InsertVirtualMethods()
InsertVirtualMethods factory(
new InsertVirtualMethodsDialogTest(implementationMode, insertVirtualKeyword));
TestCase data(original, expected);
data.run(&factory);
QuickFixTestCase test(original, expected);
test.run(&factory);
}
/// Check: Insert in implementation file
@@ -3978,8 +3984,8 @@ void CppEditorPlugin::test_quickfix_InsertVirtualMethods_implementationFile()
InsertVirtualMethods factory(new InsertVirtualMethodsDialogTest(
InsertVirtualMethodsDialog::ModeImplementationFile, true));
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}
/// Check: Qualified names.
@@ -4031,6 +4037,6 @@ void CppEditorPlugin::test_quickfix_InsertVirtualMethods_BaseClassInNamespace()
InsertVirtualMethods factory(new InsertVirtualMethodsDialogTest(
InsertVirtualMethodsDialog::ModeImplementationFile, true));
TestCase data(testFiles);
data.run(&factory);
QuickFixTestCase test(testFiles);
test.run(&factory);
}

View File

@@ -44,7 +44,6 @@
#include <QDir>
#include <QtTest>
/*!
Tests for Follow Symbol Under Cursor and Switch Between Function Declaration/Definition
@@ -55,6 +54,7 @@
You can find potential test code for Follow Symbol Under Cursor on the bottom of this file.
*/
using namespace CPlusPlus;
using namespace CppEditor;
using namespace CppEditor::Internal;
@@ -211,7 +211,7 @@ public:
* executing Follow Symbol Under Cursor or Switch Between Function Declaration/Definition
* and checking the result.
*/
class TestCase : public CppEditor::Internal::Tests::TestCase
class F2TestCase : public CppEditor::Internal::Tests::TestCase
{
public:
enum CppEditorAction {
@@ -219,17 +219,14 @@ public:
SwitchBetweenMethodDeclarationDefinitionAction
};
TestCase(CppEditorAction action, const QByteArray &source,
const OverrideItemList &expectedVirtualFunctionProposal = OverrideItemList());
TestCase(CppEditorAction action, const QList<TestDocumentPtr> theTestFiles,
const OverrideItemList &expectedVirtualFunctionProposal = OverrideItemList());
F2TestCase(CppEditorAction action, const QByteArray &source,
const OverrideItemList &expectedVirtualFunctionProposal = OverrideItemList());
F2TestCase(CppEditorAction action, const QList<TestDocumentPtr> theTestFiles,
const OverrideItemList &expectedVirtualFunctionProposal = OverrideItemList());
void run();
private:
TestCase(const TestCase &);
TestCase &operator=(const TestCase &);
void init();
TestDocumentPtr testFileWithInitialCursorMarker();
@@ -243,8 +240,9 @@ private:
/// Convenience function for creating a TestDocument.
/// See TestDocument.
TestCase::TestCase(CppEditorAction action, const QByteArray &source,
const OverrideItemList &expectedVirtualFunctionProposal)
F2TestCase::F2TestCase(CppEditorAction action,
const QByteArray &source,
const OverrideItemList &expectedVirtualFunctionProposal)
: m_action(action)
, m_expectedVirtualFunctionProposal(expectedVirtualFunctionProposal)
{
@@ -256,8 +254,9 @@ TestCase::TestCase(CppEditorAction action, const QByteArray &source,
/// Exactly one test document must be provided that contains '@', the initial position marker.
/// Exactly one test document must be provided that contains '$', the target position marker.
/// It can be the same document.
TestCase::TestCase(CppEditorAction action, const QList<TestDocumentPtr> theTestFiles,
const OverrideItemList &expectedVirtualFunctionProposal)
F2TestCase::F2TestCase(CppEditorAction action,
const QList<TestDocumentPtr> theTestFiles,
const OverrideItemList &expectedVirtualFunctionProposal)
: m_action(action)
, m_testFiles(theTestFiles)
, m_expectedVirtualFunctionProposal(expectedVirtualFunctionProposal)
@@ -265,7 +264,7 @@ TestCase::TestCase(CppEditorAction action, const QList<TestDocumentPtr> theTestF
init();
}
void TestCase::init()
void F2TestCase::init()
{
// Check if there are initial and target position markers
QVERIFY2(testFileWithInitialCursorMarker(),
@@ -303,7 +302,7 @@ void TestCase::init()
}
}
TestDocumentPtr TestCase::testFileWithInitialCursorMarker()
TestDocumentPtr F2TestCase::testFileWithInitialCursorMarker()
{
foreach (const TestDocumentPtr testFile, m_testFiles) {
if (testFile->hasCursorMarker())
@@ -312,7 +311,7 @@ TestDocumentPtr TestCase::testFileWithInitialCursorMarker()
return TestDocumentPtr();
}
TestDocumentPtr TestCase::testFileWithTargetCursorMarker()
TestDocumentPtr F2TestCase::testFileWithTargetCursorMarker()
{
foreach (const TestDocumentPtr testFile, m_testFiles) {
if (testFile->hasTargetCursorMarker())
@@ -321,7 +320,7 @@ TestDocumentPtr TestCase::testFileWithTargetCursorMarker()
return TestDocumentPtr();
}
void TestCase::run()
void F2TestCase::run()
{
TestDocumentPtr initialTestFile = testFileWithInitialCursorMarker();
QVERIFY(initialTestFile);
@@ -489,11 +488,11 @@ void CppEditorPlugin::test_SwitchMethodDeclarationDefinition()
QFETCH(QByteArray, header);
QFETCH(QByteArray, source);
QList<TestDocumentPtr> testFiles;
testFiles << TestDocument::create(header, "file.h");
testFiles << TestDocument::create(source, "file.cpp");
const QList<TestDocumentPtr> testFiles = QList<TestDocumentPtr>()
<< TestDocument::create(header, "file.h")
<< TestDocument::create(source, "file.cpp");
TestCase test(TestCase::SwitchBetweenMethodDeclarationDefinitionAction, testFiles);
F2TestCase test(F2TestCase::SwitchBetweenMethodDeclarationDefinitionAction, testFiles);
test.run();
}
@@ -765,8 +764,8 @@ void CppEditorPlugin::test_FollowSymbolUnderCursor_data()
);
// 3.3.10 Name hiding (par 2.), from text
// A class name (9.1) or enumeration name (7.2) can be hidden by the name of a variable, data member,
// function, or enumerator declared in the same scope.
// A class name (9.1) or enumeration name (7.2) can be hidden by the name of a variable,
// data member, function, or enumerator declared in the same scope.
QTest::newRow("funLocalVarHidesOuterClass") << _(
"struct C {};\n"
"\n"
@@ -854,7 +853,7 @@ void CppEditorPlugin::test_FollowSymbolUnderCursor_data()
void CppEditorPlugin::test_FollowSymbolUnderCursor()
{
QFETCH(QByteArray, source);
TestCase test(TestCase::FollowSymbolUnderCursorAction, source);
F2TestCase test(F2TestCase::FollowSymbolUnderCursorAction, source);
test.run();
}
@@ -883,7 +882,7 @@ void CppEditorPlugin::test_FollowSymbolUnderCursor_multipleDocuments()
{
QFETCH(QList<TestDocumentPtr>, documents);
TestCase test(TestCase::FollowSymbolUnderCursorAction, documents);
F2TestCase test(F2TestCase::FollowSymbolUnderCursorAction, documents);
test.run();
}
@@ -973,7 +972,7 @@ void CppEditorPlugin::test_FollowSymbolUnderCursor_QObject_connect()
return;
}
TestCase test(TestCase::FollowSymbolUnderCursorAction, source);
F2TestCase test(F2TestCase::FollowSymbolUnderCursorAction, source);
test.run();
}
@@ -997,7 +996,7 @@ void CppEditorPlugin::test_FollowSymbolUnderCursor_classOperator_onOperatorToken
"}\n";
if (toDeclaration)
source.replace('@', '#').replace('$', '@').replace('#', '$');
TestCase test(TestCase::FollowSymbolUnderCursorAction, source);
F2TestCase test(F2TestCase::FollowSymbolUnderCursorAction, source);
test.run();
}
@@ -1023,7 +1022,7 @@ void CppEditorPlugin::test_FollowSymbolUnderCursor_classOperator()
else
source.replace("@2", QByteArray()).replace("$2", QByteArray())
.replace("@1", "@").replace("$1", "$");
TestCase test(TestCase::FollowSymbolUnderCursorAction, source);
F2TestCase test(F2TestCase::FollowSymbolUnderCursorAction, source);
test.run();
}
@@ -1049,7 +1048,7 @@ void CppEditorPlugin::test_FollowSymbolUnderCursor_classOperator_inOp()
else
source.replace("@2", QByteArray()).replace("$2", QByteArray())
.replace("@1", "@").replace("$1", "$");
TestCase test(TestCase::FollowSymbolUnderCursorAction, source);
F2TestCase test(F2TestCase::FollowSymbolUnderCursorAction, source);
test.run();
}
@@ -1109,7 +1108,8 @@ void CppEditorPlugin::test_FollowSymbolUnderCursor_virtualFunctionCall_data()
<< OverrideItem(QLatin1String("CD1::virt"), 11)
<< OverrideItem(QLatin1String("CD2::virt"), 14));
/// Check: Virtual function call in member of class hierarchy, only possible overrides are presented.
/// Check: Virtual function call in member of class hierarchy,
/// only possible overrides are presented.
QTest::newRow("possibleOverrides2") << _(
"struct A { virtual void virt(); };\n"
"void A::virt() {}\n"
@@ -1302,7 +1302,7 @@ void CppEditorPlugin::test_FollowSymbolUnderCursor_virtualFunctionCall()
QFETCH(QByteArray, source);
QFETCH(OverrideItemList, results);
TestCase test(TestCase::FollowSymbolUnderCursorAction, source, results);
F2TestCase test(F2TestCase::FollowSymbolUnderCursorAction, source, results);
test.run();
}
@@ -1324,7 +1324,7 @@ void CppEditorPlugin::test_FollowSymbolUnderCursor_virtualFunctionCall_multipleD
<< OverrideItem(QLatin1String("A::virt"), 1)
<< OverrideItem(QLatin1String("B::virt"), 2);
TestCase test(TestCase::FollowSymbolUnderCursorAction, testFiles, finalResults);
F2TestCase test(F2TestCase::FollowSymbolUnderCursorAction, testFiles, finalResults);
test.run();
}

View File

@@ -53,37 +53,39 @@ using namespace CppTools::Internal;
using namespace TextEditor;
using namespace Core;
namespace { typedef QByteArray _; }
namespace {
typedef QByteArray _;
class CompletionTestCase : public CppTools::Tests::TestCase
{
public:
CompletionTestCase(const QByteArray &sourceText, const QByteArray &textToInsert = QByteArray())
: position(-1), editorWidget(0), textDocument(0), editor(0)
: m_position(-1), m_editorWidget(0), m_textDocument(0), m_editor(0)
{
source = sourceText;
position = source.indexOf('@');
QVERIFY(position != -1);
source[position] = ' ';
m_source = sourceText;
m_position = m_source.indexOf('@');
QVERIFY(m_position != -1);
m_source[m_position] = ' ';
// Write source to file
const QString fileName = QDir::tempPath() + QLatin1String("/file.h");
QVERIFY(writeFile(fileName, source));
QVERIFY(writeFile(fileName, m_source));
// Open in editor
editor = EditorManager::openEditor(fileName);
QVERIFY(editor);
closeEditorAtEndOfTestCase(editor);
editorWidget = qobject_cast<TextEditor::BaseTextEditorWidget *>(editor->widget());
QVERIFY(editorWidget);
m_editor = EditorManager::openEditor(fileName);
QVERIFY(m_editor);
closeEditorAtEndOfTestCase(m_editor);
m_editorWidget = qobject_cast<TextEditor::BaseTextEditorWidget *>(m_editor->widget());
QVERIFY(m_editorWidget);
textDocument = editorWidget->document();
m_textDocument = m_editorWidget->document();
// Get Document
waitForFileInGlobalSnapshot(fileName);
const Document::Ptr document = globalSnapshot().document(fileName);
snapshot.insert(document);
m_snapshot.insert(document);
if (!textToInsert.isEmpty())
insertText(textToInsert);
@@ -93,9 +95,9 @@ public:
{
QStringList completions;
CppCompletionAssistInterface *ai
= new CppCompletionAssistInterface(editorWidget->document(), position,
editorWidget->baseTextDocument()->filePath(),
ExplicitlyInvoked, snapshot,
= new CppCompletionAssistInterface(m_editorWidget->document(), m_position,
m_editorWidget->baseTextDocument()->filePath(),
ExplicitlyInvoked, m_snapshot,
QStringList(), QStringList());
CppCompletionAssistProcessor processor;
IAssistProposal *proposal = processor.perform(ai);
@@ -109,8 +111,9 @@ public:
return completions;
const int pos = proposal->basePosition();
const int length = position - pos;
const QString prefix = Convenience::textAt(QTextCursor(editorWidget->document()), pos, length);
const int length = m_position - pos;
const QString prefix = Convenience::textAt(QTextCursor(m_editorWidget->document()), pos,
length);
if (!prefix.isEmpty())
listmodel->filter(prefix);
if (listmodel->isSortable(prefix))
@@ -128,21 +131,23 @@ public:
void insertText(const QByteArray &text)
{
Utils::ChangeSet change;
change.insert(position, QLatin1String(text));
QTextCursor cursor(textDocument);
change.insert(m_position, QLatin1String(text));
QTextCursor cursor(m_textDocument);
change.apply(&cursor);
position += text.length();
m_position += text.length();
}
private:
QByteArray source;
int position;
Snapshot snapshot;
BaseTextEditorWidget *editorWidget;
QTextDocument *textDocument;
IEditor *editor;
QByteArray m_source;
int m_position;
Snapshot m_snapshot;
BaseTextEditorWidget *m_editorWidget;
QTextDocument *m_textDocument;
IEditor *m_editor;
};
} // anonymous namespace
void CppToolsPlugin::test_completion_basic_1()
{
const QByteArray source =

View File

@@ -46,8 +46,8 @@ void CppToolsPlugin::test_headersource()
QFETCH(QString, headerFileName);
bool wasHeader;
Core::Internal::Tests::TestDataDir dataDir(
_(SRCDIR "/../../../tests/cppheadersource/") + _(QTest::currentDataTag()));
Core::Tests::TestDataDir dataDir(_(SRCDIR "/../../../tests/cppheadersource/")
+ _(QTest::currentDataTag()));
const QString sourcePath = dataDir.file(sourceFileName);
const QString headerPath = dataDir.file(headerFileName);

View File

@@ -47,12 +47,11 @@
#include <QtTest>
using namespace Core;
using namespace Core::Internal::Tests;
using namespace Core::Tests;
using namespace CppTools::Internal;
using namespace ExtensionSystem;
using namespace Locator;
using namespace Locator::Internal;
using namespace Locator::Internal::Tests;
using namespace Locator::Tests;
using namespace Utils;
Q_DECLARE_METATYPE(ILocatorFilter *)
@@ -63,12 +62,12 @@ QTC_DECLARE_MYTESTDATADIR("../../../tests/cpplocators/")
inline QString _(const QByteArray &ba) { return QString::fromLatin1(ba, ba.size()); }
} // anonymous namespace
class CppLocatorFilterTest : public BasicLocatorFilterTest, public CppTools::Tests::TestCase
class CppLocatorFilterTestCase
: public BasicLocatorFilterTest
, public CppTools::Tests::TestCase
{
public:
CppLocatorFilterTest(ILocatorFilter *filter, const QString &fileName)
CppLocatorFilterTestCase(ILocatorFilter *filter, const QString &fileName)
: BasicLocatorFilterTest(filter)
, m_fileName(fileName)
{
@@ -77,18 +76,19 @@ public:
}
private:
virtual void doBeforeLocatorRun() { QVERIFY(parseFiles(m_fileName)); }
virtual void doAfterLocatorRun() { QVERIFY(garbageCollectGlobalSnapshot()); }
void doBeforeLocatorRun() { QVERIFY(parseFiles(m_fileName)); }
void doAfterLocatorRun() { QVERIFY(garbageCollectGlobalSnapshot()); }
private:
const QString m_fileName;
};
class CppCurrentDocumentFilterTest
class CppCurrentDocumentFilterTestCase
: public BasicLocatorFilterTest
, public CppTools::Tests::TestCase
{
public:
CppCurrentDocumentFilterTest(const QString &fileName)
CppCurrentDocumentFilterTestCase(const QString &fileName)
: BasicLocatorFilterTest(PluginManager::getObject<CppCurrentDocumentFilter>())
, m_editor(0)
, m_fileName(fileName)
@@ -97,7 +97,7 @@ public:
}
private:
virtual void doBeforeLocatorRun()
void doBeforeLocatorRun()
{
QVERIFY(EditorManager::documentModel()->openedDocuments().isEmpty());
QVERIFY(garbageCollectGlobalSnapshot());
@@ -108,7 +108,7 @@ private:
waitForFileInGlobalSnapshot(m_fileName);
}
virtual void doAfterLocatorRun()
void doAfterLocatorRun()
{
EditorManager::closeEditor(m_editor, /*askAboutModifiedEditors=*/ false);
QCoreApplication::processEvents();
@@ -116,10 +116,13 @@ private:
QVERIFY(garbageCollectGlobalSnapshot());
}
private:
IEditor *m_editor;
const QString m_fileName;
};
} // anonymous namespace
void CppToolsPlugin::test_cpplocatorfilters_CppLocatorFilter()
{
QFETCH(QString, testFile);
@@ -127,7 +130,7 @@ void CppToolsPlugin::test_cpplocatorfilters_CppLocatorFilter()
QFETCH(QString, searchText);
QFETCH(ResultDataList, expectedResults);
CppLocatorFilterTest test(filter, testFile);
CppLocatorFilterTestCase test(filter, testFile);
ResultDataList results = ResultData::fromFilterEntryList(test.matchesFor(searchText));
// ResultData::printFilterEntries(results);
QVERIFY(!results.isEmpty());
@@ -152,15 +155,18 @@ void CppToolsPlugin::test_cpplocatorfilters_CppLocatorFilter_data()
QTest::newRow("CppFunctionsFilter")
<< testFile
<< cppFunctionsFilter
<< QString::fromLatin1("function")
<< _("function")
<< (QList<ResultData>()
<< ResultData(_("functionDefinedInClass(bool, int)"), _("MyClass"))
<< ResultData(_("functionDefinedInClass(bool, int)"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedInClass(bool, int)"), _("<anonymous namespace>::MyClass"))
<< ResultData(_("functionDefinedInClass(bool, int)"),
_("<anonymous namespace>::MyClass"))
<< ResultData(_("functionDefinedOutSideClass(char)"), _("MyClass"))
<< ResultData(_("functionDefinedOutSideClass(char)"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedOutSideClass(char)"), _("<anonymous namespace>::MyClass"))
<< ResultData(_("functionDefinedOutSideClassAndNamespace(float)"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedOutSideClass(char)"),
_("<anonymous namespace>::MyClass"))
<< ResultData(_("functionDefinedOutSideClassAndNamespace(float)"),
_("MyNamespace::MyClass"))
<< ResultData(_("myFunction(bool, int)"), testFileShort)
<< ResultData(_("myFunction(bool, int)"), _("MyNamespace"))
<< ResultData(_("myFunction(bool, int)"), _("<anonymous namespace>"))
@@ -174,7 +180,8 @@ void CppToolsPlugin::test_cpplocatorfilters_CppLocatorFilter_data()
<< ResultData(_("MyClass()"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedInClass(bool, int)"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedOutSideClass(char)"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedOutSideClassAndNamespace(float)"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedOutSideClassAndNamespace(float)"),
_("MyNamespace::MyClass"))
<< ResultData(_("myFunction(bool, int)"), _("MyNamespace"))
);
@@ -204,7 +211,8 @@ void CppToolsPlugin::test_cpplocatorfilters_CppLocatorFilter_data()
<< (QList<ResultData>()
<< ResultData(_("<anonymous namespace>::MyClass"), testFileShort)
<< ResultData(_("<anonymous namespace>::MyClass::MyClass"), _("()"))
<< ResultData(_("<anonymous namespace>::MyClass::functionDefinedOutSideClass"), _("(char)"))
<< ResultData(_("<anonymous namespace>::MyClass::functionDefinedOutSideClass"),
_("(char)"))
<< ResultData(_("<anonymous namespace>::MyEnum"), testFileShort)
<< ResultData(_("<anonymous namespace>::myFunction"), _("(bool, int)"))
<< ResultData(_("MyClass"), testFileShort)
@@ -213,8 +221,10 @@ void CppToolsPlugin::test_cpplocatorfilters_CppLocatorFilter_data()
<< ResultData(_("MyEnum"), testFileShort)
<< ResultData(_("MyNamespace::MyClass"), testFileShort)
<< ResultData(_("MyNamespace::MyClass::MyClass"), _("()"))
<< ResultData(_("MyNamespace::MyClass::functionDefinedOutSideClass"), _("(char)"))
<< ResultData(_("MyNamespace::MyClass::functionDefinedOutSideClassAndNamespace"), _("(float)"))
<< ResultData(_("MyNamespace::MyClass::functionDefinedOutSideClass"),
_("(char)"))
<< ResultData(_("MyNamespace::MyClass::functionDefinedOutSideClassAndNamespace"),
_("(float)"))
<< ResultData(_("MyNamespace::MyEnum"), testFileShort)
<< ResultData(_("MyNamespace::myFunction"), _("(bool, int)"))
<< ResultData(_("myFunction"), _("(bool, int)"))
@@ -248,9 +258,11 @@ void CppToolsPlugin::test_cpplocatorfilters_CppCurrentDocumentFilter()
<< ResultData(_("functionDeclaredOnly()"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedInClass(bool, int)"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedOutSideClass(char)"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedOutSideClassAndNamespace(float)"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedOutSideClassAndNamespace(float)"),
_("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedOutSideClass(char)"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedOutSideClassAndNamespace(float)"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedOutSideClassAndNamespace(float)"),
_("MyNamespace::MyClass"))
<< ResultData(_("int myVariable"), _("<anonymous namespace>"))
<< ResultData(_("myFunction(bool, int)"), _("<anonymous namespace>"))
<< ResultData(_("MyEnum"), _("<anonymous namespace>"))
@@ -265,7 +277,7 @@ void CppToolsPlugin::test_cpplocatorfilters_CppCurrentDocumentFilter()
<< ResultData(_("main()"), _(""))
;
CppCurrentDocumentFilterTest test(testFile);
CppCurrentDocumentFilterTestCase test(testFile);
ResultDataList results = ResultData::fromFilterEntryList(test.matchesFor());
// ResultData::printFilterEntries(results);
QVERIFY(!results.isEmpty());

View File

@@ -63,7 +63,7 @@ namespace {
inline QString _(const QByteArray &ba) { return QString::fromLatin1(ba, ba.size()); }
class MyTestDataDir : public Core::Internal::Tests::TestDataDir
class MyTestDataDir : public Core::Tests::TestDataDir
{
public:
MyTestDataDir(const QString &dir)

View File

@@ -49,11 +49,14 @@ using namespace CppTools;
using namespace CppTools::Internal;
using Utils::ChangeSet;
typedef Utils::ChangeSet::Range Range;
Q_DECLARE_METATYPE(Overview)
static QString stripCursor(const QString &source)
namespace {
typedef Utils::ChangeSet::Range Range;
QString stripCursor(const QString &source)
{
QString copy(source);
const int pos = copy.indexOf(QLatin1Char('@'));
@@ -64,19 +67,10 @@ static QString stripCursor(const QString &source)
return copy;
}
class TestEnvironment : public CppTools::Tests::TestCase
class PointerDeclarationFormatterTestCase : public CppTools::Tests::TestCase
{
public:
QByteArray source;
Snapshot snapshot;
CppRefactoringFilePtr cppRefactoringFile;
TextEditor::BaseTextEditorWidget *editor;
Document::Ptr document;
QTextDocument *textDocument;
TranslationUnit *translationUnit;
Environment env;
TestEnvironment(const QByteArray &source, Document::ParseMode parseMode)
PointerDeclarationFormatterTestCase(const QByteArray &source, Document::ParseMode parseMode)
{
// Find cursor position and remove cursor marker '@'
int cursorPosition = 0;
@@ -89,29 +83,29 @@ public:
// Write source to temprorary file
const QString filePath = QDir::tempPath() + QLatin1String("/file.h");
document = Document::create(filePath);
QVERIFY(writeFile(document->fileName(), sourceWithoutCursorMarker.toLatin1()));
m_document = Document::create(filePath);
QVERIFY(writeFile(m_document->fileName(), sourceWithoutCursorMarker.toLatin1()));
// Preprocess source
Preprocessor preprocess(0, &env);
Preprocessor preprocess(0, &m_env);
const QByteArray preprocessedSource = preprocess.run(filePath, sourceWithoutCursorMarker);
document->setUtf8Source(preprocessedSource);
document->parse(parseMode);
document->check();
translationUnit = document->translationUnit();
snapshot.insert(document);
editor = new TextEditor::PlainTextEditorWidget(0);
m_document->setUtf8Source(preprocessedSource);
m_document->parse(parseMode);
m_document->check();
m_translationUnit = m_document->translationUnit();
m_snapshot.insert(m_document);
m_editor = new TextEditor::PlainTextEditorWidget(0);
QString error;
editor->open(&error, document->fileName(), document->fileName());
m_editor->open(&error, m_document->fileName(), m_document->fileName());
// Set cursor position
QTextCursor cursor = editor->textCursor();
QTextCursor cursor = m_editor->textCursor();
cursor.movePosition(QTextCursor::NextCharacter, QTextCursor::MoveAnchor, cursorPosition);
editor->setTextCursor(cursor);
m_editor->setTextCursor(cursor);
textDocument = editor->document();
cppRefactoringFile = CppRefactoringChanges::file(editor, document);
m_textDocument = m_editor->document();
m_cppRefactoringFile = CppRefactoringChanges::file(m_editor, m_document);
}
void applyFormatting(AST *ast, PointerDeclarationFormatter::CursorHandling cursorHandling)
@@ -122,27 +116,41 @@ public:
overview.starBindFlags = Overview::StarBindFlags(0);
// Run the formatter
PointerDeclarationFormatter formatter(cppRefactoringFile, overview, cursorHandling);
PointerDeclarationFormatter formatter(m_cppRefactoringFile, overview, cursorHandling);
ChangeSet change = formatter.format(ast); // ChangeSet may be empty.
// Apply change
QTextCursor cursor(textDocument);
QTextCursor cursor(m_textDocument);
change.apply(&cursor);
}
public:
QTextDocument *m_textDocument;
TranslationUnit *m_translationUnit;
private:
QByteArray m_source;
Snapshot m_snapshot;
CppRefactoringFilePtr m_cppRefactoringFile;
TextEditor::BaseTextEditorWidget *m_editor;
Document::Ptr m_document;
Environment m_env;
};
} // anonymous namespace
void CppToolsPlugin::test_format_pointerdeclaration_in_simpledeclarations()
{
QFETCH(QString, source);
QFETCH(QString, reformattedSource);
TestEnvironment env(source.toLatin1(), Document::ParseDeclaration);
AST *ast = env.translationUnit->ast();
PointerDeclarationFormatterTestCase test(source.toLatin1(), Document::ParseDeclaration);
AST *ast = test.m_translationUnit->ast();
QVERIFY(ast);
env.applyFormatting(ast, PointerDeclarationFormatter::RespectCursor);
test.applyFormatting(ast, PointerDeclarationFormatter::RespectCursor);
QCOMPARE(env.textDocument->toPlainText(), reformattedSource);
QCOMPARE(test.m_textDocument->toPlainText(), reformattedSource);
}
void CppToolsPlugin::test_format_pointerdeclaration_in_simpledeclarations_data()
@@ -363,13 +371,13 @@ void CppToolsPlugin::test_format_pointerdeclaration_in_controlflowstatements()
QFETCH(QString, source);
QFETCH(QString, reformattedSource);
TestEnvironment env(source.toLatin1(), Document::ParseStatement);
AST *ast = env.translationUnit->ast();
PointerDeclarationFormatterTestCase test(source.toLatin1(), Document::ParseStatement);
AST *ast = test.m_translationUnit->ast();
QVERIFY(ast);
env.applyFormatting(ast, PointerDeclarationFormatter::RespectCursor);
test.applyFormatting(ast, PointerDeclarationFormatter::RespectCursor);
QCOMPARE(env.textDocument->toPlainText(), reformattedSource);
QCOMPARE(test.m_textDocument->toPlainText(), reformattedSource);
}
void CppToolsPlugin::test_format_pointerdeclaration_in_controlflowstatements_data()
@@ -441,13 +449,13 @@ void CppToolsPlugin::test_format_pointerdeclaration_multiple_declarators()
QFETCH(QString, source);
QFETCH(QString, reformattedSource);
TestEnvironment env(source.toLatin1(), Document::ParseDeclaration);
AST *ast = env.translationUnit->ast();
PointerDeclarationFormatterTestCase test(source.toLatin1(), Document::ParseDeclaration);
AST *ast = test.m_translationUnit->ast();
QVERIFY(ast);
env.applyFormatting(ast, PointerDeclarationFormatter::RespectCursor);
test.applyFormatting(ast, PointerDeclarationFormatter::RespectCursor);
QCOMPARE(env.textDocument->toPlainText(), reformattedSource);
QCOMPARE(test.m_textDocument->toPlainText(), reformattedSource);
}
void CppToolsPlugin::test_format_pointerdeclaration_multiple_declarators_data()
@@ -499,13 +507,13 @@ void CppToolsPlugin::test_format_pointerdeclaration_multiple_matches()
QFETCH(QString, source);
QFETCH(QString, reformattedSource);
TestEnvironment env(source.toLatin1(), Document::ParseTranlationUnit);
AST *ast = env.translationUnit->ast();
PointerDeclarationFormatterTestCase test(source.toLatin1(), Document::ParseTranlationUnit);
AST *ast = test.m_translationUnit->ast();
QVERIFY(ast);
env.applyFormatting(ast, PointerDeclarationFormatter::IgnoreCursor);
test.applyFormatting(ast, PointerDeclarationFormatter::IgnoreCursor);
QCOMPARE(env.textDocument->toPlainText(), reformattedSource);
QCOMPARE(test.m_textDocument->toPlainText(), reformattedSource);
}
void CppToolsPlugin::test_format_pointerdeclaration_multiple_matches_data()
@@ -585,13 +593,13 @@ void CppToolsPlugin::test_format_pointerdeclaration_macros()
QFETCH(QString, source);
QFETCH(QString, reformattedSource);
TestEnvironment env(source.toLatin1(), Document::ParseTranlationUnit);
AST *ast = env.translationUnit->ast();
PointerDeclarationFormatterTestCase test(source.toLatin1(), Document::ParseTranlationUnit);
AST *ast = test.m_translationUnit->ast();
QVERIFY(ast);
env.applyFormatting(ast, PointerDeclarationFormatter::RespectCursor);
test.applyFormatting(ast, PointerDeclarationFormatter::RespectCursor);
QCOMPARE(env.textDocument->toPlainText(), reformattedSource);
QCOMPARE(test.m_textDocument->toPlainText(), reformattedSource);
}
void CppToolsPlugin::test_format_pointerdeclaration_macros_data()

View File

@@ -32,7 +32,8 @@
#include <QDir>
using namespace CppTools;
namespace CppTools {
namespace Tests {
QString TestIncludePaths::includeBaseDirectory()
{
@@ -54,3 +55,11 @@ QString TestIncludePaths::directoryOfTestFile()
{
return QDir::cleanPath(includeBaseDirectory() + QLatin1String("/local"));
}
QString TestIncludePaths::testFilePath(const QString &fileName)
{
return Tests::TestIncludePaths::directoryOfTestFile() + QLatin1Char('/') + fileName;
}
} // namespace Tests
} // namespace CppTools

View File

@@ -34,20 +34,26 @@
#include "cpptools_global.h"
#include <QtGlobal>
#include <QString>
QT_FORWARD_DECLARE_CLASS(QString)
namespace CppTools {
namespace Tests {
class CPPTOOLS_EXPORT TestIncludePaths
{
Q_DISABLE_COPY(TestIncludePaths)
public:
static QString includeBaseDirectory();
static QString globalQtCoreIncludePath();
static QString globalIncludePath();
static QString directoryOfTestFile();
static QString testFilePath(const QString &fileName = QLatin1String("file.cpp"));
};
} // namespace Tests
} // namespace CppTools
#endif // CPPPREPROCESSERTESTHELPER_H

View File

@@ -43,6 +43,7 @@
using namespace CPlusPlus;
using namespace CppTools;
using namespace CppTools::Tests;
using namespace CppTools::Internal;
typedef Document::Include Include;
@@ -58,12 +59,11 @@ public:
Document::Ptr run(const QByteArray &source)
{
const QString fileName = TestIncludePaths::directoryOfTestFile()
+ QLatin1String("/file.cpp");
const QString fileName = TestIncludePaths::testFilePath();
if (QFileInfo(fileName).exists())
return Document::Ptr(); // Test file was not removed.
CppTools::Tests::TestCase::writeFile(fileName, source);
TestCase::writeFile(fileName, source);
CppPreprocessor pp((QPointer<CppModelManager>(m_cmm)));
pp.setIncludePaths(QStringList(TestIncludePaths::directoryOfTestFile()));
@@ -107,7 +107,7 @@ void CppToolsPlugin::test_cpppreprocessor_includes()
QVERIFY(resolvedIncludes.at(0).type() == Client::IncludeLocal);
QCOMPARE(resolvedIncludes.at(0).unresolvedFileName(), QLatin1String("header.h"));
const QString expectedResolvedFileName
= TestIncludePaths::directoryOfTestFile() + QLatin1String("/header.h");
= TestIncludePaths::testFilePath(QLatin1String("header.h"));
QCOMPARE(resolvedIncludes.at(0).resolvedFileName(), expectedResolvedFileName);
const QList<Document::Include> unresolvedIncludes = document->unresolvedIncludes();

View File

@@ -46,6 +46,8 @@ namespace {
QTC_DECLARE_MYTESTDATADIR("../../../tests/cppsymbolsearcher/")
inline QString _(const QByteArray &ba) { return QString::fromLatin1(ba, ba.size()); }
class ResultData
{
public:
@@ -78,17 +80,18 @@ public:
}
}
public:
QString m_symbolName;
QString m_scope;
};
typedef ResultData::ResultDataList ResultDataList;
class SymbolSearcherTest : public CppTools::Tests::TestCase
class SymbolSearcherTestCase : public CppTools::Tests::TestCase
{
public:
/// Takes no ownership of indexingSupportToUse
SymbolSearcherTest(const QString &testFile, CppIndexingSupport *indexingSupportToUse)
SymbolSearcherTestCase(const QString &testFile, CppIndexingSupport *indexingSupportToUse)
: m_indexingSupportToUse(indexingSupportToUse)
, m_testFile(testFile)
{
@@ -101,8 +104,8 @@ public:
ResultDataList run(const SymbolSearcher::Parameters &searchParameters) const
{
CppIndexingSupport *indexingSupport = m_modelManager->indexingSupport();
SymbolSearcher *symbolSearcher
= indexingSupport->createSymbolSearcher(searchParameters, QSet<QString>() << m_testFile);
SymbolSearcher *symbolSearcher = indexingSupport->createSymbolSearcher(searchParameters,
QSet<QString>() << m_testFile);
QFuture<Find::SearchResultItem> search
= QtConcurrent::run(&SymbolSearcher::runSearch, symbolSearcher);
search.waitForFinished();
@@ -110,7 +113,7 @@ public:
return results;
}
~SymbolSearcherTest()
~SymbolSearcherTestCase()
{
m_modelManager->setIndexingSupport(m_indexingSupportToRestore);
}
@@ -121,8 +124,6 @@ private:
const QString m_testFile;
};
inline QString _(const QByteArray &ba) { return QString::fromLatin1(ba, ba.size()); }
} // anonymous namespace
Q_DECLARE_METATYPE(ResultData)
@@ -148,7 +149,7 @@ void CppToolsPlugin::test_builtinsymbolsearcher()
QScopedPointer<CppIndexingSupport> builtinIndexingSupport(new BuiltinIndexingSupport);
SymbolSearcherTest test(testFile, builtinIndexingSupport.data());
SymbolSearcherTestCase test(testFile, builtinIndexingSupport.data());
const ResultDataList results = test.run(searchParameters);
QCOMPARE(results, expectedResults);
}
@@ -197,9 +198,11 @@ void CppToolsPlugin::test_builtinsymbolsearcher_data()
<< ResultData(_("functionDeclaredOnly()"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedInClass(bool, int)"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedOutSideClass(char)"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedOutSideClassAndNamespace(float)"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedOutSideClassAndNamespace(float)"),
_("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedOutSideClass(char)"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedOutSideClassAndNamespace(float)"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedOutSideClassAndNamespace(float)"),
_("MyNamespace::MyClass"))
<< ResultData(_("int myVariable"), _("<anonymous namespace>"))
<< ResultData(_("myFunction(bool, int)"), _("<anonymous namespace>"))
<< ResultData(_("MyEnum"), _("<anonymous namespace>"))
@@ -208,9 +211,12 @@ void CppToolsPlugin::test_builtinsymbolsearcher_data()
<< ResultData(_("MyClass"), _("<anonymous namespace>"))
<< ResultData(_("MyClass()"), _("<anonymous namespace>::MyClass"))
<< ResultData(_("functionDeclaredOnly()"), _("<anonymous namespace>::MyClass"))
<< ResultData(_("functionDefinedInClass(bool, int)"), _("<anonymous namespace>::MyClass"))
<< ResultData(_("functionDefinedOutSideClass(char)"), _("<anonymous namespace>::MyClass"))
<< ResultData(_("functionDefinedOutSideClass(char)"), _("<anonymous namespace>::MyClass"))
<< ResultData(_("functionDefinedInClass(bool, int)"),
_("<anonymous namespace>::MyClass"))
<< ResultData(_("functionDefinedOutSideClass(char)"),
_("<anonymous namespace>::MyClass"))
<< ResultData(_("functionDefinedOutSideClass(char)"),
_("<anonymous namespace>::MyClass"))
<< ResultData(_("main()"), _(""))
);
@@ -246,10 +252,13 @@ void CppToolsPlugin::test_builtinsymbolsearcher_data()
<< ResultData(_("myFunction(bool, int)"), _("MyNamespace"))
<< ResultData(_("functionDefinedInClass(bool, int)"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedOutSideClass(char)"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedOutSideClassAndNamespace(float)"), _("MyNamespace::MyClass"))
<< ResultData(_("functionDefinedOutSideClassAndNamespace(float)"),
_("MyNamespace::MyClass"))
<< ResultData(_("myFunction(bool, int)"), _("<anonymous namespace>"))
<< ResultData(_("functionDefinedInClass(bool, int)"), _("<anonymous namespace>::MyClass"))
<< ResultData(_("functionDefinedOutSideClass(char)"), _("<anonymous namespace>::MyClass"))
<< ResultData(_("functionDefinedInClass(bool, int)"),
_("<anonymous namespace>::MyClass"))
<< ResultData(_("functionDefinedOutSideClass(char)"),
_("<anonymous namespace>::MyClass"))
);
// Check Enums

View File

@@ -44,6 +44,8 @@ using namespace CPlusPlus;
using namespace CppTools;
using namespace CppTools::Internal;
Q_DECLARE_METATYPE(QList<Tests::TestDocument>)
namespace {
bool hierarchySorter(const TypeHierarchy &h1, const TypeHierarchy &h2)
@@ -90,14 +92,17 @@ private:
return true;
}
private:
Class *m_clazz;
};
class TestCase : public CppTools::Tests::TestCase
class TypeHierarchyBuilderTestCase : public CppTools::Tests::TestCase
{
public:
TestCase(const QList<Tests::TestDocument> &documents, const QString &expectedHierarchy)
: m_documents(documents), m_expectedHierarchy(expectedHierarchy)
TypeHierarchyBuilderTestCase(const QList<Tests::TestDocument> &documents,
const QString &expectedHierarchy)
: m_documents(documents),
m_expectedHierarchy(expectedHierarchy)
{}
void run()
@@ -135,8 +140,6 @@ private:
} // anonymous namespace
Q_DECLARE_METATYPE(QList<Tests::TestDocument>)
void CppToolsPlugin::test_typehierarchy_data()
{
QTest::addColumn<QList<Tests::TestDocument> >("documents");
@@ -189,6 +192,6 @@ void CppToolsPlugin::test_typehierarchy()
QFETCH(QList<Tests::TestDocument>, documents);
QFETCH(QString, expectedHierarchy);
TestCase testCase(documents, expectedHierarchy);
TypeHierarchyBuilderTestCase testCase(documents, expectedHierarchy);
testCase.run();
}

View File

@@ -50,7 +50,7 @@
#include <QtTest>
using namespace Core;
using namespace Core::Internal::Tests;
using namespace Core::Tests;
using namespace CppTools;
using namespace CPlusPlus;
using namespace Designer;
@@ -150,10 +150,10 @@ bool documentContainsMemberFunctionDeclaration(const Document::Ptr &document,
return DocumentContainsDeclaration()(document->globalNamespace(), declaration);
}
class GoToSlotTest : public CppTools::Tests::TestCase
class GoToSlotTestCase : public CppTools::Tests::TestCase
{
public:
GoToSlotTest(const QStringList &files)
GoToSlotTestCase(const QStringList &files)
: m_files(files)
{
QCOMPARE(files.size(), 3);
@@ -221,7 +221,7 @@ void Designer::Internal::FormEditorPlugin::test_gotoslot()
#if QT_VERSION >= 0x050000
QFETCH(QStringList, files);
GoToSlotTest test(files);
GoToSlotTestCase test(files);
test.run();
#else
QSKIP("Available only with >= Qt5", SkipSingle);

View File

@@ -40,7 +40,7 @@
#include <QTextStream>
#include <QtTest>
using namespace Locator::Internal::Tests;
using namespace Locator::Tests;
namespace {

View File

@@ -39,8 +39,7 @@
#include <QTextStream>
using namespace Locator;
using namespace Locator::Internal;
using namespace Locator::Internal::Tests;
using namespace Locator::Tests;
BasicLocatorFilterTest::BasicLocatorFilterTest(ILocatorFilter *filter) : m_filter(filter)
{

View File

@@ -37,7 +37,6 @@
#include <QTest>
namespace Locator {
namespace Internal {
namespace Tests {
/// Runs a locator filter for a search text and returns the results.
@@ -77,16 +76,15 @@ public:
typedef ResultData::ResultDataList ResultDataList;
} // namespace Tests
} // namespace Internal
} // namespace Locator
Q_DECLARE_METATYPE(Locator::Internal::Tests::ResultData)
Q_DECLARE_METATYPE(Locator::Internal::Tests::ResultDataList)
Q_DECLARE_METATYPE(Locator::Tests::ResultData)
Q_DECLARE_METATYPE(Locator::Tests::ResultDataList)
QT_BEGIN_NAMESPACE
namespace QTest {
template<> inline char *toString(const Locator::Internal::Tests::ResultData &data)
template<> inline char *toString(const Locator::Tests::ResultData &data)
{
QByteArray ba = "\"" + data.textColumn1.toUtf8() + "\", \"" + data.textColumn2.toUtf8() + "\"";
return qstrdup(ba.data());