mirror of
https://github.com/bitcoin/bitcoin.git
synced 2024-11-20 10:38:42 +01:00
[Tests] Add Qt GUI tests to Overview and ReceiveCoin Page
This commit is contained in:
parent
4ce2f3d0d3
commit
634e38ca71
@ -13,6 +13,10 @@
|
||||
#include "test/test_bitcoin.h"
|
||||
#include "validation.h"
|
||||
#include "wallet/wallet.h"
|
||||
#include "qt/overviewpage.h"
|
||||
#include "qt/receivecoinsdialog.h"
|
||||
#include "qt/recentrequeststablemodel.h"
|
||||
#include "qt/receiverequestdialog.h"
|
||||
|
||||
#include <QAbstractButton>
|
||||
#include <QAction>
|
||||
@ -21,6 +25,9 @@
|
||||
#include <QPushButton>
|
||||
#include <QTimer>
|
||||
#include <QVBoxLayout>
|
||||
#include <QTextEdit>
|
||||
#include <QListView>
|
||||
#include <QDialogButtonBox>
|
||||
|
||||
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 windows # Windows
|
||||
// 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).
|
||||
TestChain100Setup test;
|
||||
@ -184,6 +191,68 @@ void TestSendCoins()
|
||||
BumpFee(transactionView, txid2, false /* expect disabled */, {} /* 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.Reset();
|
||||
}
|
||||
@ -192,5 +261,5 @@ void TestSendCoins()
|
||||
|
||||
void WalletTests::walletTests()
|
||||
{
|
||||
TestSendCoins();
|
||||
TestGUI();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user