aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_config.cpp
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-08-24 11:02:08 +0200
committerDanilo M. <danix@danix.xyz>2026-08-24 11:02:08 +0200
commitdd6f35b8f35f231ebf1511daef3dd707eaa9839d (patch)
tree2013df8d9541164bef2339aeee2ab507d976a615 /tests/test_config.cpp
parentf814bb57c03e01c96ec97c2bfb2d314210a95f28 (diff)
downloadqtmaildir-dd6f35b8f35f231ebf1511daef3dd707eaa9839d.tar.gz
qtmaildir-dd6f35b8f35f231ebf1511daef3dd707eaa9839d.zip
fix(compose): default to quoting below, and focus the body on a reply
The previous commit fixed the cursor within each quote_position branch and the user still saw the old layout, because the branches were already right: what was wrong was the DEFAULT. quote_position shipped as `above`, and the layout asked for is exactly what `below` already produced, a blank line at the top with the quote underneath. So the default flips, along with the fallback for a malformed value and the warning naming it. Nothing needs an Upgrading note: compose has not been released, so no config in the wild sets this. Focus goes to the body whenever To: is already filled, which a Reply and a Forward always are. The form's first widget took it otherwise, so the user had to click into the editor before typing. A New message keeps the default, since an empty To: is genuinely the first thing to fill in. The focus test asserts on the window's focusWidget() rather than on QWidget::hasFocus(): an unshown window is never active, so hasFocus() reads false whatever the code does and would fail against a correct fix. Both directions are mutation-checked, since focusing unconditionally passes the reply case while breaking the new-message one.
Diffstat (limited to 'tests/test_config.cpp')
-rw-r--r--tests/test_config.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/tests/test_config.cpp b/tests/test_config.cpp
index a902425..c46b153 100644
--- a/tests/test_config.cpp
+++ b/tests/test_config.cpp
@@ -130,7 +130,7 @@ private slots:
void garbageSendDelayIsRejectedNotZero();
void garbageAttachmentWarnBytesIsRejectedNotZero();
void zeroOrNegativeAutosaveIntervalIsClamped();
- void unrecognisedQuotePositionWarnsAndFallsBackToAbove();
+ void unrecognisedQuotePositionWarnsAndFallsBackToBelow();
};
static QString writeIni(const QTemporaryDir &dir, const QString &body)
@@ -2359,8 +2359,8 @@ void TestConfig::composeSettingsDefaultWhenTheSectionIsAbsent()
config.load(writeIni(dir, QStringLiteral("[general]\n")));
const ComposeSettings compose = config.compose();
- QVERIFY2(compose.quotePosition == ComposeSettings::QuotePosition::Above,
- "default quote position must be Above");
+ QVERIFY2(compose.quotePosition == ComposeSettings::QuotePosition::Below,
+ "default quote position must be Below");
QVERIFY2(compose.sendHtml, "default send_html must be true");
QCOMPARE(compose.autosaveIntervalMs, 30000);
QCOMPARE(compose.sendDelayMs, 5000);
@@ -2492,7 +2492,7 @@ void TestConfig::zeroOrNegativeAutosaveIntervalIsClamped()
.arg(negative.compose().autosaveIntervalMs)));
}
-void TestConfig::unrecognisedQuotePositionWarnsAndFallsBackToAbove()
+void TestConfig::unrecognisedQuotePositionWarnsAndFallsBackToBelow()
{
// Matches the precedent set by sync_on_exit, language and date_format:
// the only silent fallbacks in this file are for ABSENT keys, never for
@@ -2503,8 +2503,8 @@ void TestConfig::unrecognisedQuotePositionWarnsAndFallsBackToAbove()
"[compose]\n"
"quote_position=abov\n")));
- QVERIFY2(config.compose().quotePosition == ComposeSettings::QuotePosition::Above,
- "an unrecognised quote_position must still fall back to Above");
+ QVERIFY2(config.compose().quotePosition == ComposeSettings::QuotePosition::Below,
+ "an unrecognised quote_position must still fall back to Below");
QVERIFY2(!config.problems().isEmpty(),
"an unrecognised quote_position was accepted silently");
}