Remove "All rights reserved" line from license headers.
[profile/ivi/qtdeclarative.git] / tests / auto / declarative / qdeclarativetranslation / tst_qdeclarativetranslation.cpp
index 5b88b54..ced1478 100644 (file)
@@ -1,8 +1,7 @@
 /****************************************************************************
 **
-** 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.
 **
@@ -35,6 +34,7 @@
 **
 **
 **
+**
 ** $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:
@@ -59,52 +54,81 @@ 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;
 }