/****************************************************************************
**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
**
** This file is part of the test suite of the Qt Toolkit.
**
**
**
**
+**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <QDeclarativeEngine>
#include <QDeclarativeComponent>
#include <QTranslator>
-#include <QDebug>
-
-#ifdef Q_OS_SYMBIAN
-// In Symbian OS test data is located in applications private dir
-#define SRCDIR "."
-#endif
+#include "../../shared/util.h"
-class tst_qdeclarativetranslation : public QObject
+class tst_qdeclarativetranslation : public QDeclarativeDataTest
{
Q_OBJECT
public:
private slots:
void translation();
void idTranslation();
+ void translationInQrc();
};
-inline QUrl TEST_FILE(const QString &filename)
-{
- return QUrl::fromLocalFile(QLatin1String(SRCDIR) + QLatin1String("/data/") + filename);
-}
-
void tst_qdeclarativetranslation::translation()
{
QTranslator translator;
- translator.load(QLatin1String("qml_fr"), QLatin1String(SRCDIR) + QLatin1String("/data"));
- QApplication::installTranslator(&translator);
+ translator.load(QLatin1String("qml_fr"), dataDirectory());
+ QCoreApplication::installTranslator(&translator);
QDeclarativeEngine engine;
- QDeclarativeComponent component(&engine, TEST_FILE("translation.qml"));
+ QDeclarativeComponent component(&engine, testFileUrl("translation.qml"));
QObject *object = component.create();
QVERIFY(object != 0);
QCOMPARE(object->property("basic").toString(), QLatin1String("bonjour"));
QCOMPARE(object->property("basic2").toString(), QLatin1String("au revoir"));
+ QCOMPARE(object->property("basic3").toString(), QLatin1String("bonjour"));
QCOMPARE(object->property("disambiguation").toString(), QLatin1String("salut"));
QCOMPARE(object->property("disambiguation2").toString(), QString::fromUtf8("\xc3\xa0 plus tard"));
+ QCOMPARE(object->property("disambiguation3").toString(), QLatin1String("salut"));
QCOMPARE(object->property("noop").toString(), QLatin1String("bonjour"));
QCOMPARE(object->property("noop2").toString(), QLatin1String("au revoir"));
QCOMPARE(object->property("singular").toString(), QLatin1String("1 canard"));
+ QCOMPARE(object->property("singular2").toString(), QLatin1String("1 canard"));
QCOMPARE(object->property("plural").toString(), QLatin1String("2 canards"));
+ QCOMPARE(object->property("plural2").toString(), QLatin1String("2 canards"));
- QApplication::removeTranslator(&translator);
+ QCoreApplication::removeTranslator(&translator);
delete object;
}
void tst_qdeclarativetranslation::idTranslation()
{
QTranslator translator;
- translator.load(QLatin1String("qmlid_fr"), QLatin1String(SRCDIR) + QLatin1String("/data"));
- QApplication::installTranslator(&translator);
+ translator.load(QLatin1String("qmlid_fr"), dataDirectory());
+ QCoreApplication::installTranslator(&translator);
QDeclarativeEngine engine;
- QDeclarativeComponent component(&engine, TEST_FILE("idtranslation.qml"));
+ QDeclarativeComponent component(&engine, testFileUrl("idtranslation.qml"));
QObject *object = component.create();
QVERIFY(object != 0);
QCOMPARE(object->property("idTranslation").toString(), QLatin1String("bonjour tout le monde"));
QCOMPARE(object->property("idTranslation2").toString(), QLatin1String("bonjour tout le monde"));
+ QCOMPARE(object->property("idTranslation3").toString(), QLatin1String("bonjour tout le monde"));
+
+ QCoreApplication::removeTranslator(&translator);
+ delete object;
+}
+
+void tst_qdeclarativetranslation::translationInQrc()
+{
+ QTranslator translator;
+ translator.load(":/qml_fr.qm");
+ QCoreApplication::installTranslator(&translator);
+
+ QDeclarativeEngine engine;
+ QDeclarativeComponent component(&engine, QUrl("qrc:/translation.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("basic").toString(), QLatin1String("bonjour"));
+ QCOMPARE(object->property("basic2").toString(), QLatin1String("au revoir"));
+ QCOMPARE(object->property("basic3").toString(), QLatin1String("bonjour"));
+ QCOMPARE(object->property("disambiguation").toString(), QLatin1String("salut"));
+ QCOMPARE(object->property("disambiguation2").toString(), QString::fromUtf8("\xc3\xa0 plus tard"));
+ QCOMPARE(object->property("disambiguation3").toString(), QLatin1String("salut"));
+ QCOMPARE(object->property("noop").toString(), QLatin1String("bonjour"));
+ QCOMPARE(object->property("noop2").toString(), QLatin1String("au revoir"));
+ QCOMPARE(object->property("singular").toString(), QLatin1String("1 canard"));
+ QCOMPARE(object->property("singular2").toString(), QLatin1String("1 canard"));
+ QCOMPARE(object->property("plural").toString(), QLatin1String("2 canards"));
+ QCOMPARE(object->property("plural2").toString(), QLatin1String("2 canards"));
- QApplication::removeTranslator(&translator);
+ QCoreApplication::removeTranslator(&translator);
delete object;
}