diff --git a/src/core/ArgumentParser.cpp b/src/core/ArgumentParser.cpp deleted file mode 100644 index 4ecbabed6..000000000 --- a/src/core/ArgumentParser.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (C) 2013 Florian Geyer - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 or (at your option) - * version 3 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "ArgumentParser.h" - -const QStringList ArgumentParser::ArgumentKeys = QStringList() << "password" << "config" << "filename"; - -QHash ArgumentParser::parseArguments(const QStringList& args) -{ - QHash argumentMap; - - for (int i = 1; i < args.size(); i++) { - if (args[i].startsWith("--")) { - parseOption(i, argumentMap, args); - } - else if (!args[i].startsWith("-")) { - argumentMap.insert("filename", args[i]); - } - else { - qWarning("Unknown argument \"%s\"", qPrintable(args[i])); - } - } - - return argumentMap; -} - -void ArgumentParser::parseOption(int& i, QHash& argumentMap, const QStringList& args) -{ - if (args.size() < (i + 2)) { - qWarning("No value given for option \"%s\"", qPrintable(args[i])); - return; - } - - QString argument(args[i].mid(2)); - if (ArgumentKeys.contains(argument)) { - argumentMap.insert(argument, args[i + 1]); - } - else { - qWarning("Unknown option \"%s\" with value \"%s\"", qPrintable(args[i]), qPrintable(args[i+1])); - } - i++; -} diff --git a/src/core/ArgumentParser.h b/src/core/ArgumentParser.h deleted file mode 100644 index 6e131ce9d..000000000 --- a/src/core/ArgumentParser.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2013 Florian Geyer - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 or (at your option) - * version 3 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef KEEPASSX_ARGUMENTPARSER_H -#define KEEPASSX_ARGUMENTPARSER_H - -#include "core/Global.h" - -#include -#include - -class ArgumentParser -{ -public: - static QHash parseArguments(const QStringList& args); - -private: - static void parseOption(int& i, QHash& argumentMap, const QStringList& args); - - static const QStringList ArgumentKeys; -}; - -#endif // KEEPASSX_ARGUMENTPARSER_H diff --git a/tests/TestArgumentParser.cpp b/tests/TestArgumentParser.cpp deleted file mode 100644 index 753fa0c40..000000000 --- a/tests/TestArgumentParser.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (C) 2013 Felix Geyer - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 or (at your option) - * version 3 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "TestArgumentParser.h" - -#include - -#include "tests.h" -#include "core/ArgumentParser.h" - -// TODO: test qWarning with own message handler? - -void TestArgumentParser::testNoArguments() -{ - parse(QStringList()); - - QVERIFY(argumentMap.isEmpty()); -} - -void TestArgumentParser::testMissingOptionValue() -{ - parse(QStringList() << "--foo"); - - QVERIFY(argumentMap.isEmpty()); -} - -void TestArgumentParser::testUnknownArgument() -{ - parse(QStringList() << "--foo" << "bar"); - - QVERIFY(argumentMap.isEmpty()); -} - -void TestArgumentParser::testFilename() -{ - parse(QStringList() << "--filename" << "foo"); - - QCOMPARE(argumentMap.size(), 1); - QCOMPARE(argumentMap.value("filename"), QString("foo")); -} - -void TestArgumentParser::testMultipleArguments() -{ - parse(QStringList() << "--config" << "myconfig.ini" << "--filename" << "myfilename" - << "--password" << "mypassword"); - - QCOMPARE(argumentMap.size(), 3); - QCOMPARE(argumentMap.value("config"), QString("myconfig.ini")); - QCOMPARE(argumentMap.value("filename"), QString("myfilename")); - QCOMPARE(argumentMap.value("password"), QString("mypassword")); -} - -void TestArgumentParser::testFilenameWithoutOption() -{ - parse(QStringList() << "foo"); - - QCOMPARE(argumentMap.size(), 1); - QCOMPARE(argumentMap.value("filename"), QString("foo")); -} - -void TestArgumentParser::parse(const QStringList& arguments) -{ - argumentMap = ArgumentParser::parseArguments(QStringList() << "keepassx" << arguments); -} - -QTEST_GUILESS_MAIN(TestArgumentParser) diff --git a/tests/TestArgumentParser.h b/tests/TestArgumentParser.h deleted file mode 100644 index 2f00351d3..000000000 --- a/tests/TestArgumentParser.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (C) 2013 Felix Geyer - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 or (at your option) - * version 3 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef KEEPASSX_TESTARGUMENTPARSER_H -#define KEEPASSX_TESTARGUMENTPARSER_H - -#include -#include - -class TestArgumentParser : public QObject -{ - Q_OBJECT - -private Q_SLOTS: - void testNoArguments(); - void testMissingOptionValue(); - void testUnknownArgument(); - void testFilename(); - void testMultipleArguments(); - void testFilenameWithoutOption(); - -private: - void parse(const QStringList& arguments); - - QHash argumentMap; -}; - -#endif // KEEPASSX_TESTARGUMENTPARSER_H