Merge #11365: [Tests] Add Qt GUI tests to Overview and ReceiveCoin Page
634e38ca7
[Tests] Add Qt GUI tests to Overview and ReceiveCoin Page (Anditto Heristyo)
Pull request description:
I've added some Qt wallet tests based on #9974, namely the input & buttons on ReceiveCoin.
Tree-SHA512: f4223827145e35c2abee83a6ca777498bebcff3825fece10fbb1dbfd1f6bb017d3f2c0521662854b4407cdeee9c6a527269ab9cc28e0dc85c11b668155fcd195
This commit is contained in:
commit
f199b8a33d
1 changed files with 71 additions and 2 deletions
|
@ -13,6 +13,10 @@
|
||||||
#include "test/test_bitcoin.h"
|
#include "test/test_bitcoin.h"
|
||||||
#include "validation.h"
|
#include "validation.h"
|
||||||
#include "wallet/wallet.h"
|
#include "wallet/wallet.h"
|
||||||
|
#include "qt/overviewpage.h"
|
||||||
|
#include "qt/receivecoinsdialog.h"
|
||||||
|
#include "qt/recentrequeststablemodel.h"
|
||||||
|
#include "qt/receiverequestdialog.h"
|
||||||
|
|
||||||
#include <QAbstractButton>
|
#include <QAbstractButton>
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
|
@ -21,6 +25,9 @@
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
#include <QTextEdit>
|
||||||
|
#include <QListView>
|
||||||
|
#include <QDialogButtonBox>
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
@ -140,7 +147,7 @@ void BumpFee(TransactionView& view, const uint256& txid, bool expectDisabled, st
|
||||||
// src/qt/test/test_bitcoin-qt -platform xcb # Linux
|
// src/qt/test/test_bitcoin-qt -platform xcb # Linux
|
||||||
// src/qt/test/test_bitcoin-qt -platform windows # Windows
|
// src/qt/test/test_bitcoin-qt -platform windows # Windows
|
||||||
// src/qt/test/test_bitcoin-qt -platform cocoa # macOS
|
// src/qt/test/test_bitcoin-qt -platform cocoa # macOS
|
||||||
void TestSendCoins()
|
void TestGUI()
|
||||||
{
|
{
|
||||||
// Set up wallet and chain with 105 blocks (5 mature blocks for spending).
|
// Set up wallet and chain with 105 blocks (5 mature blocks for spending).
|
||||||
TestChain100Setup test;
|
TestChain100Setup test;
|
||||||
|
@ -184,6 +191,68 @@ void TestSendCoins()
|
||||||
BumpFee(transactionView, txid2, false /* expect disabled */, {} /* expected error */, false /* cancel */);
|
BumpFee(transactionView, txid2, false /* expect disabled */, {} /* expected error */, false /* cancel */);
|
||||||
BumpFee(transactionView, txid2, true /* expect disabled */, "already bumped" /* expected error */, false /* cancel */);
|
BumpFee(transactionView, txid2, true /* expect disabled */, "already bumped" /* expected error */, false /* cancel */);
|
||||||
|
|
||||||
|
// Check current balance on OverviewPage
|
||||||
|
OverviewPage overviewPage(platformStyle.get());
|
||||||
|
overviewPage.setWalletModel(&walletModel);
|
||||||
|
QLabel* balanceLabel = overviewPage.findChild<QLabel*>("labelBalance");
|
||||||
|
QString balanceText = balanceLabel->text();
|
||||||
|
int unit = walletModel.getOptionsModel()->getDisplayUnit();
|
||||||
|
CAmount balance = walletModel.getBalance();
|
||||||
|
QString balanceComparison = BitcoinUnits::formatWithUnit(unit, balance, false, BitcoinUnits::separatorAlways);
|
||||||
|
QCOMPARE(balanceText, balanceComparison);
|
||||||
|
|
||||||
|
// Check Request Payment button
|
||||||
|
ReceiveCoinsDialog receiveCoinsDialog(platformStyle.get());
|
||||||
|
receiveCoinsDialog.setModel(&walletModel);
|
||||||
|
RecentRequestsTableModel* requestTableModel = walletModel.getRecentRequestsTableModel();
|
||||||
|
|
||||||
|
// Label input
|
||||||
|
QLineEdit* labelInput = receiveCoinsDialog.findChild<QLineEdit*>("reqLabel");
|
||||||
|
labelInput->setText("TEST_LABEL_1");
|
||||||
|
|
||||||
|
// Amount input
|
||||||
|
BitcoinAmountField* amountInput = receiveCoinsDialog.findChild<BitcoinAmountField*>("reqAmount");
|
||||||
|
amountInput->setValue(1);
|
||||||
|
|
||||||
|
// Message input
|
||||||
|
QLineEdit* messageInput = receiveCoinsDialog.findChild<QLineEdit*>("reqMessage");
|
||||||
|
messageInput->setText("TEST_MESSAGE_1");
|
||||||
|
int initialRowCount = requestTableModel->rowCount({});
|
||||||
|
QPushButton* requestPaymentButton = receiveCoinsDialog.findChild<QPushButton*>("receiveButton");
|
||||||
|
requestPaymentButton->click();
|
||||||
|
for (QWidget* widget : QApplication::topLevelWidgets()) {
|
||||||
|
if (widget->inherits("ReceiveRequestDialog")) {
|
||||||
|
ReceiveRequestDialog* receiveRequestDialog = qobject_cast<ReceiveRequestDialog*>(widget);
|
||||||
|
QTextEdit* rlist = receiveRequestDialog->QObject::findChild<QTextEdit*>("outUri");
|
||||||
|
QString paymentText = rlist->toPlainText();
|
||||||
|
QStringList paymentTextList = paymentText.split('\n');
|
||||||
|
QCOMPARE(paymentTextList.at(0), QString("Payment information"));
|
||||||
|
QVERIFY(paymentTextList.at(1).indexOf(QString("URI: bitcoin:")) != -1);
|
||||||
|
QVERIFY(paymentTextList.at(2).indexOf(QString("Address:")) != -1);
|
||||||
|
QCOMPARE(paymentTextList.at(3), QString("Amount: 0.00000001 ") + QString::fromStdString(CURRENCY_UNIT));
|
||||||
|
QCOMPARE(paymentTextList.at(4), QString("Label: TEST_LABEL_1"));
|
||||||
|
QCOMPARE(paymentTextList.at(5), QString("Message: TEST_MESSAGE_1"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clear button
|
||||||
|
QPushButton* clearButton = receiveCoinsDialog.findChild<QPushButton*>("clearButton");
|
||||||
|
clearButton->click();
|
||||||
|
QCOMPARE(labelInput->text(), QString(""));
|
||||||
|
QCOMPARE(amountInput->value(), CAmount(0));
|
||||||
|
QCOMPARE(messageInput->text(), QString(""));
|
||||||
|
|
||||||
|
// Check addition to history
|
||||||
|
int currentRowCount = requestTableModel->rowCount({});
|
||||||
|
QCOMPARE(currentRowCount, initialRowCount+1);
|
||||||
|
|
||||||
|
// Check Remove button
|
||||||
|
QTableView* table = receiveCoinsDialog.findChild<QTableView*>("recentRequestsView");
|
||||||
|
table->selectRow(currentRowCount-1);
|
||||||
|
QPushButton* removeRequestButton = receiveCoinsDialog.findChild<QPushButton*>("removeRequestButton");
|
||||||
|
removeRequestButton->click();
|
||||||
|
QCOMPARE(requestTableModel->rowCount({}), currentRowCount-1);
|
||||||
|
|
||||||
bitdb.Flush(true);
|
bitdb.Flush(true);
|
||||||
bitdb.Reset();
|
bitdb.Reset();
|
||||||
}
|
}
|
||||||
|
@ -192,5 +261,5 @@ void TestSendCoins()
|
||||||
|
|
||||||
void WalletTests::walletTests()
|
void WalletTests::walletTests()
|
||||||
{
|
{
|
||||||
TestSendCoins();
|
TestGUI();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue