MailJDTourDownloadDocsQualityTestsCoverage

Which source lines and branches the tests execute. Lines 91.5 %, branches 75.0 % (minimum 85 % and 72 %). main @ 399ffe3d · 21 October 2026 · pipeline 7238.

GCC Code Coverage Report


Directory: src/
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 1 / 0 / 1
Functions: 100.0% 1 / 0 / 1
Branches: -% 0 / 0 / 0

data/CollectedAddressStore.h
Line Branch Exec Source
1 #pragma once
2
3 #include <QDateTime>
4 #include <QList>
5 #include <QSqlDatabase>
6 #include <QString>
7
8 #include <functional>
9
10 // Collected addresses and send counts (Sprint 97 S97.1.6, CONTACT-COLLECTED,
11 // decision D-4) on a contacts.db connection owned by the caller.
12 //
13 // Every recipient of a successfully sent mail counts once in address_usage
14 // (completion ranking for cards and collected addresses alike; survives
15 // re-syncs). An address that belongs to no card is also kept in
16 // collected_addresses: used by the completion, listed under "Collected
17 // addresses", never synced and never mixed into "All contacts". An address
18 // that later gets a card simply stops being listed as collected.
19 class CollectedAddressStore {
20 public:
21 struct Recipient {
22 QString name;
23 QString address;
24 };
25
26 30 explicit CollectedAddressStore(QSqlDatabase database) : m_db(std::move(database)) {}
27
28 // Records the recipients of one sent message (each address once).
29 // collect = false only counts usage of addresses that have a card.
30 bool recordSent(const QList<Recipient> &recipients, bool collect, const QDateTime &now = {});
31 // "Forget collected addresses": removes every collected address and the
32 // usage of addresses that belong to no card.
33 bool forgetAll();
34 // Context menu "Forget" on one collected address.
35 bool forget(const QString &address);
36 int collectedCount() const;
37
38 private:
39 bool inTransaction(const std::function<bool()> &write);
40 QSqlDatabase m_db;
41 };
42