summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/util/qdoublevalidator/tst_qdoublevalidator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/gui/util/qdoublevalidator/tst_qdoublevalidator.cpp')
-rw-r--r--tests/auto/gui/util/qdoublevalidator/tst_qdoublevalidator.cpp86
1 files changed, 69 insertions, 17 deletions
diff --git a/tests/auto/gui/util/qdoublevalidator/tst_qdoublevalidator.cpp b/tests/auto/gui/util/qdoublevalidator/tst_qdoublevalidator.cpp
index 78ab769137..4705fc3ed7 100644
--- a/tests/auto/gui/util/qdoublevalidator/tst_qdoublevalidator.cpp
+++ b/tests/auto/gui/util/qdoublevalidator/tst_qdoublevalidator.cpp
@@ -1,31 +1,26 @@
/****************************************************************************
**
-** Copyright (C) 2015 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
**
** This file is part of the test suite of the Qt Toolkit.
**
-** $QT_BEGIN_LICENSE:LGPL21$
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 or version 3 as published by the Free
-** Software Foundation and appearing in the file LICENSE.LGPLv21 and
-** LICENSE.LGPLv3 included in the packaging of this file. Please review the
-** following information to ensure the GNU Lesser General Public License
-** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** As a special exception, The Qt Company gives you certain additional
-** rights. These rights are described in The Qt Company 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
@@ -43,6 +38,8 @@ class tst_QDoubleValidator : public QObject
private slots:
void validate_data();
void validate();
+ void zeroPaddedExponent_data();
+ void zeroPaddedExponent();
void validateThouSep_data();
void validateThouSep();
void validateIntEquiv_data();
@@ -240,6 +237,61 @@ void tst_QDoubleValidator::validate()
dv.setNotation(QDoubleValidator::StandardNotation);
QCOMPARE((int)dv.validate(value, dummy), (int)standard_state);
}
+
+void tst_QDoubleValidator::zeroPaddedExponent_data()
+{
+ QTest::addColumn<double>("minimum");
+ QTest::addColumn<double>("maximum");
+ QTest::addColumn<int>("decimals");
+ QTest::addColumn<QString>("value");
+ QTest::addColumn<bool>("rejectZeroPaddedExponent");
+ QTest::addColumn<QValidator::State>("state");
+
+ QTest::newRow("data01") << 1229.0 << 1231.0 << 0 << QString("123e+1") << false << ACC;
+ QTest::newRow("data02") << 12290.0 << 12310.0 << 0 << QString("123e2") << false << ACC;
+ QTest::newRow("data03") << 12.290 << 12.310 << 2 << QString("123e-") << false << ITM;
+ QTest::newRow("data04") << 12.290 << 12.310 << 2 << QString("123e-1") << false << ACC;
+ QTest::newRow("data05") << 1.2290 << 1.2310 << 3 << QString("123e-2") << false << ACC;
+
+ QTest::newRow("data11") << 1229.0 << 1231.0 << 0 << QString("123e+1") << true << ACC;
+ QTest::newRow("data12") << 12290.0 << 12310.0 << 0 << QString("123e2") << true << ACC;
+ QTest::newRow("data13") << 12.290 << 12.310 << 2 << QString("123e-") << true << ITM;
+ QTest::newRow("data14") << 12.290 << 12.310 << 2 << QString("123e-1") << true << ACC;
+ QTest::newRow("data15") << 1.2290 << 1.2310 << 3 << QString("123e-2") << true << ACC;
+
+ QTest::newRow("data21") << 1229.0 << 1231.0 << 0 << QString("123e+01") << false << ACC;
+ QTest::newRow("data22") << 12290.0 << 12310.0 << 0 << QString("123e02") << false << ACC;
+ QTest::newRow("data23") << 12.290 << 12.310 << 2 << QString("123e-0") << false << ITM;
+ QTest::newRow("data24") << 12.290 << 12.310 << 2 << QString("123e-01") << false << ACC;
+ QTest::newRow("data25") << 1.2290 << 1.2310 << 3 << QString("123e-02") << false << ACC;
+
+ QTest::newRow("data31") << 1229.0 << 1231.0 << 0 << QString("123e+01") << true << INV;
+ QTest::newRow("data32") << 12290.0 << 12310.0 << 0 << QString("123e02") << true << INV;
+ QTest::newRow("data33") << 12.290 << 12.310 << 2 << QString("123e-0") << true << INV;
+ QTest::newRow("data34") << 12.290 << 12.310 << 2 << QString("123e-01") << true << INV;
+ QTest::newRow("data35") << 1.2290 << 1.2310 << 3 << QString("123e-02") << true << INV;
+
+}
+
+void tst_QDoubleValidator::zeroPaddedExponent()
+{
+ QFETCH(double, minimum);
+ QFETCH(double, maximum);
+ QFETCH(int, decimals);
+ QFETCH(QString, value);
+ QFETCH(bool, rejectZeroPaddedExponent);
+ QFETCH(QValidator::State, state);
+
+ QLocale locale(QLocale::C);
+ if (rejectZeroPaddedExponent)
+ locale.setNumberOptions(QLocale::RejectLeadingZeroInExponent);
+
+ QDoubleValidator dv(minimum, maximum, decimals, 0);
+ dv.setLocale(locale);
+ int dummy;
+ QCOMPARE((int)dv.validate(value, dummy), (int)state);
+}
+
void tst_QDoubleValidator::notifySignals()
{
QLocale::setDefault(QLocale("C"));