@ -31,6 +31,7 @@
# include "gtest/gtest.h"
# include "gtest/gtest.h"
# include "wallet/wallet2_api.h"
# include "wallet/wallet2_api.h"
# include "wallet/wallet2.h"
# include "include_base_utils.h"
# include "include_base_utils.h"
# include <boost/filesystem.hpp>
# include <boost/filesystem.hpp>
@ -41,6 +42,7 @@
# include <mutex>
# include <mutex>
# include <thread>
# include <thread>
# include <atomic>
# include <atomic>
# include <functional>
# include <condition_variable>
# include <condition_variable>
@ -210,6 +212,94 @@ TEST_F(WalletManagerTest, WalletManagerOpensWallet)
std : : cout < < " ** seed: " < < wallet2 - > seed ( ) < < std : : endl ;
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 )
TEST_F ( WalletManagerTest , WalletManagerStoresWallet )
{
{
@ -239,7 +329,6 @@ TEST_F(WalletManagerTest, WalletManagerMovesWallet)
}
}
TEST_F ( WalletManagerTest , WalletManagerChangesPassword )
TEST_F ( WalletManagerTest , WalletManagerChangesPassword )
{
{
Bitmonero : : Wallet * wallet1 = wmgr - > createWallet ( WALLET_NAME , WALLET_PASS , WALLET_LANG ) ;
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 )
int main ( int argc , char * * argv )
{
{