Changeset View
Changeset View
Standalone View
Standalone View
src/wallet/test/wallet_tests.cpp
Show First 20 Lines • Show All 341 Lines • ▼ Show 20 Lines | BOOST_AUTO_TEST_CASE(ComputeTimeSmart) { | ||||
// newest entry that is no more than 300 seconds ahead of the clock time. | // newest entry that is no more than 300 seconds ahead of the clock time. | ||||
BOOST_CHECK_EQUAL(AddTx(m_wallet, 5, 50, 600), 300); | BOOST_CHECK_EQUAL(AddTx(m_wallet, 5, 50, 600), 300); | ||||
// Reset mock time for other tests. | // Reset mock time for other tests. | ||||
SetMockTime(0); | SetMockTime(0); | ||||
} | } | ||||
BOOST_AUTO_TEST_CASE(LoadReceiveRequests) { | BOOST_AUTO_TEST_CASE(LoadReceiveRequests) { | ||||
CTxDestination dest = CKeyID(); | CTxDestination dest = PKHash(); | ||||
LOCK(m_wallet.cs_wallet); | LOCK(m_wallet.cs_wallet); | ||||
m_wallet.AddDestData(dest, "misc", "val_misc"); | m_wallet.AddDestData(dest, "misc", "val_misc"); | ||||
m_wallet.AddDestData(dest, "rr0", "val_rr0"); | m_wallet.AddDestData(dest, "rr0", "val_rr0"); | ||||
m_wallet.AddDestData(dest, "rr1", "val_rr1"); | m_wallet.AddDestData(dest, "rr1", "val_rr1"); | ||||
auto values = m_wallet.GetDestValues("rr"); | auto values = m_wallet.GetDestValues("rr"); | ||||
BOOST_CHECK_EQUAL(values.size(), 2U); | BOOST_CHECK_EQUAL(values.size(), 2U); | ||||
BOOST_CHECK_EQUAL(values[0], "val_rr0"); | BOOST_CHECK_EQUAL(values[0], "val_rr0"); | ||||
▲ Show 20 Lines • Show All 69 Lines • ▼ Show 20 Lines | BOOST_FIXTURE_TEST_CASE(ListCoins, ListCoinsTestingSetup) { | ||||
// address. | // address. | ||||
std::map<CTxDestination, std::vector<COutput>> list; | std::map<CTxDestination, std::vector<COutput>> list; | ||||
{ | { | ||||
auto locked_chain = m_chain->lock(); | auto locked_chain = m_chain->lock(); | ||||
LOCK(wallet->cs_wallet); | LOCK(wallet->cs_wallet); | ||||
list = wallet->ListCoins(*locked_chain); | list = wallet->ListCoins(*locked_chain); | ||||
} | } | ||||
BOOST_CHECK_EQUAL(list.size(), 1U); | BOOST_CHECK_EQUAL(list.size(), 1U); | ||||
BOOST_CHECK_EQUAL(boost::get<CKeyID>(list.begin()->first).ToString(), | BOOST_CHECK_EQUAL(boost::get<PKHash>(list.begin()->first).ToString(), | ||||
coinbaseAddress); | coinbaseAddress); | ||||
BOOST_CHECK_EQUAL(list.begin()->second.size(), 1U); | BOOST_CHECK_EQUAL(list.begin()->second.size(), 1U); | ||||
// Check initial balance from one mature coinbase transaction. | // Check initial balance from one mature coinbase transaction. | ||||
BOOST_CHECK_EQUAL(50 * COIN, wallet->GetAvailableBalance()); | BOOST_CHECK_EQUAL(50 * COIN, wallet->GetAvailableBalance()); | ||||
// Add a transaction creating a change address, and confirm ListCoins still | // Add a transaction creating a change address, and confirm ListCoins still | ||||
// returns the coin associated with the change address underneath the | // returns the coin associated with the change address underneath the | ||||
// coinbaseKey pubkey, even though the change address has a different | // coinbaseKey pubkey, even though the change address has a different | ||||
// pubkey. | // pubkey. | ||||
AddTx(CRecipient{GetScriptForRawPubKey({}), 1 * COIN, | AddTx(CRecipient{GetScriptForRawPubKey({}), 1 * COIN, | ||||
false /* subtract fee */}); | false /* subtract fee */}); | ||||
{ | { | ||||
auto locked_chain = m_chain->lock(); | auto locked_chain = m_chain->lock(); | ||||
LOCK(wallet->cs_wallet); | LOCK(wallet->cs_wallet); | ||||
list = wallet->ListCoins(*locked_chain); | list = wallet->ListCoins(*locked_chain); | ||||
} | } | ||||
BOOST_CHECK_EQUAL(list.size(), 1U); | BOOST_CHECK_EQUAL(list.size(), 1U); | ||||
BOOST_CHECK_EQUAL(boost::get<CKeyID>(list.begin()->first).ToString(), | BOOST_CHECK_EQUAL(boost::get<PKHash>(list.begin()->first).ToString(), | ||||
coinbaseAddress); | coinbaseAddress); | ||||
BOOST_CHECK_EQUAL(list.begin()->second.size(), 2U); | BOOST_CHECK_EQUAL(list.begin()->second.size(), 2U); | ||||
// Lock both coins. Confirm number of available coins drops to 0. | // Lock both coins. Confirm number of available coins drops to 0. | ||||
{ | { | ||||
auto locked_chain = m_chain->lock(); | auto locked_chain = m_chain->lock(); | ||||
LOCK(wallet->cs_wallet); | LOCK(wallet->cs_wallet); | ||||
std::vector<COutput> available; | std::vector<COutput> available; | ||||
Show All 16 Lines | BOOST_FIXTURE_TEST_CASE(ListCoins, ListCoinsTestingSetup) { | ||||
// Confirm ListCoins still returns same result as before, despite coins | // Confirm ListCoins still returns same result as before, despite coins | ||||
// being locked. | // being locked. | ||||
{ | { | ||||
auto locked_chain = m_chain->lock(); | auto locked_chain = m_chain->lock(); | ||||
LOCK(wallet->cs_wallet); | LOCK(wallet->cs_wallet); | ||||
list = wallet->ListCoins(*locked_chain); | list = wallet->ListCoins(*locked_chain); | ||||
} | } | ||||
BOOST_CHECK_EQUAL(list.size(), 1U); | BOOST_CHECK_EQUAL(list.size(), 1U); | ||||
BOOST_CHECK_EQUAL(boost::get<CKeyID>(list.begin()->first).ToString(), | BOOST_CHECK_EQUAL(boost::get<PKHash>(list.begin()->first).ToString(), | ||||
coinbaseAddress); | coinbaseAddress); | ||||
BOOST_CHECK_EQUAL(list.begin()->second.size(), 2U); | BOOST_CHECK_EQUAL(list.begin()->second.size(), 2U); | ||||
} | } | ||||
BOOST_FIXTURE_TEST_CASE(wallet_disableprivkeys, TestChain100Setup) { | BOOST_FIXTURE_TEST_CASE(wallet_disableprivkeys, TestChain100Setup) { | ||||
auto chain = interfaces::MakeChain(); | auto chain = interfaces::MakeChain(); | ||||
std::shared_ptr<CWallet> wallet = std::make_shared<CWallet>( | std::shared_ptr<CWallet> wallet = std::make_shared<CWallet>( | ||||
Params(), chain.get(), WalletLocation(), WalletDatabase::CreateDummy()); | Params(), chain.get(), WalletLocation(), WalletDatabase::CreateDummy()); | ||||
wallet->SetMinVersion(FEATURE_LATEST); | wallet->SetMinVersion(FEATURE_LATEST); | ||||
wallet->SetWalletFlag(WALLET_FLAG_DISABLE_PRIVATE_KEYS); | wallet->SetWalletFlag(WALLET_FLAG_DISABLE_PRIVATE_KEYS); | ||||
BOOST_CHECK(!wallet->TopUpKeyPool(1000)); | BOOST_CHECK(!wallet->TopUpKeyPool(1000)); | ||||
CPubKey pubkey; | CPubKey pubkey; | ||||
BOOST_CHECK(!wallet->GetKeyFromPool(pubkey, false)); | BOOST_CHECK(!wallet->GetKeyFromPool(pubkey, false)); | ||||
} | } | ||||
BOOST_AUTO_TEST_SUITE_END() | BOOST_AUTO_TEST_SUITE_END() |