Changeset View
Changeset View
Standalone View
Standalone View
src/qt/test/guiutiltests.cpp
// Copyright (c) 2017 The Bitcoin developers | // Copyright (c) 2017 The Bitcoin developers | ||||
// Distributed under the MIT software license, see the accompanying | // Distributed under the MIT software license, see the accompanying | ||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php. | // file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||||
#include "guiutiltests.h" | #include "guiutiltests.h" | ||||
#include "chainparams.h" | #include "chainparams.h" | ||||
#include "config.h" | #include "config.h" | ||||
#include "dstencode.h" | #include "dstencode.h" | ||||
#include "guiutil.h" | #include "guiutil.h" | ||||
#include "receiverequestdialog.h" | |||||
namespace { | namespace { | ||||
class UtilCfgDummy : public DummyConfig { | class UtilCfgDummy : public DummyConfig { | ||||
public: | public: | ||||
UtilCfgDummy() : useCashAddr(false) {} | UtilCfgDummy() : useCashAddr(false) {} | ||||
void SetCashAddrEncoding(bool b) override { useCashAddr = b; } | void SetCashAddrEncoding(bool b) override { useCashAddr = b; } | ||||
bool UseCashAddrEncoding() const override { return useCashAddr; } | bool UseCashAddrEncoding() const override { return useCashAddr; } | ||||
const CChainParams &GetChainParams() const override { | |||||
return Params(CBaseChainParams::MAIN); | |||||
} | |||||
private: | private: | ||||
bool useCashAddr; | bool useCashAddr; | ||||
}; | }; | ||||
} // anon ns | } // anon ns | ||||
void GUIUtilTests::dummyAddressTest() { | void GUIUtilTests::dummyAddressTest() { | ||||
CChainParams ¶ms = Params(CBaseChainParams::MAIN); | CChainParams ¶ms = Params(CBaseChainParams::MAIN); | ||||
UtilCfgDummy cfg; | UtilCfgDummy cfg; | ||||
std::string dummyaddr; | std::string dummyaddr; | ||||
cfg.SetCashAddrEncoding(false); | cfg.SetCashAddrEncoding(false); | ||||
dummyaddr = GUIUtil::DummyAddress(params, cfg); | dummyaddr = GUIUtil::DummyAddress(params, cfg); | ||||
QVERIFY(!IsValidDestinationString(dummyaddr, params)); | QVERIFY(!IsValidDestinationString(dummyaddr, params)); | ||||
QVERIFY(!dummyaddr.empty()); | QVERIFY(!dummyaddr.empty()); | ||||
cfg.SetCashAddrEncoding(true); | cfg.SetCashAddrEncoding(true); | ||||
dummyaddr = GUIUtil::DummyAddress(params, cfg); | dummyaddr = GUIUtil::DummyAddress(params, cfg); | ||||
QVERIFY(!IsValidDestinationString(dummyaddr, params)); | QVERIFY(!IsValidDestinationString(dummyaddr, params)); | ||||
QVERIFY(!dummyaddr.empty()); | QVERIFY(!dummyaddr.empty()); | ||||
} | } | ||||
void GUIUtilTests::toCurrentEncodingTest() { | |||||
UtilCfgDummy config; | |||||
// garbage in, garbage out | |||||
QVERIFY(ToCurrentEncoding("garbage", config) == "garbage"); | |||||
QString cashaddr_pubkey = | |||||
"bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a"; | |||||
QString base58_pubkey = "1BpEi6DfDAUFd7GtittLSdBeYJvcoaVggu"; | |||||
config.SetCashAddrEncoding(true); | |||||
QVERIFY(ToCurrentEncoding(cashaddr_pubkey, config) == cashaddr_pubkey); | |||||
QVERIFY(ToCurrentEncoding(base58_pubkey, config) == cashaddr_pubkey); | |||||
config.SetCashAddrEncoding(false); | |||||
QVERIFY(ToCurrentEncoding(cashaddr_pubkey, config) == base58_pubkey); | |||||
QVERIFY(ToCurrentEncoding(base58_pubkey, config) == base58_pubkey); | |||||
} |