aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2016-08-26 10:32:00 +0200
committerRiccardo Spagni <ric@spagni.net>2016-08-26 10:32:00 +0200
commit9308b4e8b9fe30f05c771da4cb887cfbc6b09d26 (patch)
tree74854a58b121b7f2a3907d0764823bbe488909df /tests
parentMerge pull request #976 (diff)
parentlibwallet_api: tests: checking for result while opening wallet (diff)
downloadmonero-9308b4e8b9fe30f05c771da4cb887cfbc6b09d26.tar.xz
Merge pull request #978
99dd572 libwallet_api: tests: checking for result while opening wallet (Ilya Kitaev) bcf7b67 libwallet_api: Wallet::amountFromString fixed (Ilya Kitaev) 32bc7b4 libwallet_api: helper method to return maximumAllowedAmount (Ilya Kitaev) cbe534d libwallet_api: tests: removed logged passwords (Ilya Kitaev) b1a5a93 libwallet_api: do not store wallet on close if status is not ok (Ilya Kitaev)
Diffstat (limited to 'tests')
-rw-r--r--tests/libwallet_api_tests/main.cpp92
1 files changed, 91 insertions, 1 deletions
diff --git a/tests/libwallet_api_tests/main.cpp b/tests/libwallet_api_tests/main.cpp
index d642534b0..b4bc86f91 100644
--- a/tests/libwallet_api_tests/main.cpp
+++ b/tests/libwallet_api_tests/main.cpp
@@ -31,6 +31,7 @@
#include "gtest/gtest.h"
#include "wallet/wallet2_api.h"
+#include "wallet/wallet2.h"
#include "include_base_utils.h"
#include <boost/filesystem.hpp>
@@ -41,6 +42,7 @@
#include <mutex>
#include <thread>
#include <atomic>
+#include <functional>
#include <condition_variable>
@@ -210,6 +212,94 @@ TEST_F(WalletManagerTest, WalletManagerOpensWallet)
std::cout << "** seed: " << wallet2->seed() << std::endl;
}
+
+TEST_F(WalletManagerTest, WalletMaxAmountAsString)
+{
+ LOG_PRINT_L3("max amount: " << Bitmonero::Wallet::displayAmount(
+ Bitmonero::Wallet::maximumAllowedAmount()));
+
+}
+
+TEST_F(WalletManagerTest, WalletAmountFromString)
+{
+ uint64_t amount = Bitmonero::Wallet::amountFromString("18446740");
+ ASSERT_TRUE(amount > 0);
+ amount = Bitmonero::Wallet::amountFromString("11000000000000");
+ ASSERT_FALSE(amount > 0);
+ amount = Bitmonero::Wallet::amountFromString("0.0");
+ ASSERT_FALSE(amount > 0);
+ amount = Bitmonero::Wallet::amountFromString("10.1");
+ ASSERT_TRUE(amount > 0);
+
+}
+
+void open_wallet_helper(Bitmonero::WalletManager *wmgr, Bitmonero::Wallet **wallet, const std::string &pass, std::mutex *mutex)
+{
+ if (mutex)
+ mutex->lock();
+ LOG_PRINT_L3("opening wallet in thread: " << std::this_thread::get_id());
+ *wallet = wmgr->openWallet(WALLET_NAME, pass, true);
+ LOG_PRINT_L3("wallet address: " << (*wallet)->address());
+ LOG_PRINT_L3("wallet status: " << (*wallet)->status());
+ LOG_PRINT_L3("closing wallet in thread: " << std::this_thread::get_id());
+ if (mutex)
+ mutex->unlock();
+}
+
+
+
+
+//TEST_F(WalletManagerTest, WalletManagerOpensWalletWithPasswordAndReopenMultiThreaded)
+//{
+// // create password protected wallet
+// std::string wallet_pass = "password";
+// std::string wrong_wallet_pass = "1111";
+// Bitmonero::Wallet * wallet1 = wmgr->createWallet(WALLET_NAME, wallet_pass, WALLET_LANG, true);
+// std::string seed1 = wallet1->seed();
+// ASSERT_TRUE(wmgr->closeWallet(wallet1));
+
+// Bitmonero::Wallet *wallet2 = nullptr;
+// Bitmonero::Wallet *wallet3 = nullptr;
+
+// std::mutex mutex;
+// std::thread thread1(open_wallet, wmgr, &wallet2, wrong_wallet_pass, &mutex);
+// thread1.join();
+// ASSERT_TRUE(wallet2->status() != Bitmonero::Wallet::Status_Ok);
+// ASSERT_TRUE(wmgr->closeWallet(wallet2));
+
+// std::thread thread2(open_wallet, wmgr, &wallet3, wallet_pass, &mutex);
+// thread2.join();
+
+// ASSERT_TRUE(wallet3->status() == Bitmonero::Wallet::Status_Ok);
+// ASSERT_TRUE(wmgr->closeWallet(wallet3));
+//}
+
+
+TEST_F(WalletManagerTest, WalletManagerOpensWalletWithPasswordAndReopen)
+{
+ // create password protected wallet
+ std::string wallet_pass = "password";
+ std::string wrong_wallet_pass = "1111";
+ Bitmonero::Wallet * wallet1 = wmgr->createWallet(WALLET_NAME, wallet_pass, WALLET_LANG, true);
+ std::string seed1 = wallet1->seed();
+ ASSERT_TRUE(wmgr->closeWallet(wallet1));
+
+ Bitmonero::Wallet *wallet2 = nullptr;
+ Bitmonero::Wallet *wallet3 = nullptr;
+ std::mutex mutex;
+
+ open_wallet_helper(wmgr, &wallet2, wrong_wallet_pass, nullptr);
+ ASSERT_TRUE(wallet2 != nullptr);
+ ASSERT_TRUE(wallet2->status() != Bitmonero::Wallet::Status_Ok);
+ ASSERT_TRUE(wmgr->closeWallet(wallet2));
+
+ open_wallet_helper(wmgr, &wallet3, wallet_pass, nullptr);
+ ASSERT_TRUE(wallet3 != nullptr);
+ ASSERT_TRUE(wallet3->status() == Bitmonero::Wallet::Status_Ok);
+ ASSERT_TRUE(wmgr->closeWallet(wallet3));
+}
+
+
TEST_F(WalletManagerTest, WalletManagerStoresWallet)
{
@@ -239,7 +329,6 @@ TEST_F(WalletManagerTest, WalletManagerMovesWallet)
}
-
TEST_F(WalletManagerTest, WalletManagerChangesPassword)
{
Bitmonero::Wallet * wallet1 = wmgr->createWallet(WALLET_NAME, WALLET_PASS, WALLET_LANG);
@@ -819,6 +908,7 @@ TEST_F(WalletTest2, WalletCallbackReceived)
}
+
int main(int argc, char** argv)
{