summaryrefslogtreecommitdiff
path: root/src/main-lib
diff options
context:
space:
mode:
authorDaniel d'Andrada <daniel.dandrada@luxoft.com>2018-08-13 14:34:03 +0200
committerRobert Griebl <robert.griebl@pelagicore.com>2018-08-21 12:57:28 +0000
commit4888f50de43dff68d1e7789028567220fe81d611 (patch)
tree0d7e3443be9f041249e89f620531f5a8f4fbd3ce /src/main-lib
parent968bbbb450b2b6a4fd9e79f3a2a0329ab654630e (diff)
downloadqtapplicationmanager-4888f50de43dff68d1e7789028567220fe81d611.tar.gz
Make DefaultConfiguration easier to test
So that you can conveniently supply command line arguments as a QStringList instead of via argc and argv, which is more verbose and error prone. Change-Id: I79fcc50ed1d5b765429272d8ca4d68a6e4f14bdf Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
Diffstat (limited to 'src/main-lib')
-rw-r--r--src/main-lib/configuration.cpp7
-rw-r--r--src/main-lib/configuration.h3
-rw-r--r--src/main-lib/defaultconfiguration.cpp4
-rw-r--r--src/main-lib/defaultconfiguration.h2
4 files changed, 11 insertions, 5 deletions
diff --git a/src/main-lib/configuration.cpp b/src/main-lib/configuration.cpp
index d71a13e1..5611f662 100644
--- a/src/main-lib/configuration.cpp
+++ b/src/main-lib/configuration.cpp
@@ -214,7 +214,12 @@ void Configuration::showParserMessage(const QString &message, MessageType type)
void Configuration::parse(QStringList *deploymentWarnings)
{
- if (!m_clp.parse(QCoreApplication::arguments())) {
+ parseWithArguments(QCoreApplication::arguments(), deploymentWarnings);
+}
+
+void Configuration::parseWithArguments(const QStringList &arguments, QStringList *deploymentWarnings)
+{
+ if (!m_clp.parse(arguments)) {
showParserMessage(m_clp.errorText() + qL1C('\n'), ErrorMessage);
exit(1);
}
diff --git a/src/main-lib/configuration.h b/src/main-lib/configuration.h
index b448371d..09e818dc 100644
--- a/src/main-lib/configuration.h
+++ b/src/main-lib/configuration.h
@@ -53,7 +53,8 @@ class Configuration
{
public:
virtual ~Configuration();
- virtual void parse(QStringList *deploymentWarnings = nullptr);
+ void parse(QStringList *deploymentWarnings = nullptr);
+ virtual void parseWithArguments(const QStringList &arguments, QStringList *deploymentWarnings = nullptr);
QVariant buildConfig() const;
protected:
diff --git a/src/main-lib/defaultconfiguration.cpp b/src/main-lib/defaultconfiguration.cpp
index 60fa0031..d551d9a0 100644
--- a/src/main-lib/defaultconfiguration.cpp
+++ b/src/main-lib/defaultconfiguration.cpp
@@ -121,9 +121,9 @@ DefaultConfiguration::~DefaultConfiguration()
}
-void DefaultConfiguration::parse(QStringList *deploymentWarnings)
+void DefaultConfiguration::parseWithArguments(const QStringList &arguments, QStringList *deploymentWarnings)
{
- Configuration::parse(deploymentWarnings);
+ Configuration::parseWithArguments(arguments, deploymentWarnings);
if (m_onlyOnePositionalArgument && (m_clp.positionalArguments().size() > 1)) {
showParserMessage(qL1S("Only one main qml file can be specified.\n"), ErrorMessage);
diff --git a/src/main-lib/defaultconfiguration.h b/src/main-lib/defaultconfiguration.h
index 2b2f4bbe..44184389 100644
--- a/src/main-lib/defaultconfiguration.h
+++ b/src/main-lib/defaultconfiguration.h
@@ -57,7 +57,7 @@ public:
bool onlyOnePositionalArgument = true);
~DefaultConfiguration() override;
- void parse(QStringList *deploymentWarnings = nullptr) override;
+ void parseWithArguments(const QStringList &arguments, QStringList *deploymentWarnings = nullptr) override;
QString mainQmlFile() const;
QString database() const;