diff options
author | Alex Richardson <arichardson.kde@gmail.com> | 2014-07-01 20:33:41 +0200 |
---|---|---|
committer | Alex Richardson <arichardson.kde@gmail.com> | 2014-07-01 20:49:45 +0200 |
commit | ae51450ea64970dcdc544185d68e1e73fb390caa (patch) | |
tree | 8047cfbf70cd0276f2f4fc562589d208cf6a417d /autotests/kdesktopfiletest.cpp | |
parent | fde2f3c847d2fb90c3354e045bf7d82b04d6e169 (diff) | |
download | kconfig-ae51450ea64970dcdc544185d68e1e73fb390caa.tar.gz kconfig-ae51450ea64970dcdc544185d68e1e73fb390caa.tar.bz2 |
Fix reading of XDG style semicolon separated lists with escaped ';'
Previously the warning "Invalid escape sequence "\;"." would appear and
"\;" was replaced with just the backslash as is done for all
unrecognized escape sequences. Keep both characters so that
readXdgListEntry() works with values containing semicolons
REVIEW: 119074
Diffstat (limited to 'autotests/kdesktopfiletest.cpp')
-rw-r--r-- | autotests/kdesktopfiletest.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/autotests/kdesktopfiletest.cpp b/autotests/kdesktopfiletest.cpp index b1938b80..3ee291f4 100644 --- a/autotests/kdesktopfiletest.cpp +++ b/autotests/kdesktopfiletest.cpp @@ -142,21 +142,35 @@ void KDesktopFileTest::testActionGroup() QTextStream ts(&file); ts << "[Desktop Entry]\n" - "Actions=encrypt;\n" + // make sure escaping of ';' using "\;" works + "Actions=encrypt;semi\\;colon;decrypt;\n" "[Desktop Action encrypt]\n" "Name=Encrypt file\n" + "[Desktop Action decrypt]\n" + "Name=Decrypt file\n" + // no escaping needed in group header + "[Desktop Action semi;colon]\n" + "Name=With semicolon\n" "\n"; file.close(); QVERIFY(QFile::exists(fileName)); KDesktopFile df(fileName); QCOMPARE(df.readType(), QString()); QCOMPARE(df.fileName(), fileName); - QCOMPARE(df.readActions(), QStringList() << "encrypt"); + QCOMPARE(df.readActions(), QStringList() << "encrypt" << "semi;colon" << "decrypt"); QCOMPARE(df.hasActionGroup("encrypt"), true); + QCOMPARE(df.hasActionGroup("semi;colon"), true); + QCOMPARE(df.hasActionGroup("decrypt"), true); QCOMPARE(df.hasActionGroup("doesnotexist"), false); KConfigGroup cg = df.actionGroup("encrypt"); QVERIFY(cg.hasKey("Name")); QCOMPARE(cg.readEntry("Name"), QString("Encrypt file")); + cg = df.actionGroup("decrypt"); + QVERIFY(cg.hasKey("Name")); + QCOMPARE(cg.readEntry("Name"), QString("Decrypt file")); + cg = df.actionGroup("semi;colon"); + QVERIFY(cg.hasKey("Name")); + QCOMPARE(cg.readEntry("Name"), QString("With semicolon")); } void KDesktopFileTest::testIsAuthorizedDesktopFile() |