diff options
Diffstat (limited to 'tests/auto/declarative/qdeclarativelocale')
7 files changed, 0 insertions, 1408 deletions
diff --git a/tests/auto/declarative/qdeclarativelocale/data/date.qml b/tests/auto/declarative/qdeclarativelocale/data/date.qml deleted file mode 100644 index 3f58497d22..0000000000 --- a/tests/auto/declarative/qdeclarativelocale/data/date.qml +++ /dev/null @@ -1,45 +0,0 @@ -import QtQuick 2.0 - -QtObject { - property var locale: Qt.locale() - - function setLocale(l) { - locale = Qt.locale(l) - } - - function toLocaleString(fmt) { - var d = new Date(2011, 9, 7, 18, 53, 48, 345); - if (fmt < 0) - return d.toLocaleString(locale); - else - return d.toLocaleString(locale, fmt); - } - - function toLocaleDateString(fmt) { - var d = new Date(2011, 9, 7, 18, 53, 48, 345); - if (fmt < 0) - return d.toLocaleDateString(locale); - else - return d.toLocaleDateString(locale, fmt); - } - - function toLocaleTimeString(fmt) { - var d = new Date(2011, 9, 7, 18, 53, 48, 345); - if (fmt < 0) - return d.toLocaleTimeString(locale); - else - return d.toLocaleTimeString(locale, fmt); - } - - function fromLocaleString(d,fmt) { - return Date.fromLocaleString(locale, d, fmt) - } - - function fromLocaleDateString(d,fmt) { - return Date.fromLocaleDateString(locale, d, fmt) - } - - function fromLocaleTimeString(d,fmt) { - return Date.fromLocaleTimeString(locale, d, fmt) - } -} diff --git a/tests/auto/declarative/qdeclarativelocale/data/functions.qml b/tests/auto/declarative/qdeclarativelocale/data/functions.qml deleted file mode 100644 index 5fef6a26fb..0000000000 --- a/tests/auto/declarative/qdeclarativelocale/data/functions.qml +++ /dev/null @@ -1,65 +0,0 @@ -import QtQuick 2.0 - -QtObject { - property var locale: Qt.locale() - - function setLocale(l) { - locale = Qt.locale(l) - } - - function currencySymbol(type) { - if (type < 0) - return locale.currencySymbol() - else - return locale.currencySymbol(type) - } - - function monthName(month,type) { - if (type < 0) - return locale.monthName(month) - else - return locale.monthName(month, type) - } - - function standaloneMonthName(month,type) { - if (type < 0) - return locale.standaloneMonthName(month) - else - return locale.standaloneMonthName(month, type) - } - - function dayName(month,type) { - if (type < 0) - return locale.dayName(month) - else - return locale.dayName(month, type) - } - - function standaloneDayName(month,type) { - if (type < 0) - return locale.standaloneDayName(month) - else - return locale.standaloneDayName(month, type) - } - - function dateTimeFormat(fmt) { - if (fmt < 0) - return locale.dateTimeFormat() - else - return locale.dateTimeFormat(fmt) - } - - function dateFormat(fmt) { - if (fmt < 0) - return locale.dateFormat() - else - return locale.dateFormat(fmt) - } - - function timeFormat(fmt) { - if (fmt < 0) - return locale.timeFormat() - else - return locale.timeFormat(fmt) - } -} diff --git a/tests/auto/declarative/qdeclarativelocale/data/localeCompare.qml b/tests/auto/declarative/qdeclarativelocale/data/localeCompare.qml deleted file mode 100644 index 6851af6ef9..0000000000 --- a/tests/auto/declarative/qdeclarativelocale/data/localeCompare.qml +++ /dev/null @@ -1,7 +0,0 @@ -import QtQuick 2.0 - -QtObject { - property var string1: "a" - property var string2: "a" - property var comparison: string1.localeCompare(string2) -} diff --git a/tests/auto/declarative/qdeclarativelocale/data/number.qml b/tests/auto/declarative/qdeclarativelocale/data/number.qml deleted file mode 100644 index 51a6c15dce..0000000000 --- a/tests/auto/declarative/qdeclarativelocale/data/number.qml +++ /dev/null @@ -1,30 +0,0 @@ -import QtQuick 2.0 - -QtObject { - property var locale: Qt.locale() - - function setLocale(l) { - locale = Qt.locale(l) - } - - function toLocaleString(n,fmt,prec) { - if (prec < 0) - return n.toLocaleString(locale, fmt); - else - return n.toLocaleString(locale, fmt, prec); - } - - function toLocaleCurrencyString(n,symbol) { - if (symbol.length == 0) - return n.toLocaleCurrencyString(locale); - else - return n.toLocaleCurrencyString(locale, symbol); - } - - function fromLocaleString(n) { - return Number.fromLocaleString(locale, n) - } - - property var const1: 1234.56.toLocaleString(locale); - property var const2: 1234..toLocaleString(locale); -} diff --git a/tests/auto/declarative/qdeclarativelocale/data/properties.qml b/tests/auto/declarative/qdeclarativelocale/data/properties.qml deleted file mode 100644 index 16d1f4092a..0000000000 --- a/tests/auto/declarative/qdeclarativelocale/data/properties.qml +++ /dev/null @@ -1,27 +0,0 @@ -import QtQuick 2.0 - -QtObject { - property var locale: Qt.locale() - - function setLocale(l) { - locale = Qt.locale(l); - } - - property var name: locale.name - property var amText: locale.amText - property var pmText: locale.pmText - property var nativeLanguageName: locale.nativeLanguageName - property var nativeCountryName: locale.nativeCountryName - property var decimalPoint: locale.decimalPoint - property var groupSeparator: locale.groupSeparator - property var percent: locale.percent - property var zeroDigit: locale.zeroDigit - property var negativeSign: locale.negativeSign - property var positiveSign: locale.positiveSign - property var exponential: locale.exponential - property var firstDayOfWeek: locale.firstDayOfWeek - property var measurementSystem: locale.measurementSystem - property var textDirection: locale.textDirection - property var weekDays: locale.weekDays - property var uiLanguages: locale.uiLanguages -} diff --git a/tests/auto/declarative/qdeclarativelocale/qdeclarativelocale.pro b/tests/auto/declarative/qdeclarativelocale/qdeclarativelocale.pro deleted file mode 100644 index 75ff0e9504..0000000000 --- a/tests/auto/declarative/qdeclarativelocale/qdeclarativelocale.pro +++ /dev/null @@ -1,15 +0,0 @@ -CONFIG += testcase -TARGET = tst_qdeclarativelocale -macx:CONFIG -= app_bundle - -SOURCES += tst_qdeclarativelocale.cpp - -include (../../shared/util.pri) - -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles - -CONFIG += parallel_test - -QT += declarative testlib diff --git a/tests/auto/declarative/qdeclarativelocale/tst_qdeclarativelocale.cpp b/tests/auto/declarative/qdeclarativelocale/tst_qdeclarativelocale.cpp deleted file mode 100644 index 7d86ad9148..0000000000 --- a/tests/auto/declarative/qdeclarativelocale/tst_qdeclarativelocale.cpp +++ /dev/null @@ -1,1219 +0,0 @@ -/**************************************************************************** -** -** 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_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include <qtest.h> -#include <QDebug> - -#include <QtDeclarative/qdeclarativeengine.h> -#include <QtDeclarative/qdeclarativecomponent.h> -#include <QtCore/QDateTime> -#include <qcolor.h> -#include "../../shared/util.h" - -class tst_qdeclarativelocale : public QDeclarativeDataTest -{ - Q_OBJECT -public: - tst_qdeclarativelocale() { } - -private slots: - void defaultLocale(); - - void properties_data(); - void properties(); - void currencySymbol_data(); - void currencySymbol(); - void monthName_data(); - void monthName(); - void standaloneMonthName_data(); - void standaloneMonthName(); - void dayName_data(); - void dayName(); - void standaloneDayName_data(); - void standaloneDayName(); - void firstDayOfWeek_data(); - void firstDayOfWeek(); - void weekDays_data(); - void weekDays(); - void uiLanguages_data(); - void uiLanguages(); - void dateFormat_data(); - void dateFormat(); - void dateTimeFormat_data(); - void dateTimeFormat(); - void timeFormat_data(); - void timeFormat(); - - void dateToLocaleString_data(); - void dateToLocaleString(); - void dateToLocaleStringFormatted_data(); - void dateToLocaleStringFormatted(); - void dateToLocaleDateString_data(); - void dateToLocaleDateString(); - void dateToLocaleDateStringFormatted_data(); - void dateToLocaleDateStringFormatted(); - void dateToLocaleTimeString_data(); - void dateToLocaleTimeString(); - void dateToLocaleTimeStringFormatted_data(); - void dateToLocaleTimeStringFormatted(); - void dateFromLocaleString_data(); - void dateFromLocaleString(); - void dateFromLocaleDateString_data(); - void dateFromLocaleDateString(); - void dateFromLocaleTimeString_data(); - void dateFromLocaleTimeString(); - - void numberToLocaleString_data(); - void numberToLocaleString(); - void numberToLocaleCurrencyString_data(); - void numberToLocaleCurrencyString(); - void numberFromLocaleString_data(); - void numberFromLocaleString(); - void numberConstToLocaleString(); - - void stringLocaleCompare_data(); - void stringLocaleCompare(); - -private: - void addPropertyData(const QString &l); - QVariant getProperty(QObject *obj, const QString &locale, const QString &property); - void addCurrencySymbolData(const QString &locale); - void addStandardFormatData(); - void addFormatNameData(const QString &locale); - void addDateTimeFormatData(const QString &l); - void addDateFormatData(const QString &l); - void addTimeFormatData(const QString &l); - QDeclarativeEngine engine; -}; - -void tst_qdeclarativelocale::defaultLocale() -{ - QDeclarativeComponent c(&engine, testFileUrl("properties.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QCOMPARE(obj->property("name").toString(), QLocale().name()); -} - -#define LOCALE_PROP(type,prop) { #prop, QVariant(type(qlocale.prop())) } - -void tst_qdeclarativelocale::addPropertyData(const QString &l) -{ - QLocale qlocale(l); - - struct { - const char *name; - QVariant value; - } - values[] = { - LOCALE_PROP(QString,name), - LOCALE_PROP(QString,amText), - LOCALE_PROP(QString,pmText), - LOCALE_PROP(QString,nativeLanguageName), - LOCALE_PROP(QString,nativeCountryName), - LOCALE_PROP(QString,decimalPoint), - LOCALE_PROP(QString,groupSeparator), - LOCALE_PROP(QString,percent), - LOCALE_PROP(QString,zeroDigit), - LOCALE_PROP(QString,negativeSign), - LOCALE_PROP(QString,positiveSign), - LOCALE_PROP(QString,exponential), - LOCALE_PROP(int,measurementSystem), - LOCALE_PROP(int,textDirection), - { 0, QVariant() } - }; - - int i = 0; - while (values[i].name) { - QByteArray n = l.toLatin1() + ':' + values[i].name; - QTest::newRow(n.constData()) << l << QByteArray(values[i].name) << values[i].value; - ++i; - } -} - -void tst_qdeclarativelocale::properties_data() -{ - QTest::addColumn<QString>("locale"); - QTest::addColumn<QByteArray>("property"); - QTest::addColumn<QVariant>("value"); - - addPropertyData("en_US"); - addPropertyData("de_DE"); - addPropertyData("ar_SA"); - addPropertyData("hi_IN"); - addPropertyData("zh_CN"); - addPropertyData("th_TH"); -} - -void tst_qdeclarativelocale::properties() -{ - QFETCH(QString, locale); - QFETCH(QByteArray, property); - QFETCH(QVariant, value); - - QDeclarativeComponent c(&engine, testFileUrl("properties.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - QCOMPARE(obj->property(property), value); - - delete obj; -} - -void tst_qdeclarativelocale::addCurrencySymbolData(const QString &l) -{ - QByteArray locale = l.toLatin1(); - QTest::newRow(locale.constData()) << l << -1; - QByteArray t(locale); - t += " CurrencyIsoCode"; - QTest::newRow(t.constData()) << l << (int)QLocale::CurrencyIsoCode; - t = locale + " CurrencySymbol"; - QTest::newRow(t.constData()) << l << (int)QLocale::CurrencySymbol; - t = locale + " CurrencyDisplayName"; - QTest::newRow(t.constData()) << l << (int)QLocale::CurrencyDisplayName; -} - -void tst_qdeclarativelocale::currencySymbol_data() -{ - QTest::addColumn<QString>("locale"); - QTest::addColumn<int>("param"); - - addCurrencySymbolData("en_US"); - addCurrencySymbolData("de_DE"); - addCurrencySymbolData("ar_SA"); - addCurrencySymbolData("hi_IN"); - addCurrencySymbolData("zh_CN"); - addCurrencySymbolData("th_TH"); -} - -void tst_qdeclarativelocale::currencySymbol() -{ - QFETCH(QString, locale); - QFETCH(int, param); - - QDeclarativeComponent c(&engine, testFileUrl("functions.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QLocale l(locale); - QVariant val; - QLocale::CurrencySymbolFormat format = QLocale::CurrencySymbol; - - if (param >= 0) - format = QLocale::CurrencySymbolFormat(param); - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - QMetaObject::invokeMethod(obj, "currencySymbol", Qt::DirectConnection, - Q_RETURN_ARG(QVariant, val), - Q_ARG(QVariant, QVariant(int(format)))); - - QCOMPARE(val.toString(), l.currencySymbol(format)); - - delete obj; -} - -void tst_qdeclarativelocale::addFormatNameData(const QString &l) -{ - QByteArray locale = l.toLatin1(); - QTest::newRow(locale.constData()) << l << -1; - QByteArray t(locale); - t += " LongFormat"; - QTest::newRow(t.constData()) << l << (int)QLocale::LongFormat; - t = locale + " ShortFormat"; - QTest::newRow(t.constData()) << l << (int)QLocale::ShortFormat; - t = locale + " NarrowFormat"; - QTest::newRow(t.constData()) << l << (int)QLocale::NarrowFormat; -} - -void tst_qdeclarativelocale::addStandardFormatData() -{ - QTest::addColumn<QString>("locale"); - QTest::addColumn<int>("param"); - - addFormatNameData("en_US"); - addFormatNameData("de_DE"); - addFormatNameData("ar_SA"); - addFormatNameData("hi_IN"); - addFormatNameData("zh_CN"); - addFormatNameData("th_TH"); -} - -void tst_qdeclarativelocale::monthName_data() -{ - addStandardFormatData(); -} - -void tst_qdeclarativelocale::monthName() -{ - QFETCH(QString, locale); - QFETCH(int, param); - - QDeclarativeComponent c(&engine, testFileUrl("functions.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QLocale l(locale); - QVariant val; - QLocale::FormatType format = QLocale::LongFormat; - if (param >= 0) - format = QLocale::FormatType(param); - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - for (int i = 0; i <= 11; ++i) { - QMetaObject::invokeMethod(obj, "monthName", Qt::DirectConnection, - Q_RETURN_ARG(QVariant, val), - Q_ARG(QVariant, QVariant(i)), - Q_ARG(QVariant, QVariant(int(format)))); - - // QLocale January == 1, JS Date January == 0 - QCOMPARE(val.toString(), l.monthName(i+1, format)); - } - - delete obj; -} - -void tst_qdeclarativelocale::standaloneMonthName_data() -{ - addStandardFormatData(); -} - -void tst_qdeclarativelocale::standaloneMonthName() -{ - QFETCH(QString, locale); - QFETCH(int, param); - - QDeclarativeComponent c(&engine, testFileUrl("functions.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QLocale l(locale); - QVariant val; - QLocale::FormatType format = QLocale::LongFormat; - if (param >= 0) - format = QLocale::FormatType(param); - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - for (int i = 0; i <= 11; ++i) { - QMetaObject::invokeMethod(obj, "standaloneMonthName", Qt::DirectConnection, - Q_RETURN_ARG(QVariant, val), - Q_ARG(QVariant, QVariant(i)), - Q_ARG(QVariant, QVariant(int(format)))); - - // QLocale January == 1, JS Date January == 0 - QCOMPARE(val.toString(), l.standaloneMonthName(i+1, format)); - } - - delete obj; -} - -void tst_qdeclarativelocale::dayName_data() -{ - addStandardFormatData(); -} - -void tst_qdeclarativelocale::dayName() -{ - QFETCH(QString, locale); - QFETCH(int, param); - - QDeclarativeComponent c(&engine, testFileUrl("functions.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QLocale l(locale); - QVariant val; - QLocale::FormatType format = QLocale::LongFormat; - if (param >= 0) - format = QLocale::FormatType(param); - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - for (int i = 1; i <= 7; ++i) { - QMetaObject::invokeMethod(obj, "dayName", Qt::DirectConnection, - Q_RETURN_ARG(QVariant, val), - Q_ARG(QVariant, QVariant(i)), - Q_ARG(QVariant, QVariant(int(format)))); - - QCOMPARE(val.toString(), l.dayName(i, format)); - } - - delete obj; -} - -void tst_qdeclarativelocale::standaloneDayName_data() -{ - addStandardFormatData(); -} - -void tst_qdeclarativelocale::standaloneDayName() -{ - QFETCH(QString, locale); - QFETCH(int, param); - - QDeclarativeComponent c(&engine, testFileUrl("functions.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QLocale l(locale); - QVariant val; - QLocale::FormatType format = param < 0 ? QLocale::LongFormat : QLocale::FormatType(param); - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - for (int i = 1; i <= 7; ++i) { - QMetaObject::invokeMethod(obj, "standaloneDayName", Qt::DirectConnection, - Q_RETURN_ARG(QVariant, val), - Q_ARG(QVariant, QVariant(i)), - Q_ARG(QVariant, QVariant(int(format)))); - - QCOMPARE(val.toString(), l.standaloneDayName(i, format)); - } - - delete obj; -} - -void tst_qdeclarativelocale::firstDayOfWeek_data() -{ - QTest::addColumn<QString>("locale"); - - QTest::newRow("en_US") << "en_US"; - QTest::newRow("de_DE") << "de_DE"; - QTest::newRow("ar_SA") << "ar_SA"; - QTest::newRow("hi_IN") << "hi_IN"; - QTest::newRow("zh_CN") << "zh_CN"; - QTest::newRow("th_TH") << "th_TH"; -} - -void tst_qdeclarativelocale::firstDayOfWeek() -{ - QFETCH(QString, locale); - - QDeclarativeComponent c(&engine, testFileUrl("properties.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - QVariant val = obj->property("firstDayOfWeek"); - QVERIFY(val.type() == QVariant::Int); - - int day = int(QLocale(locale).firstDayOfWeek()); - if (day == 7) // JS Date days in range 0(Sunday) to 6(Saturday) - day = 0; - QCOMPARE(day, val.toInt()); - - delete obj; -} - -void tst_qdeclarativelocale::weekDays_data() -{ - QTest::addColumn<QString>("locale"); - - QTest::newRow("en_US") << "en_US"; - QTest::newRow("de_DE") << "de_DE"; - QTest::newRow("ar_SA") << "ar_SA"; - QTest::newRow("hi_IN") << "hi_IN"; - QTest::newRow("zh_CN") << "zh_CN"; - QTest::newRow("th_TH") << "th_TH"; -} - -void tst_qdeclarativelocale::weekDays() -{ - QFETCH(QString, locale); - - QDeclarativeComponent c(&engine, testFileUrl("properties.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - QVariant val = obj->property("weekDays"); - QVERIFY(val.type() == QVariant::List); - - QList<QVariant> qmlDays = val.toList(); - QList<Qt::DayOfWeek> days = QLocale(locale).weekdays(); - - QVERIFY(days.count() == qmlDays.count()); - - for (int i = 0; i < days.count(); ++i) { - int day = int(days.at(i)); - if (day == 7) // JS Date days in range 0(Sunday) to 6(Saturday) - day = 0; - QCOMPARE(day, qmlDays.at(i).toInt()); - } - - delete obj; -} - -void tst_qdeclarativelocale::uiLanguages_data() -{ - QTest::addColumn<QString>("locale"); - - QTest::newRow("en_US") << "en_US"; - QTest::newRow("de_DE") << "de_DE"; - QTest::newRow("ar_SA") << "ar_SA"; - QTest::newRow("hi_IN") << "hi_IN"; - QTest::newRow("zh_CN") << "zh_CN"; - QTest::newRow("th_TH") << "th_TH"; -} - -void tst_qdeclarativelocale::uiLanguages() -{ - QFETCH(QString, locale); - - QDeclarativeComponent c(&engine, testFileUrl("properties.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - QVariant val = obj->property("uiLanguages"); - QVERIFY(val.type() == QVariant::List); - - QList<QVariant> qmlLangs = val.toList(); - QStringList langs = QLocale(locale).uiLanguages(); - - QVERIFY(langs.count() == qmlLangs.count()); - - for (int i = 0; i < langs.count(); ++i) { - QCOMPARE(langs.at(i), qmlLangs.at(i).toString()); - } - - delete obj; -} - - -void tst_qdeclarativelocale::dateTimeFormat_data() -{ - addStandardFormatData(); -} - -void tst_qdeclarativelocale::dateTimeFormat() -{ - QFETCH(QString, locale); - QFETCH(int, param); - - QDeclarativeComponent c(&engine, testFileUrl("functions.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QLocale l(locale); - QVariant val; - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - QLocale::FormatType format = param < 0 ? QLocale::LongFormat : QLocale::FormatType(param); - QMetaObject::invokeMethod(obj, "dateTimeFormat", Qt::DirectConnection, - Q_RETURN_ARG(QVariant, val), - Q_ARG(QVariant, QVariant(param))); - - QCOMPARE(val.toString(), l.dateTimeFormat(format)); -} - -void tst_qdeclarativelocale::dateFormat_data() -{ - addStandardFormatData(); -} - -void tst_qdeclarativelocale::dateFormat() -{ - QFETCH(QString, locale); - QFETCH(int, param); - - QDeclarativeComponent c(&engine, testFileUrl("functions.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QLocale l(locale); - QVariant val; - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - QLocale::FormatType format = param < 0 ? QLocale::LongFormat : QLocale::FormatType(param); - QMetaObject::invokeMethod(obj, "dateFormat", Qt::DirectConnection, - Q_RETURN_ARG(QVariant, val), - Q_ARG(QVariant, QVariant(param))); - - QCOMPARE(val.toString(), l.dateFormat(format)); -} - -void tst_qdeclarativelocale::timeFormat_data() -{ - addStandardFormatData(); -} - -void tst_qdeclarativelocale::timeFormat() -{ - QFETCH(QString, locale); - QFETCH(int, param); - - QDeclarativeComponent c(&engine, testFileUrl("functions.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QLocale l(locale); - QVariant val; - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - QLocale::FormatType format = param < 0 ? QLocale::LongFormat : QLocale::FormatType(param); - QMetaObject::invokeMethod(obj, "timeFormat", Qt::DirectConnection, - Q_RETURN_ARG(QVariant, val), - Q_ARG(QVariant, QVariant(param))); - - QCOMPARE(val.toString(), l.timeFormat(format)); -} - -void tst_qdeclarativelocale::dateToLocaleString_data() -{ - addStandardFormatData(); -} - -void tst_qdeclarativelocale::dateToLocaleString() -{ - QFETCH(QString, locale); - QFETCH(int, param); - - QDeclarativeComponent c(&engine, testFileUrl("date.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QDateTime dt; - dt.setDate(QDate(2011, 10, 7)); // weirdly, JS Date month range is 0-11 - dt.setTime(QTime(18, 53, 48, 345)); - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - QLocale::FormatType format = param < 0 ? QLocale::LongFormat : QLocale::FormatType(param); - - QVariant val; - QMetaObject::invokeMethod(obj, "toLocaleString", Qt::DirectConnection, - Q_RETURN_ARG(QVariant, val), - Q_ARG(QVariant, QVariant(param))); - - QLocale l(locale); - QCOMPARE(val.toString(), l.toString(dt, format)); -} - -void tst_qdeclarativelocale::addDateTimeFormatData(const QString &l) -{ - const char *formats[] = { - "hh:mm dd.MM.yyyy", - "h:m:sap ddd MMMM d yy", - "'The date and time is: 'H:mm:ss:zzz dd/MM/yy", - "MMM d yyyy HH:mm t", - 0 - }; - QByteArray locale = l.toLatin1(); - int i = 0; - while (formats[i]) { - QByteArray t(locale); - t += " "; - t += formats[i]; - QTest::newRow(t.constData()) << l << QString(formats[i]); - ++i; - } -} - -void tst_qdeclarativelocale::dateToLocaleStringFormatted_data() -{ - QTest::addColumn<QString>("locale"); - QTest::addColumn<QString>("format"); - - addDateTimeFormatData("en_US"); - addDateTimeFormatData("de_DE"); - addDateTimeFormatData("ar_SA"); - addDateTimeFormatData("hi_IN"); - addDateTimeFormatData("zh_CN"); - addDateTimeFormatData("th_TH"); -} - -void tst_qdeclarativelocale::dateToLocaleStringFormatted() -{ - QFETCH(QString, locale); - QFETCH(QString, format); - - QDeclarativeComponent c(&engine, testFileUrl("date.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QDateTime dt; - dt.setDate(QDate(2011, 10, 7)); // weirdly, JS Date month range is 0-11 - dt.setTime(QTime(18, 53, 48, 345)); - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - QVariant val; - QMetaObject::invokeMethod(obj, "toLocaleString", Qt::DirectConnection, - Q_RETURN_ARG(QVariant, val), - Q_ARG(QVariant, QVariant(format))); - - QLocale l(locale); - QCOMPARE(val.toString(), l.toString(dt, format)); -} - -void tst_qdeclarativelocale::dateToLocaleDateString_data() -{ - addStandardFormatData(); -} - -void tst_qdeclarativelocale::dateToLocaleDateString() -{ - QFETCH(QString, locale); - QFETCH(int, param); - - QDeclarativeComponent c(&engine, testFileUrl("date.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QDateTime dt; - dt.setDate(QDate(2011, 10, 7)); // weirdly, JS Date month range is 0-11 - dt.setTime(QTime(18, 53, 48, 345)); - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - QLocale::FormatType format = param < 0 ? QLocale::LongFormat : QLocale::FormatType(param); - - QVariant val; - QMetaObject::invokeMethod(obj, "toLocaleDateString", Qt::DirectConnection, - Q_RETURN_ARG(QVariant, val), - Q_ARG(QVariant, QVariant(param))); - - QLocale l(locale); - QCOMPARE(val.toString(), l.toString(dt.date(), format)); -} - -void tst_qdeclarativelocale::addDateFormatData(const QString &l) -{ - const char *formats[] = { - "dd.MM.yyyy", - "ddd MMMM d yy", - "'The date is: 'dd/MM/yy", - "MMM d yyyy", - 0 - }; - QByteArray locale = l.toLatin1(); - int i = 0; - while (formats[i]) { - QByteArray t(locale); - t += " "; - t += formats[i]; - QTest::newRow(t.constData()) << l << QString(formats[i]); - ++i; - } -} - -void tst_qdeclarativelocale::dateToLocaleDateStringFormatted_data() -{ - QTest::addColumn<QString>("locale"); - QTest::addColumn<QString>("format"); - - addDateFormatData("en_US"); - addDateFormatData("de_DE"); - addDateFormatData("ar_SA"); - addDateFormatData("hi_IN"); - addDateFormatData("zh_CN"); - addDateFormatData("th_TH"); -} - -void tst_qdeclarativelocale::dateToLocaleDateStringFormatted() -{ - QFETCH(QString, locale); - QFETCH(QString, format); - - QDeclarativeComponent c(&engine, testFileUrl("date.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QDateTime dt; - dt.setDate(QDate(2011, 10, 7)); // weirdly, JS Date month range is 0-11 - dt.setTime(QTime(18, 53, 48, 345)); - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - QVariant val; - QMetaObject::invokeMethod(obj, "toLocaleString", Qt::DirectConnection, - Q_RETURN_ARG(QVariant, val), - Q_ARG(QVariant, QVariant(format))); - - QLocale l(locale); - QCOMPARE(val.toString(), l.toString(dt.date(), format)); -} - -void tst_qdeclarativelocale::dateToLocaleTimeString_data() -{ - addStandardFormatData(); -} - -void tst_qdeclarativelocale::dateToLocaleTimeString() -{ - QFETCH(QString, locale); - QFETCH(int, param); - - QDeclarativeComponent c(&engine, testFileUrl("date.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QDateTime dt; - dt.setDate(QDate(2011, 10, 7)); // weirdly, JS Date month range is 0-11 - dt.setTime(QTime(18, 53, 48, 345)); - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - QLocale::FormatType format = param < 0 ? QLocale::LongFormat : QLocale::FormatType(param); - - QVariant val; - QMetaObject::invokeMethod(obj, "toLocaleTimeString", Qt::DirectConnection, - Q_RETURN_ARG(QVariant, val), - Q_ARG(QVariant, QVariant(param))); - - QLocale l(locale); - QCOMPARE(val.toString(), l.toString(dt.time(), format)); -} - -void tst_qdeclarativelocale::addTimeFormatData(const QString &l) -{ - const char *formats[] = { - "hh:mm", - "h:m:sap", - "'The time is: 'H:mm:ss:zzz", - "HH:mm t", - 0 - }; - QByteArray locale = l.toLatin1(); - int i = 0; - while (formats[i]) { - QByteArray t(locale); - t += " "; - t += formats[i]; - QTest::newRow(t.constData()) << l << QString(formats[i]); - ++i; - } -} - -void tst_qdeclarativelocale::dateToLocaleTimeStringFormatted_data() -{ - QTest::addColumn<QString>("locale"); - QTest::addColumn<QString>("format"); - - addTimeFormatData("en_US"); - addTimeFormatData("de_DE"); - addTimeFormatData("ar_SA"); - addTimeFormatData("hi_IN"); - addTimeFormatData("zh_CN"); - addTimeFormatData("th_TH"); -} - -void tst_qdeclarativelocale::dateToLocaleTimeStringFormatted() -{ - QFETCH(QString, locale); - QFETCH(QString, format); - - QDeclarativeComponent c(&engine, testFileUrl("date.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QDateTime dt; - dt.setDate(QDate(2011, 10, 7)); // weirdly, JS Date month range is 0-11 - dt.setTime(QTime(18, 53, 48, 345)); - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - QVariant val; - QMetaObject::invokeMethod(obj, "toLocaleString", Qt::DirectConnection, - Q_RETURN_ARG(QVariant, val), - Q_ARG(QVariant, QVariant(format))); - - QLocale l(locale); - QCOMPARE(val.toString(), l.toString(dt.time(), format)); -} - -void tst_qdeclarativelocale::dateFromLocaleString_data() -{ - QTest::addColumn<QString>("locale"); - QTest::addColumn<QString>("format"); - - QTest::newRow("en_US 1") << "en_US" << "dddd, MMMM d, yyyy h:mm:ss AP"; - QTest::newRow("en_US long") << "en_US" << QLocale("en_US").dateTimeFormat(); - QTest::newRow("en_US short") << "en_US" << QLocale("en_US").dateTimeFormat(QLocale::ShortFormat); - QTest::newRow("de_DE long") << "de_DE" << QLocale("de_DE").dateTimeFormat(); - QTest::newRow("de_DE short") << "de_DE" << QLocale("de_DE").dateTimeFormat(QLocale::ShortFormat); - QTest::newRow("ar_SA long") << "ar_SA" << QLocale("ar_SA").dateTimeFormat(); - QTest::newRow("ar_SA short") << "ar_SA" << QLocale("ar_SA").dateTimeFormat(QLocale::ShortFormat); - QTest::newRow("zh_CN long") << "zh_CN" << QLocale("zh_CN").dateTimeFormat(); - QTest::newRow("zh_CN short") << "zh_CN" << QLocale("zh_CN").dateTimeFormat(QLocale::ShortFormat); -} - -void tst_qdeclarativelocale::dateFromLocaleString() -{ - QFETCH(QString, locale); - QFETCH(QString, format); - - QDeclarativeComponent c(&engine, testFileUrl("date.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QDateTime dt; - dt.setDate(QDate(2011, 10, 7)); - dt.setTime(QTime(18, 53, 48, 345)); - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - QLocale l(locale); - QVariant val; - QMetaObject::invokeMethod(obj, "fromLocaleString", Qt::DirectConnection, - Q_RETURN_ARG(QVariant, val), - Q_ARG(QVariant, QVariant(l.toString(dt, format))), - Q_ARG(QVariant, QVariant(format))); - - QDateTime pd = l.toDateTime(l.toString(dt, format), format); - QCOMPARE(val.toDateTime(), pd); -} - -void tst_qdeclarativelocale::dateFromLocaleDateString_data() -{ - QTest::addColumn<QString>("locale"); - QTest::addColumn<QString>("format"); - - QTest::newRow("en_US 1") << "en_US" << "dddd, MMMM d, yyyy h:mm:ss AP"; - QTest::newRow("en_US long") << "en_US" << QLocale("en_US").dateTimeFormat(); - QTest::newRow("en_US short") << "en_US" << QLocale("en_US").dateTimeFormat(QLocale::ShortFormat); - QTest::newRow("de_DE long") << "de_DE" << QLocale("de_DE").dateTimeFormat(); - QTest::newRow("de_DE short") << "de_DE" << QLocale("de_DE").dateTimeFormat(QLocale::ShortFormat); - QTest::newRow("ar_SA long") << "ar_SA" << QLocale("ar_SA").dateTimeFormat(); - QTest::newRow("ar_SA short") << "ar_SA" << QLocale("ar_SA").dateTimeFormat(QLocale::ShortFormat); - QTest::newRow("zh_CN long") << "zh_CN" << QLocale("zh_CN").dateTimeFormat(); - QTest::newRow("zh_CN short") << "zh_CN" << QLocale("zh_CN").dateTimeFormat(QLocale::ShortFormat); -} - -void tst_qdeclarativelocale::dateFromLocaleDateString() -{ - QFETCH(QString, locale); - QFETCH(QString, format); - - QDeclarativeComponent c(&engine, testFileUrl("date.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QDateTime dt; - dt.setDate(QDate(2011, 10, 7)); - dt.setTime(QTime(18, 53, 48, 345)); - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - QLocale l(locale); - QVariant val; - QMetaObject::invokeMethod(obj, "fromLocaleDateString", Qt::DirectConnection, - Q_RETURN_ARG(QVariant, val), - Q_ARG(QVariant, QVariant(l.toString(dt, format))), - Q_ARG(QVariant, QVariant(format))); - - QDate pd = l.toDate(l.toString(dt, format), format); - QCOMPARE(val.toDate(), pd); -} - -void tst_qdeclarativelocale::dateFromLocaleTimeString_data() -{ - QTest::addColumn<QString>("locale"); - QTest::addColumn<QString>("format"); - - QTest::newRow("en_US 1") << "en_US" << "dddd, MMMM d, yyyy h:mm:ss AP"; - QTest::newRow("en_US long") << "en_US" << QLocale("en_US").dateTimeFormat(); - QTest::newRow("en_US short") << "en_US" << QLocale("en_US").dateTimeFormat(QLocale::ShortFormat); - QTest::newRow("de_DE long") << "de_DE" << QLocale("de_DE").dateTimeFormat(); - QTest::newRow("de_DE short") << "de_DE" << QLocale("de_DE").dateTimeFormat(QLocale::ShortFormat); - QTest::newRow("ar_SA long") << "ar_SA" << QLocale("ar_SA").dateTimeFormat(); - QTest::newRow("ar_SA short") << "ar_SA" << QLocale("ar_SA").dateTimeFormat(QLocale::ShortFormat); - QTest::newRow("zh_CN long") << "zh_CN" << QLocale("zh_CN").dateTimeFormat(); - QTest::newRow("zh_CN short") << "zh_CN" << QLocale("zh_CN").dateTimeFormat(QLocale::ShortFormat); -} - -void tst_qdeclarativelocale::dateFromLocaleTimeString() -{ - QFETCH(QString, locale); - QFETCH(QString, format); - - QDeclarativeComponent c(&engine, testFileUrl("date.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QDateTime dt; - dt.setDate(QDate(2011, 10, 7)); - dt.setTime(QTime(18, 53, 48, 345)); - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - QLocale l(locale); - QVariant val; - QMetaObject::invokeMethod(obj, "fromLocaleTimeString", Qt::DirectConnection, - Q_RETURN_ARG(QVariant, val), - Q_ARG(QVariant, QVariant(l.toString(dt, format))), - Q_ARG(QVariant, QVariant(format))); - - QTime pd = l.toTime(l.toString(dt, format), format); - QCOMPARE(val.toTime(), pd); -} - -void tst_qdeclarativelocale::numberToLocaleString_data() -{ - QTest::addColumn<QString>("locale"); - QTest::addColumn<char>("format"); - QTest::addColumn<int>("prec"); - - QTest::newRow("en_US 1") << "en_US" << 'f' << 2; - QTest::newRow("en_US 2") << "en_US" << 'g' << 3; - QTest::newRow("en_US 3") << "en_US" << 'f' << 0; - QTest::newRow("en_US 4") << "en_US" << 'f' << -1; - QTest::newRow("de_DE 1") << "de_DE" << 'f' << 2; - QTest::newRow("de_DE 2") << "de_DE" << 'g' << 3; - QTest::newRow("ar_SA 1") << "ar_SA" << 'f' << 2; - QTest::newRow("ar_SA 2") << "ar_SA" << 'g' << 3; -} - -void tst_qdeclarativelocale::numberToLocaleString() -{ - QFETCH(QString, locale); - QFETCH(char, format); - QFETCH(int, prec); - - QDeclarativeComponent c(&engine, testFileUrl("number.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - double number = 2344423.3289; - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - QLocale l(locale); - QVariant val; - QMetaObject::invokeMethod(obj, "toLocaleString", Qt::DirectConnection, - Q_RETURN_ARG(QVariant, val), - Q_ARG(QVariant, QVariant(number)), - Q_ARG(QVariant, QVariant(QString(format))), - Q_ARG(QVariant, QVariant(prec))); - - if (prec < 0) prec = 2; - QCOMPARE(val.toString(), l.toString(number, format, prec)); -} - -void tst_qdeclarativelocale::numberToLocaleCurrencyString_data() -{ - QTest::addColumn<QString>("locale"); - QTest::addColumn<QString>("symbol"); - - QTest::newRow("en_US 1") << "en_US" << QString(); - QTest::newRow("en_US 2") << "en_US" << "USD"; - QTest::newRow("de_DE") << "de_DE" << QString(); - QTest::newRow("ar_SA") << "ar_SA" << QString(); - QTest::newRow("hi_IN") << "hi_IN" << QString(); - QTest::newRow("zh_CN") << "zh_CN" << QString(); - QTest::newRow("th_TH") << "th_TH" << QString(); -} - -void tst_qdeclarativelocale::numberToLocaleCurrencyString() -{ - QFETCH(QString, locale); - QFETCH(QString, symbol); - - QDeclarativeComponent c(&engine, testFileUrl("number.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - double number = 2344423.3289; - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - QLocale l(locale); - QVariant val; - QMetaObject::invokeMethod(obj, "toLocaleCurrencyString", Qt::DirectConnection, - Q_RETURN_ARG(QVariant, val), - Q_ARG(QVariant, QVariant(number)), - Q_ARG(QVariant, QVariant(symbol))); - - QCOMPARE(val.toString(), l.toCurrencyString(number, symbol)); -} - -void tst_qdeclarativelocale::numberFromLocaleString_data() -{ - QTest::addColumn<QString>("locale"); - QTest::addColumn<double>("number"); - - QTest::newRow("en_US 1") << "en_US" << 1234567.2345; - QTest::newRow("en_US 2") << "en_US" << 0.234; - QTest::newRow("en_US 3") << "en_US" << 234.0; - QTest::newRow("de_DE") << "de_DE" << 1234567.2345; - QTest::newRow("ar_SA") << "ar_SA" << 1234567.2345; - QTest::newRow("hi_IN") << "hi_IN" << 1234567.2345; - QTest::newRow("zh_CN") << "zh_CN" << 1234567.2345; - QTest::newRow("th_TH") << "th_TH" << 1234567.2345; -} - -void tst_qdeclarativelocale::numberFromLocaleString() -{ - QFETCH(QString, locale); - QFETCH(double, number); - - QDeclarativeComponent c(&engine, testFileUrl("number.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QLocale l(locale); - QString strNumber = l.toString(number, 'f'); - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant(locale))); - - QVariant val; - QMetaObject::invokeMethod(obj, "fromLocaleString", Qt::DirectConnection, - Q_RETURN_ARG(QVariant, val), - Q_ARG(QVariant, QVariant(strNumber))); - - QCOMPARE(val.toDouble(), l.toDouble(strNumber)); -} - -void tst_qdeclarativelocale::numberConstToLocaleString() -{ - QDeclarativeComponent c(&engine, testFileUrl("number.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection, - Q_ARG(QVariant, QVariant("en_US"))); - - QLocale l("en_US"); - QCOMPARE(obj->property("const1").toString(), l.toString(1234.56, 'f', 2)); - QCOMPARE(obj->property("const2").toString(), l.toString(1234., 'f', 2)); -} - -void tst_qdeclarativelocale::stringLocaleCompare_data() -{ - QTest::addColumn<QString>("string1"); - QTest::addColumn<QString>("string2"); - - QTest::newRow("before") << "a" << "b"; - QTest::newRow("equal") << "a" << "a"; - QTest::newRow("after") << "b" << "a"; - - // Copied from QString::localeAwareCompare tests - // We don't actually change locale - we just care that String.localeCompare() - // matches QString::localeAwareCompare(); - QTest::newRow("swedish1") << QString("\xe5") << QString("\xe4"); - QTest::newRow("swedish2") << QString("\xe4") << QString("\xf6"); - QTest::newRow("swedish3") << QString("\xe5") << QString("\xf6"); - QTest::newRow("swedish4") << QString("z") << QString("\xe5"); - - QTest::newRow("german1") << QString("z") << QString("\xe4"); - QTest::newRow("german2") << QString("\xe4") << QString("\xf6"); - QTest::newRow("german3") << QString("z") << QString("\xf6"); -} - -void tst_qdeclarativelocale::stringLocaleCompare() -{ - QFETCH(QString, string1); - QFETCH(QString, string2); - - QDeclarativeComponent c(&engine, testFileUrl("localeCompare.qml")); - - QObject *obj = c.create(); - QVERIFY(obj); - - obj->setProperty("string1", string1); - obj->setProperty("string2", string2); - - QCOMPARE(obj->property("comparison").toInt(), QString::localeAwareCompare(string1, string2)); -} - -QTEST_MAIN(tst_qdeclarativelocale) - -#include "tst_qdeclarativelocale.moc" |