diff options
author | Jonathan White <support@dmapps.us> | 2019-10-21 01:23:11 +0300 |
---|---|---|
committer | Jonathan White <support@dmapps.us> | 2019-10-21 01:56:41 +0300 |
commit | 1e694271a3c6c233736301dcb2f1a7ced081fc3f (patch) | |
tree | 1fa647b44bf8427cc6d4cdd50fe38aee82b242dd /tests/TestCli.cpp | |
parent | 744b4abce801440ff4e143fb2bb416b3d7a91e07 (diff) |
Improve Database and CLI tests
Diffstat (limited to 'tests/TestCli.cpp')
-rw-r--r-- | tests/TestCli.cpp | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/tests/TestCli.cpp b/tests/TestCli.cpp index 8bc865799..586c39be1 100644 --- a/tests/TestCli.cpp +++ b/tests/TestCli.cpp @@ -144,36 +144,32 @@ void TestCli::init() m_stdinFile.reset(new TemporaryFile()); m_stdinFile->open(); - m_stdinHandle = fdopen(m_stdinFile->handle(), "r+"); - Utils::STDIN = m_stdinHandle; + Utils::STDIN = fdopen(m_stdinFile->handle(), "r+"); m_stdoutFile.reset(new TemporaryFile()); m_stdoutFile->open(); - m_stdoutHandle = fdopen(m_stdoutFile->handle(), "r+"); - Utils::STDOUT = m_stdoutHandle; + Utils::STDOUT = fdopen(m_stdoutFile->handle(), "r+"); m_stderrFile.reset(new TemporaryFile()); m_stderrFile->open(); - m_stderrHandle = fdopen(m_stderrFile->handle(), "r+"); - Utils::STDERR = m_stderrHandle; + Utils::STDERR = fdopen(m_stderrFile->handle(), "r+"); } void TestCli::cleanup() { m_dbFile.reset(); - m_dbFile2.reset(); + m_keyFileProtectedDbFile.reset(); + m_keyFileProtectedNoPasswordDbFile.reset(); + m_yubiKeyProtectedDbFile.reset(); m_stdinFile.reset(); - m_stdinHandle = stdin; Utils::STDIN = stdin; m_stdoutFile.reset(); Utils::STDOUT = stdout; - m_stdoutHandle = stdout; m_stderrFile.reset(); - m_stderrHandle = stderr; Utils::STDERR = stderr; } @@ -184,8 +180,8 @@ void TestCli::cleanupTestCase() QSharedPointer<Database> TestCli::readTestDatabase() const { Utils::Test::setNextPassword("a"); - auto db = QSharedPointer<Database>(Utils::unlockDatabase(m_dbFile->fileName(), true, "", "", m_stdoutHandle)); - m_stdoutFile->seek(ftell(m_stdoutHandle)); // re-synchronize handles + auto db = QSharedPointer<Database>(Utils::unlockDatabase(m_dbFile->fileName(), true, "", "", Utils::STDOUT)); + m_stdoutFile->seek(ftell(Utils::STDOUT)); // re-synchronize handles return db; } @@ -282,17 +278,25 @@ void TestCli::testAdd() addCmd.execute({"add", "-q", "-u", "newuser", "-g", "-L", "20", m_dbFile->fileName(), "/newentry-quiet"}); m_stdoutFile->seek(pos); m_stderrFile->seek(posErr); - QCOMPARE(m_stdoutFile->readAll(), QByteArray("")); QCOMPARE(m_stderrFile->readAll(), QByteArray("")); + QCOMPARE(m_stdoutFile->readAll(), QByteArray("")); db = readTestDatabase(); entry = db->rootGroup()->findEntryByPath("/newentry-quiet"); QVERIFY(entry); QCOMPARE(entry->password().size(), 20); + pos = m_stdoutFile->pos(); + posErr = m_stderrFile->pos(); Utils::Test::setNextPassword("a"); Utils::Test::setNextPassword("newpassword"); addCmd.execute( {"add", "-u", "newuser2", "--url", "https://example.net/", "-p", m_dbFile->fileName(), "/newuser-entry2"}); + m_stdoutFile->seek(pos); + m_stderrFile->seek(posErr); + m_stdoutFile->readLine(); // skip password prompt + m_stdoutFile->readLine(); // skip password input + QCOMPARE(m_stderrFile->readAll(), QByteArray("")); + QCOMPARE(m_stdoutFile->readAll(), QByteArray("Successfully added entry newuser-entry2.\n")); db = readTestDatabase(); entry = db->rootGroup()->findEntryByPath("/newuser-entry2"); @@ -309,8 +313,8 @@ void TestCli::testAdd() m_stdoutFile->seek(pos); m_stderrFile->seek(posErr); m_stdoutFile->readLine(); // skip password prompt - QCOMPARE(m_stdoutFile->readAll(), QByteArray("Successfully added entry newuser-entry3.\n")); QCOMPARE(m_stderrFile->readAll(), QByteArray("")); + QCOMPARE(m_stdoutFile->readAll(), QByteArray("Successfully added entry newuser-entry3.\n")); db = readTestDatabase(); entry = db->rootGroup()->findEntryByPath("/newuser-entry3"); @@ -339,8 +343,8 @@ void TestCli::testAdd() m_stdoutFile->seek(pos); m_stderrFile->seek(posErr); m_stdoutFile->readLine(); // skip password prompt - QCOMPARE(m_stdoutFile->readAll(), QByteArray("Successfully added entry newuser-entry4.\n")); QCOMPARE(m_stderrFile->readAll(), QByteArray("")); + QCOMPARE(m_stdoutFile->readAll(), QByteArray("Successfully added entry newuser-entry4.\n")); db = readTestDatabase(); entry = db->rootGroup()->findEntryByPath("/newuser-entry4"); @@ -541,7 +545,7 @@ void TestCli::testCreate() QScopedPointer<QTemporaryDir> testDir(new QTemporaryDir()); - QString databaseFilename = testDir->path() + "testCreate1.kdbx"; + QString databaseFilename = testDir->path() + "/testCreate1.kdbx"; // Password Utils::Test::setNextPassword("a"); createCmd.execute({"create", databaseFilename}); @@ -568,8 +572,8 @@ void TestCli::testCreate() QCOMPARE(m_stderrFile->readAll(), errorMessage.toUtf8()); // Testing with keyfile creation - QString databaseFilename2 = testDir->path() + "testCreate2.kdbx"; - QString keyfilePath = testDir->path() + "keyfile.txt"; + QString databaseFilename2 = testDir->path() + "/testCreate2.kdbx"; + QString keyfilePath = testDir->path() + "/keyfile.txt"; pos = m_stdoutFile->pos(); errPos = m_stderrFile->pos(); Utils::Test::setNextPassword("a"); @@ -586,7 +590,7 @@ void TestCli::testCreate() QVERIFY(db2); // Testing with existing keyfile - QString databaseFilename3 = testDir->path() + "testCreate3.kdbx"; + QString databaseFilename3 = testDir->path() + "/testCreate3.kdbx"; pos = m_stdoutFile->pos(); errPos = m_stderrFile->pos(); Utils::Test::setNextPassword("a"); |