File indexing completed on 2024-04-14 15:40:09

0001 /*
0002     SPDX-FileCopyrightText: 2018 Bruce Anderson <banderson19com@san.rr.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005 */
0006 
0007 #include "simpleiplistvalidator.h"
0008 #include <QTest>
0009 
0010 class SimpleipListTest : public QObject
0011 {
0012     Q_OBJECT
0013 
0014 public:
0015     SimpleipListTest();
0016 
0017 private Q_SLOTS:
0018     void baseTest();
0019     void baseTest_data();
0020     void cidrTest();
0021     void cidrTest_data();
0022     void portTest();
0023     void portTest_data();
0024 
0025 private:
0026     SimpleIpListValidator m_vb;
0027     SimpleIpListValidator m_vc;
0028     SimpleIpListValidator m_vp;
0029 };
0030 
0031 SimpleipListTest::SimpleipListTest()
0032     : m_vb(SimpleIpListValidator::AddressStyle::Base)
0033     , m_vc(SimpleIpListValidator::AddressStyle::WithCidr)
0034     , m_vp(SimpleIpListValidator::AddressStyle::WithPort)
0035 {
0036 }
0037 
0038 Q_DECLARE_METATYPE(QValidator::State)
0039 
0040 void SimpleipListTest::baseTest_data()
0041 {
0042     QTest::addColumn<QString>("address");
0043     QTest::addColumn<QValidator::State>("result");
0044 
0045     QTest::newRow("") << "" << QValidator::Intermediate;
0046     QTest::newRow("123.12.2") << "123.12.2" << QValidator::Intermediate;
0047     QTest::newRow("123.12.2,") << "123.12.2," << QValidator::Invalid;
0048     QTest::newRow("123.45.22.9") << "123.45.22.9" << QValidator::Acceptable;
0049     QTest::newRow("123.45.22.9,") << "123.45.22.9," << QValidator::Intermediate;
0050     QTest::newRow("123.45.22.9,  ") << "123.45.22.9,  " << QValidator::Intermediate;
0051     QTest::newRow("123.45.22,") << "123.45.22," << QValidator::Invalid;
0052     QTest::newRow("123.45.22.9,  BBEf:0112") << "123.45.22.9,  BBEf:0112" << QValidator::Intermediate;
0053     QTest::newRow("123.45.22.9,  BBEf:0112::1") << "123.45.22.9,  BBEf:0112::1" << QValidator::Acceptable;
0054     QTest::newRow("123.45.22.9,  BBEf:0112:,") << "123.45.22.9,  BBEf:0112:," << QValidator::Invalid;
0055     QTest::newRow("123.45.22.9,  BBEf:0112::1,") << "123.45.22.9,  BBEf:0112::1," << QValidator::Intermediate;
0056     QTest::newRow("123.45.22.9,  BBEf:0112::1/123,") << "123.45.22.9,  BBEf:0112::1/123," << QValidator::Invalid;
0057     QTest::newRow("123.45.22.9,  BBEf:0112::1,1.2.3.4") << "123.45.22.9,  BBEf:0112::1,1.2.3.4" << QValidator::Acceptable;
0058 }
0059 
0060 void SimpleipListTest::baseTest()
0061 {
0062     int pos;
0063 
0064     QFETCH(QString, address);
0065     QFETCH(QValidator::State, result);
0066 
0067     QCOMPARE(m_vb.validate(address, pos), result);
0068 }
0069 
0070 void SimpleipListTest::cidrTest_data()
0071 {
0072     QTest::addColumn<QString>("address");
0073     QTest::addColumn<QValidator::State>("result");
0074 
0075     QTest::newRow("10.77.18.4/32") << "10.77.18.4/32" << QValidator::Acceptable;
0076     QTest::newRow("10.77.18.4/32,") << "10.77.18.4/32," << QValidator::Intermediate;
0077     QTest::newRow("10.77.18.4/32,Be00:e00:0:") << "10.77.18.4/32,Be00:e00:0:" << QValidator::Intermediate;
0078     QTest::newRow("10.77.18.4/32,Be00:e00:0:21/3") << "10.77.18.4/32,Be00:e00:0:21/3" << QValidator::Invalid;
0079     QTest::newRow("10.77.18.4/32,Be00:e00::0:21/128") << "10.77.18.4/32,Be00:e00::0:21/128" << QValidator::Acceptable;
0080     QTest::newRow("10.77.18.4/32,Be00:e00::0:21/129") << "10.77.18.4/32,Be00:e00::0:21/129" << QValidator::Invalid;
0081 }
0082 
0083 void SimpleipListTest::cidrTest()
0084 {
0085     int pos;
0086 
0087     QFETCH(QString, address);
0088     QFETCH(QValidator::State, result);
0089 
0090     QCOMPARE(m_vc.validate(address, pos), result);
0091 }
0092 
0093 void SimpleipListTest::portTest_data()
0094 {
0095     QTest::addColumn<QString>("address");
0096     QTest::addColumn<QValidator::State>("result");
0097 
0098     QTest::newRow("10.77.18.4:32") << "10.77.18.4:32" << QValidator::Acceptable;
0099     QTest::newRow("10.77.18.4:,") << "10.77.18.4:," << QValidator::Invalid;
0100     QTest::newRow("10.77.18.4:234, 1") << "10.77.18.4:234, 1" << QValidator::Intermediate;
0101     QTest::newRow("10.77.18.4:234, 1b") << "10.77.18.4:234, 1b" << QValidator::Invalid;
0102     QTest::newRow("10.77.18.4:234, [1b") << "10.77.18.4:234, [1b" << QValidator::Intermediate;
0103     QTest::newRow("10.77.18.4:234, [10:33:22::1") << "10.77.18.4:234, [10:33:22::1" << QValidator::Intermediate;
0104     QTest::newRow("10.77.18.4:234, [10:33:22::1]") << "10.77.18.4:234, [10:33:22::1]" << QValidator::Intermediate;
0105     QTest::newRow("10.77.18.4:234, [10:33:22::1]:") << "10.77.18.4:234, [10:33:22::1]:" << QValidator::Intermediate;
0106     QTest::newRow("10.77.18.4:234, [10:33:22::1]:22") << "10.77.18.4:234, [10:33:22::1]:22" << QValidator::Acceptable;
0107     QTest::newRow("10.77.18.4:234, [10:33:22::1]:22,12.23.34.45:65535") << "10.77.18.4:234, [10:33:22::1]:22,12.23.34.45:65535" << QValidator::Acceptable;
0108 }
0109 
0110 void SimpleipListTest::portTest()
0111 {
0112     int pos;
0113 
0114     QFETCH(QString, address);
0115     QFETCH(QValidator::State, result);
0116 
0117     QCOMPARE(m_vp.validate(address, pos), result);
0118 }
0119 
0120 QTEST_GUILESS_MAIN(SimpleipListTest)
0121 
0122 #include "simpleiplisttest.moc"