aboutsummaryrefslogtreecommitdiff
path: root/autotests/kdesktopfiletest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'autotests/kdesktopfiletest.cpp')
-rw-r--r--autotests/kdesktopfiletest.cpp37
1 files changed, 30 insertions, 7 deletions
diff --git a/autotests/kdesktopfiletest.cpp b/autotests/kdesktopfiletest.cpp
index 6c3af4c2..12277331 100644
--- a/autotests/kdesktopfiletest.cpp
+++ b/autotests/kdesktopfiletest.cpp
@@ -50,6 +50,29 @@ void KDesktopFileTest::testRead()
QCOMPARE(df.fileName(), QFileInfo(fileName).canonicalFilePath());
}
+void KDesktopFileTest::testReadLocalized_data()
+{
+ QTest::addColumn<QLocale>("locale");
+ QTest::addColumn<QString>("translation");
+
+ const QString german = QStringLiteral("Meine Anwendung");
+ const QString swiss = QStringLiteral("Mein Anwendungsli");
+
+ QTest::newRow("de") << QLocale(QLocale::German) << german;
+ QTest::newRow("de_DE") << QLocale(QStringLiteral("de_DE")) << german;
+ QTest::newRow("de_DE@bayern") << QLocale(QStringLiteral("de_DE@bayern")) << german;
+ QTest::newRow("de@bayern") << QLocale(QStringLiteral("de@bayern")) << german;
+ QTest::newRow("de@freiburg") << QLocale(QStringLiteral("de@freiburg")) << QStringLiteral("Mein Anwendungsle");
+ // For CH we have a special translation
+ QTest::newRow("de_CH") << QLocale(QLocale::German, QLocale::Switzerland) << swiss;
+ QTest::newRow("de_CH@bern") << QLocale(QStringLiteral("de_CH@bern")) << swiss;
+ // Austria should fall back to "de"
+ QTest::newRow("de_AT") << QLocale(QLocale::German, QLocale::QLocale::Austria) << german;
+ QTest::newRow("de_AT@tirol") << QLocale(QStringLiteral("de_AT@tirol")) << german;
+ // no translation for French
+ QTest::newRow("fr") << QLocale(QLocale::French) << QStringLiteral("My Application");
+}
+
void KDesktopFileTest::testReadLocalized()
{
QTemporaryFile file("testReadLocalizedXXXXXX.desktop");
@@ -61,6 +84,8 @@ void KDesktopFileTest::testReadLocalized()
"Type=Application\n"
"Name=My Application\n"
"Name[de]=Meine Anwendung\n"
+ "Name[de@freiburg]=Mein Anwendungsle\n"
+ "Name[de_CH]=Mein Anwendungsli\n"
"Icon=foo\n"
"\n";
file.close();
@@ -68,15 +93,13 @@ void KDesktopFileTest::testReadLocalized()
QVERIFY(KDesktopFile::isDesktopFile(fileName));
DefaultLocale defaultLocale;
- // set language to German for which we have a translation
- QLocale::setDefault(QLocale(QLocale::German));
+
+ QFETCH(QLocale, locale);
+ QLocale::setDefault(locale);
KDesktopFile df(fileName);
- QCOMPARE(df.readName(), QString::fromLatin1("Meine Anwendung"));
- // set language to French for which we don't have a translation
- QLocale::setDefault(QLocale(QLocale::French));
- KDesktopFile df2(fileName);
- QCOMPARE(df2.readName(), QString::fromLatin1("My Application"));
+ QEXPECT_FAIL("de@freiburg", "QLocale doesn't support modifiers", Continue);
+ QTEST(df.readName(), "translation");
}
void KDesktopFileTest::testSuccessfulTryExec()