diff options
Diffstat (limited to 'autotests/kdesktopfiletest.cpp')
| -rw-r--r-- | autotests/kdesktopfiletest.cpp | 37 | 
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() | 
