v31.1-roots.1 · Commit 8: [PATCH 08/17] chore(roots): integrate v31 identity and maintenance tooling
src/qt/test/apptests.cpp
Before: src/qt/test/apptests.cpp · After: src/qt/test/apptests.cpp
File metadata
index 9ec8aa0a19d79762ef432f8476795808a0aed605..059703943d0882a9f7c45e73854587a0c57ccf50 100644
Download original patch · Release notes
Diff rows 1–55 of 55. Line numbers refer to the original before/after files.
+ Added− RemovedUnmarked lines are context.
Scroll the code area horizontally to read long lines. The two line-number columns refer to before and after.
src/qt/test/apptests.cpp
CHANGED
|
@@ -10,6 +10,9 @@
|
|
|
10
10
|
#include <qt/bitcoin.h>
|
|
11
11
|
#include <qt/bitcoingui.h>
|
|
12
12
|
#include <qt/networkstyle.h>
|
|
13
|
+
#include <qt/qrimagewidget.h>
|
|
14
|
+
#include <QClipboard>
|
|
15
|
+
#include <QTemporaryDir>
|
|
13
16
|
#include <qt/rpcconsole.h>
|
|
14
17
|
#include <qt/peertablemodel.h>
|
|
15
18
|
#include <QLabel>
|
|
@@ -207,6 +210,38 @@ void TestLivePeerView(RPCConsole* console, interfaces::Node& node)
|
|
|
207
210
|
QTRY_VERIFY_WITH_TIMEOUT((model->refresh(), model->rowCount() == endpoints.size() - 1), 10000);
|
|
208
211
|
QVERIFY(table->selectionModel()->selectedRows().isEmpty());
|
|
209
212
|
}
|
|
213
|
+
void TestQrQuietZone()
|
|
214
|
+
{
|
|
215
|
+
#if defined(ENABLE_WALLET) && defined(USE_QRCODE)
|
|
216
|
+
QRImageWidget qr;
|
|
217
|
+
QVERIFY(qr.setQR(QStringLiteral("bitcoin:bc1qz0j5w6w8t8d5alw5lp4n4t3g6d7n7ld5cqqqqq")));
|
|
218
|
+
const QImage image{qr.exportImage()};
|
|
219
|
+
QTemporaryDir directory;
|
|
220
|
+
QVERIFY(directory.isValid());
|
|
221
|
+
const QString path{directory.filePath("qr.png")};
|
|
222
|
+
QVERIFY(image.save(path, "PNG"));
|
|
223
|
+
QCOMPARE(QImage{path}, image);
|
|
224
|
+
qr.copyImage();
|
|
225
|
+
QCOMPARE(QApplication::clipboard()->image(), image);
|
|
226
|
+
QCOMPARE(image.width(), QR_IMAGE_SIZE + 2 * QR_IMAGE_MARGIN);
|
|
227
|
+
QCOMPARE(image.height(), QR_IMAGE_SIZE + 2 * QR_IMAGE_MARGIN);
|
|
228
|
+
// The first matrix pixel remains white only when the four-module quiet zone
|
|
229
|
+
// survives the scale-to-display path.
|
|
230
|
+
QCOMPARE(image.pixelColor(QR_IMAGE_MARGIN, QR_IMAGE_MARGIN), QColor{Qt::white});
|
|
231
|
+
#endif
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
void TestRootsResources()
|
|
235
|
+
{
|
|
236
|
+
const QPixmap icon{QStringLiteral(":/icons/bitcoin")};
|
|
237
|
+
QVERIFY(!icon.isNull());
|
|
238
|
+
const QSize expected_icon_size{256, 256};
|
|
239
|
+
QCOMPARE(icon.size(), expected_icon_size);
|
|
240
|
+
const QPixmap splash{QStringLiteral(":/icons/splash")};
|
|
241
|
+
QVERIFY(!splash.isNull());
|
|
242
|
+
const QSize expected_size{960, 960};
|
|
243
|
+
QCOMPARE(splash.size(), expected_size);
|
|
244
|
+
}
|
|
210
245
|
} // namespace
|
|
211
246
|
|
|
212
247
|
//! Entry point for BitcoinApplication tests.
|
|
@@ -262,6 +297,8 @@ void AppTests::guiTests(BitcoinGUI* window)
|
|
|
262
297
|
void AppTests::consoleTests(RPCConsole* console)
|
|
263
298
|
{
|
|
264
299
|
HandleCallback callback{"consoleTests", *this};
|
|
300
|
+
TestQrQuietZone();
|
|
301
|
+
TestRootsResources();
|
|
265
302
|
TestRpcCommand(console);
|
|
266
303
|
TestPeerRefreshState(console);
|
|
267
304
|
TestLivePeerView(console, m_app.node());
|