Branch data Line data Source code
1 : : // Copyright (c) 2018-2022 The Bitcoin Core developers 2 : : // Distributed under the MIT software license, see the accompanying 3 : : // file COPYING or http://www.opensource.org/licenses/mit-license.php. 4 : : 5 : : #include <boost/test/unit_test.hpp> 6 : : 7 : : #include <common/args.h> 8 : : #include <noui.h> 9 : : #include <test/util/logging.h> 10 : : #include <test/util/setup_common.h> 11 : : #include <wallet/test/init_test_fixture.h> 12 : : 13 : : namespace wallet { 14 : 0 : BOOST_FIXTURE_TEST_SUITE(init_tests, InitWalletDirTestingSetup) 15 : : 16 : 0 : BOOST_AUTO_TEST_CASE(walletinit_verify_walletdir_default) 17 : : { 18 : 0 : SetWalletDir(m_walletdir_path_cases["default"]); 19 : 0 : bool result = m_wallet_loader->verify(); 20 : 0 : BOOST_CHECK(result == true); 21 : 0 : fs::path walletdir = m_args.GetPathArg("-walletdir"); 22 : 0 : fs::path expected_path = fs::canonical(m_walletdir_path_cases["default"]); 23 : 0 : BOOST_CHECK_EQUAL(walletdir, expected_path); 24 : 0 : } 25 : : 26 : 0 : BOOST_AUTO_TEST_CASE(walletinit_verify_walletdir_custom) 27 : : { 28 : 0 : SetWalletDir(m_walletdir_path_cases["custom"]); 29 : 0 : bool result = m_wallet_loader->verify(); 30 : 0 : BOOST_CHECK(result == true); 31 : 0 : fs::path walletdir = m_args.GetPathArg("-walletdir"); 32 : 0 : fs::path expected_path = fs::canonical(m_walletdir_path_cases["custom"]); 33 : 0 : BOOST_CHECK_EQUAL(walletdir, expected_path); 34 : 0 : } 35 : : 36 : 0 : BOOST_AUTO_TEST_CASE(walletinit_verify_walletdir_does_not_exist) 37 : : { 38 : 0 : SetWalletDir(m_walletdir_path_cases["nonexistent"]); 39 : : { 40 : 0 : ASSERT_DEBUG_LOG("does not exist"); 41 : 0 : bool result = m_wallet_loader->verify(); 42 : 0 : BOOST_CHECK(result == false); 43 : 0 : } 44 : 0 : } 45 : : 46 : 0 : BOOST_AUTO_TEST_CASE(walletinit_verify_walletdir_is_not_directory) 47 : : { 48 : 0 : SetWalletDir(m_walletdir_path_cases["file"]); 49 : : { 50 : 0 : ASSERT_DEBUG_LOG("is not a directory"); 51 : 0 : bool result = m_wallet_loader->verify(); 52 : 0 : BOOST_CHECK(result == false); 53 : 0 : } 54 : 0 : } 55 : : 56 : 0 : BOOST_AUTO_TEST_CASE(walletinit_verify_walletdir_is_not_relative) 57 : : { 58 : 0 : SetWalletDir(m_walletdir_path_cases["relative"]); 59 : : { 60 : 0 : ASSERT_DEBUG_LOG("is a relative path"); 61 : 0 : bool result = m_wallet_loader->verify(); 62 : 0 : BOOST_CHECK(result == false); 63 : 0 : } 64 : 0 : } 65 : : 66 : 0 : BOOST_AUTO_TEST_CASE(walletinit_verify_walletdir_no_trailing) 67 : : { 68 : 0 : SetWalletDir(m_walletdir_path_cases["trailing"]); 69 : 0 : bool result = m_wallet_loader->verify(); 70 : 0 : BOOST_CHECK(result == true); 71 : 0 : fs::path walletdir = m_args.GetPathArg("-walletdir"); 72 : 0 : fs::path expected_path = fs::canonical(m_walletdir_path_cases["default"]); 73 : 0 : BOOST_CHECK_EQUAL(walletdir, expected_path); 74 : 0 : } 75 : : 76 : 0 : BOOST_AUTO_TEST_CASE(walletinit_verify_walletdir_no_trailing2) 77 : : { 78 : 0 : SetWalletDir(m_walletdir_path_cases["trailing2"]); 79 : 0 : bool result = m_wallet_loader->verify(); 80 : 0 : BOOST_CHECK(result == true); 81 : 0 : fs::path walletdir = m_args.GetPathArg("-walletdir"); 82 : 0 : fs::path expected_path = fs::canonical(m_walletdir_path_cases["default"]); 83 : 0 : BOOST_CHECK_EQUAL(walletdir, expected_path); 84 : 0 : } 85 : : 86 : 0 : BOOST_AUTO_TEST_SUITE_END() 87 : : } // namespace wallet