diff options
author | hjk <hjk121@nokiamail.com> | 2014-01-13 16:17:34 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@digia.com> | 2014-01-14 07:43:00 +0100 |
commit | 4d96fa7aba7be35800d61d8bed89d3f6c3ef9329 (patch) | |
tree | c9b102981cf81023e1488224a24758af18aa064e /src/plugins/coreplugin/locator/locator_test.cpp | |
parent | 8b854270a6c214479b2cdf302072a3e74fa854da (diff) |
Core: Merge Find and Locator into Core plugin
Change-Id: I7053310272235d854c9f409670ff52a10a7add8b
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Diffstat (limited to 'src/plugins/coreplugin/locator/locator_test.cpp')
-rw-r--r-- | src/plugins/coreplugin/locator/locator_test.cpp | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/src/plugins/coreplugin/locator/locator_test.cpp b/src/plugins/coreplugin/locator/locator_test.cpp new file mode 100644 index 00000000000..35640285ece --- /dev/null +++ b/src/plugins/coreplugin/locator/locator_test.cpp @@ -0,0 +1,173 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** 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 Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + + +#include "locatorplugin.h" + +#include "basefilefilter.h" +#include "locatorfiltertest.h" + +#include <coreplugin/testdatadir.h> +#include <utils/fileutils.h> + +#include <QDir> +#include <QTextStream> +#include <QtTest> + +using namespace Core::Tests; + +namespace { + +QTC_DECLARE_MYTESTDATADIR("../../../tests/locators/") + +class MyBaseFileFilter : public Core::BaseFileFilter +{ +public: + MyBaseFileFilter(const QStringList &theFiles) + { + files().clear(); + files().append(theFiles); + BaseFileFilter::generateFileNames(); + } + + void refresh(QFutureInterface<void> &) {} + +protected: + void updateFiles() {} +}; + +inline QString _(const QByteArray &ba) { return QString::fromLatin1(ba, ba.size()); } + +class ReferenceData +{ +public: + ReferenceData() {} + ReferenceData(const QString &searchText, const ResultDataList &results) + : searchText(searchText), results(results) {} + + QString searchText; + ResultDataList results; +}; + +} // anonymous namespace + +Q_DECLARE_METATYPE(ReferenceData) +Q_DECLARE_METATYPE(QList<ReferenceData>) + +void Core::Internal::LocatorPlugin::test_basefilefilter() +{ + QFETCH(QStringList, testFiles); + QFETCH(QList<ReferenceData>, referenceDataList); + + MyBaseFileFilter filter(testFiles); + BasicLocatorFilterTest test(&filter); + + foreach (const ReferenceData &reference, referenceDataList) { + const QList<LocatorFilterEntry> filterEntries = test.matchesFor(reference.searchText); + const ResultDataList results = ResultData::fromFilterEntryList(filterEntries); +// QTextStream(stdout) << "----" << endl; +// ResultData::printFilterEntries(results); + QCOMPARE(results, reference.results); + } +} + +void Core::Internal::LocatorPlugin::test_basefilefilter_data() +{ + QTest::addColumn<QStringList>("testFiles"); + QTest::addColumn<QList<ReferenceData> >("referenceDataList"); + + const QChar pathSeparator = QDir::separator(); + const MyTestDataDir testDir(QLatin1String("testdata_basic")); + const QStringList testFiles = QStringList() + << QDir::toNativeSeparators(testDir.file(QLatin1String("file.cpp"))) + << QDir::toNativeSeparators(testDir.file(QLatin1String("main.cpp"))) + << QDir::toNativeSeparators(testDir.file(QLatin1String("subdir/main.cpp"))); + QStringList testFilesShort; + foreach (const QString &file, testFiles) + testFilesShort << Utils::FileUtils::shortNativePath(Utils::FileName::fromString(file)); + + QTest::newRow("BaseFileFilter-EmptyInput") + << testFiles + << (QList<ReferenceData>() + << ReferenceData( + QString(), + (QList<ResultData>() + << ResultData(_("file.cpp"), testFilesShort.at(0)) + << ResultData(_("main.cpp"), testFilesShort.at(1)) + << ResultData(_("main.cpp"), testFilesShort.at(2)))) + ); + + QTest::newRow("BaseFileFilter-InputIsFileName") + << testFiles + << (QList<ReferenceData>() + << ReferenceData( + _("main.cpp"), + (QList<ResultData>() + << ResultData(_("main.cpp"), testFilesShort.at(1)) + << ResultData(_("main.cpp"), testFilesShort.at(2)))) + ); + + QTest::newRow("BaseFileFilter-InputIsFilePath") + << testFiles + << (QList<ReferenceData>() + << ReferenceData( + QString(_("subdir") + pathSeparator + _("main.cpp")), + (QList<ResultData>() + << ResultData(_("main.cpp"), testFilesShort.at(2)))) + ); + + QTest::newRow("BaseFileFilter-InputIsDirIsPath") + << testFiles + << (QList<ReferenceData>() + << ReferenceData( _("subdir"), QList<ResultData>()) + << ReferenceData( + QString(_("subdir") + pathSeparator + _("main.cpp")), + (QList<ResultData>() + << ResultData(_("main.cpp"), testFilesShort.at(2)))) + ); + + QTest::newRow("BaseFileFilter-InputIsFileNameFilePathFileName") + << testFiles + << (QList<ReferenceData>() + << ReferenceData( + _("main.cpp"), + (QList<ResultData>() + << ResultData(_("main.cpp"), testFilesShort.at(1)) + << ResultData(_("main.cpp"), testFilesShort.at(2)))) + << ReferenceData( + QString(_("subdir") + pathSeparator + _("main.cpp")), + (QList<ResultData>() + << ResultData(_("main.cpp"), testFilesShort.at(2)))) + << ReferenceData( + _("main.cpp"), + (QList<ResultData>() + << ResultData(_("main.cpp"), testFilesShort.at(1)) + << ResultData(_("main.cpp"), testFilesShort.at(2)))) + ); +} |