summaryrefslogtreecommitdiffstats
path: root/test.cpp
diff options
context:
space:
mode:
authorOrochimarufan <orochimarufan.x3@gmail.com>2013-02-24 18:22:35 +0100
committerOrochimarufan <orochimarufan.x3@gmail.com>2013-03-22 13:51:21 +0100
commitf01bf10dc511268ead551a191a6a3211c006ba44 (patch)
tree29cad9dc812def321053bf3436f38b535e644f86 /test.cpp
parentce867d91698a9414ff7238e902215e9b76d10459 (diff)
downloadMultiMC-f01bf10dc511268ead551a191a6a3211c006ba44.tar
MultiMC-f01bf10dc511268ead551a191a6a3211c006ba44.tar.gz
MultiMC-f01bf10dc511268ead551a191a6a3211c006ba44.tar.lz
MultiMC-f01bf10dc511268ead551a191a6a3211c006ba44.tar.xz
MultiMC-f01bf10dc511268ead551a191a6a3211c006ba44.zip
Implement Keyring system base
Diffstat (limited to 'test.cpp')
-rw-r--r--test.cpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/test.cpp b/test.cpp
new file mode 100644
index 00000000..26600220
--- /dev/null
+++ b/test.cpp
@@ -0,0 +1,60 @@
+
+#include <iostream>
+
+#include "keyring.h"
+#include "cmdutils.h"
+
+using namespace Util::Commandline;
+
+#include <QCoreApplication>
+
+int main(int argc, char **argv)
+{
+ QCoreApplication app(argc, argv);
+ app.setApplicationName("MMC Keyring test");
+ app.setOrganizationName("Orochimarufan");
+
+ Parser p;
+ p.addArgument("user", false);
+ p.addArgument("password", false);
+ p.addSwitch("set");
+ p.addSwitch("get");
+ p.addSwitch("list");
+ p.addOption("service", "Test");
+ p.addShortOpt("service", 's');
+
+ QHash<QString, QVariant> args;
+ try {
+ args = p.parse(app.arguments());
+ } catch (ParsingError) {
+ std::cout << "Syntax error." << std::endl;
+ return 1;
+ }
+
+ if (args["set"].toBool()) {
+ if (args["user"].isNull() || args["password"].isNull()) {
+ std::cout << "set operation needs bot user and password set" << std::endl;
+ return 1;
+ }
+
+ return Keyring::instance()->storePassword(args["service"].toString(),
+ args["user"].toString(), args["password"].toString());
+ } else if (args["get"].toBool()) {
+ if (args["user"].isNull()) {
+ std::cout << "get operation needs user set" << std::endl;
+ return 1;
+ }
+
+ std::cout << "Password: " << qPrintable(Keyring::instance()->getPassword(args["service"].toString(),
+ args["user"].toString())) << std::endl;
+ return 0;
+ } else if (args["list"].toBool()) {
+ QStringList accounts = Keyring::instance()->getStoredAccounts(args["service"].toString());
+ std::cout << "stored accounts:" << std::endl << '\t' << qPrintable(accounts.join("\n\t")) << std::endl;
+ return 0;
+ } else {
+ std::cout << "No operation given!" << std::endl;
+ std::cout << qPrintable(p.compileHelp(argv[0])) << std::endl;
+ return 1;
+ }
+}