diff options
-rw-r--r-- | src/plugins/android/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/plugins/android/android.qbs | 2 | ||||
-rw-r--r-- | src/plugins/android/androidplugin.cpp | 8 | ||||
-rw-r--r-- | src/plugins/android/androidplugin.h | 2 | ||||
-rw-r--r-- | src/plugins/android/androidsdkmanager.cpp | 58 | ||||
-rw-r--r-- | src/plugins/android/androidsdkmanager.h | 2 | ||||
-rw-r--r-- | src/plugins/android/androidsdkmanager_test.cpp | 66 | ||||
-rw-r--r-- | src/plugins/android/androidsdkmanager_test.h | 27 |
8 files changed, 107 insertions, 59 deletions
diff --git a/src/plugins/android/CMakeLists.txt b/src/plugins/android/CMakeLists.txt index cbd588fdee..b00b254e8a 100644 --- a/src/plugins/android/CMakeLists.txt +++ b/src/plugins/android/CMakeLists.txt @@ -58,5 +58,6 @@ add_qtc_plugin(Android extend_qtc_plugin(Android CONDITION WITH_TESTS SOURCES + androidsdkmanager_test.cpp androidsdkmanager_test.h android_tst.qrc ) diff --git a/src/plugins/android/android.qbs b/src/plugins/android/android.qbs index 843e1adf6d..1d18d0b708 100644 --- a/src/plugins/android/android.qbs +++ b/src/plugins/android/android.qbs @@ -121,6 +121,8 @@ Project { condition: qtc.testsEnabled files: [ "android_tst.qrc", + "androidsdkmanager_test.cpp", + "androidsdkmanager_test.h", ] } } diff --git a/src/plugins/android/androidplugin.cpp b/src/plugins/android/androidplugin.cpp index 717238b1fc..8d4d14d398 100644 --- a/src/plugins/android/androidplugin.cpp +++ b/src/plugins/android/androidplugin.cpp @@ -17,9 +17,11 @@ #include "androidqtversion.h" #include "androidrunconfiguration.h" #include "androidruncontrol.h" +#include "androidsdkmanager_test.h" #include "androidsettingswidget.h" #include "androidtoolchain.h" #include "androidtr.h" + #include "javaeditor.h" #include "javalanguageserver.h" @@ -33,9 +35,9 @@ #include <languageclient/languageclientsettings.h> -#include <projectexplorer/devicesupport/devicemanager.h> #include <projectexplorer/buildconfiguration.h> #include <projectexplorer/deployconfiguration.h> +#include <projectexplorer/devicesupport/devicemanager.h> #include <projectexplorer/kitinformation.h> #include <projectexplorer/kitmanager.h> #include <projectexplorer/project.h> @@ -113,6 +115,10 @@ void AndroidPlugin::initialize() {Android::Constants::JLS_SETTINGS_ID, Tr::tr("Java Language Server"), [] { return new JLSSettings; }}); + +#ifdef WITH_TESTS + addTest<AndroidSdkManagerTest>(); +#endif } void AndroidPlugin::kitsRestored() diff --git a/src/plugins/android/androidplugin.h b/src/plugins/android/androidplugin.h index 394786e534..e1c3660846 100644 --- a/src/plugins/android/androidplugin.h +++ b/src/plugins/android/androidplugin.h @@ -23,8 +23,6 @@ class AndroidPlugin final : public ExtensionSystem::IPlugin #ifdef WITH_TESTS private slots: - void testAndroidSdkManagerProgressParser_data(); - void testAndroidSdkManagerProgressParser(); void testAndroidConfigAvailableNdkPlatforms_data(); void testAndroidConfigAvailableNdkPlatforms(); void testAndroidQtVersionParseBuiltWith_data(); diff --git a/src/plugins/android/androidsdkmanager.cpp b/src/plugins/android/androidsdkmanager.cpp index bdb3378c0b..4494f4837f 100644 --- a/src/plugins/android/androidsdkmanager.cpp +++ b/src/plugins/android/androidsdkmanager.cpp @@ -20,18 +20,13 @@ #include <QSettings> #include <QTextCodec> -#ifdef WITH_TESTS -# include <QTest> -# include "androidplugin.h" -#endif // WITH_TESTS - -using namespace Utils; - namespace { Q_LOGGING_CATEGORY(sdkManagerLog, "qtc.android.sdkManager", QtWarningMsg) const char commonArgsKey[] = "Common Arguments:"; } +using namespace Utils; + namespace Android { namespace Internal { @@ -652,54 +647,5 @@ void AndroidSdkManagerPrivate::clearPackages() m_allPackages.clear(); } -#ifdef WITH_TESTS -void AndroidPlugin::testAndroidSdkManagerProgressParser_data() -{ - QTest::addColumn<QString>("output"); - QTest::addColumn<int>("progress"); - QTest::addColumn<bool>("foundAssertion"); - - // Output of "sdkmanager --licenses", Android SDK Tools version 4.0 - QTest::newRow("Loading local repository") - << "Loading local repository... \r" - << -1 - << false; - - QTest::newRow("Fetch progress (single line)") - << "[============= ] 34% Fetch remote repository... \r" - << 34 - << false; - - QTest::newRow("Fetch progress (multi line)") - << "[============================= ] 73% Fetch remote repository... \r" - "[============================= ] 75% Fetch remote repository... \r" - << 75 - << false; - - QTest::newRow("Some SDK package licenses not accepted") - << "7 of 7 SDK package licenses not accepted.\n" - << -1 - << false; - - QTest::newRow("Unaccepted licenses assertion") - << "\nReview licenses that have not been accepted (y/N)? " - << -1 - << true; -} - -void AndroidPlugin::testAndroidSdkManagerProgressParser() -{ - QFETCH(QString, output); - QFETCH(int, progress); - QFETCH(bool, foundAssertion); - - bool actualFoundAssertion = false; - const int actualProgress = parseProgress(output, actualFoundAssertion); - - QCOMPARE(progress, actualProgress); - QCOMPARE(foundAssertion, actualFoundAssertion); -} -#endif // WITH_TESTS - } // namespace Internal } // namespace Android diff --git a/src/plugins/android/androidsdkmanager.h b/src/plugins/android/androidsdkmanager.h index 7fdbee362f..e98507466f 100644 --- a/src/plugins/android/androidsdkmanager.h +++ b/src/plugins/android/androidsdkmanager.h @@ -81,5 +81,7 @@ private: std::unique_ptr<AndroidSdkManagerPrivate> m_d; }; + +int parseProgress(const QString &out, bool &foundAssertion); } // namespace Internal } // namespace Android diff --git a/src/plugins/android/androidsdkmanager_test.cpp b/src/plugins/android/androidsdkmanager_test.cpp new file mode 100644 index 0000000000..9bed162cbd --- /dev/null +++ b/src/plugins/android/androidsdkmanager_test.cpp @@ -0,0 +1,66 @@ + +// Copyright (C) 2022 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "androidsdkmanager_test.h" +#include "androidsdkmanager.h" + +#include <QTest> + +namespace Android::Internal { + +AndroidSdkManagerTest::AndroidSdkManagerTest(QObject *parent) + : QObject(parent) +{} + +AndroidSdkManagerTest::~AndroidSdkManagerTest() = default; + +void AndroidSdkManagerTest::testAndroidSdkManagerProgressParser_data() +{ + QTest::addColumn<QString>("output"); + QTest::addColumn<int>("progress"); + QTest::addColumn<bool>("foundAssertion"); + + // Output of "sdkmanager --licenses", Android SDK Tools version 4.0 + QTest::newRow("Loading local repository") + << "Loading local repository... \r" + << -1 + << false; + + QTest::newRow("Fetch progress (single line)") + << "[============= ] 34% Fetch remote repository... \r" + << 34 + << false; + + QTest::newRow("Fetch progress (multi line)") + << "[============================= ] 73% Fetch remote repository... \r" + "[============================= ] 75% Fetch remote repository... \r" + << 75 + << false; + + QTest::newRow("Some SDK package licenses not accepted") + << "7 of 7 SDK package licenses not accepted.\n" + << -1 + << false; + + QTest::newRow("Unaccepted licenses assertion") + << "\nReview licenses that have not been accepted (y/N)? " + << -1 + << true; +} + +void AndroidSdkManagerTest::testAndroidSdkManagerProgressParser() +{ + QFETCH(QString, output); + QFETCH(int, progress); + QFETCH(bool, foundAssertion); + + bool actualFoundAssertion = false; + const int actualProgress = parseProgress(output, actualFoundAssertion); + + QCOMPARE(progress, actualProgress); + QCOMPARE(foundAssertion, actualFoundAssertion); +} + + +} diff --git a/src/plugins/android/androidsdkmanager_test.h b/src/plugins/android/androidsdkmanager_test.h new file mode 100644 index 0000000000..d48d0b1fde --- /dev/null +++ b/src/plugins/android/androidsdkmanager_test.h @@ -0,0 +1,27 @@ +// Copyright (C) 2022 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#pragma once + +#include <QObject> + +QT_BEGIN_NAMESPACE +class QString; +QT_END_NAMESPACE + +namespace Android { +namespace Internal { + +class AndroidSdkManagerTest : public QObject +{ + Q_OBJECT +public: + AndroidSdkManagerTest(QObject *parent = nullptr); + ~AndroidSdkManagerTest(); + +private slots: + void testAndroidSdkManagerProgressParser_data(); + void testAndroidSdkManagerProgressParser(); +}; +} // namespace Internal +} // namespace Android |