summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/android/CMakeLists.txt1
-rw-r--r--src/plugins/android/android.qbs2
-rw-r--r--src/plugins/android/androidplugin.cpp8
-rw-r--r--src/plugins/android/androidplugin.h2
-rw-r--r--src/plugins/android/androidsdkmanager.cpp58
-rw-r--r--src/plugins/android/androidsdkmanager.h2
-rw-r--r--src/plugins/android/androidsdkmanager_test.cpp66
-rw-r--r--src/plugins/android/androidsdkmanager_test.h27
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