File indexing completed on 2024-05-12 13:39:52
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 "simpleipv4addressvalidator.h" 0008 #include <QTest> 0009 0010 class SimpleIpv4Test : public QObject 0011 { 0012 Q_OBJECT 0013 0014 public: 0015 SimpleIpv4Test(); 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 SimpleIpV4AddressValidator m_vb; 0027 SimpleIpV4AddressValidator m_vc; 0028 SimpleIpV4AddressValidator m_vp; 0029 }; 0030 0031 SimpleIpv4Test::SimpleIpv4Test() 0032 : m_vb(SimpleIpV4AddressValidator::AddressStyle::Base) 0033 , m_vc(SimpleIpV4AddressValidator::AddressStyle::WithCidr) 0034 , m_vp(SimpleIpV4AddressValidator::AddressStyle::WithPort) 0035 { 0036 } 0037 0038 Q_DECLARE_METATYPE(QValidator::State) 0039 0040 void SimpleIpv4Test::baseTest_data() 0041 { 0042 QTest::addColumn<QString>("address"); 0043 QTest::addColumn<QValidator::State>("result"); 0044 0045 QTest::newRow("empty string") << "" << QValidator::Intermediate; 0046 QTest::newRow("123.12.2") << "123.12.2" << QValidator::Intermediate; 0047 QTest::newRow("123.45.22.9") << "123.45.22.9" << QValidator::Acceptable; 0048 QTest::newRow("1") << "1" << QValidator::Intermediate; 0049 QTest::newRow("12") << "12" << QValidator::Intermediate; 0050 QTest::newRow("123") << "123" << QValidator::Intermediate; 0051 QTest::newRow("123.") << "123." << QValidator::Intermediate; 0052 QTest::newRow("123.4") << "123.4" << QValidator::Intermediate; 0053 QTest::newRow("123.54") << "123.54" << QValidator::Intermediate; 0054 QTest::newRow("123.54.") << "123.54." << QValidator::Intermediate; 0055 QTest::newRow("123.255") << "123.255" << QValidator::Intermediate; 0056 QTest::newRow("123.255.") << "123.255." << QValidator::Intermediate; 0057 QTest::newRow("123.123.9") << "123.123.9" << QValidator::Intermediate; 0058 QTest::newRow("123.34.99") << "123.34.99" << QValidator::Intermediate; 0059 QTest::newRow("123.22.233") << "123.22.233" << QValidator::Intermediate; 0060 QTest::newRow("255.255.255.") << "255.255.255." << QValidator::Intermediate; 0061 QTest::newRow("1.1.1.7") << "1.1.1.7" << QValidator::Acceptable; 0062 QTest::newRow("12a") << "12a" << QValidator::Invalid; 0063 QTest::newRow("255") << "255" << QValidator::Intermediate; 0064 QTest::newRow("256") << "256" << QValidator::Invalid; 0065 QTest::newRow("255.255.255.255") << "255.255.255.255" << QValidator::Acceptable; 0066 QTest::newRow("256.255.255.255") << "256.255.255.255" << QValidator::Invalid; 0067 QTest::newRow("255.256.255.255") << "255.256.255.255" << QValidator::Invalid; 0068 QTest::newRow("255.255.256.255") << "255.255.256.255" << QValidator::Invalid; 0069 QTest::newRow("255.255.255.256") << "255.255.255.256" << QValidator::Invalid; 0070 QTest::newRow("1.1.1.1.") << "1.1.1.1." << QValidator::Invalid; 0071 } 0072 0073 void SimpleIpv4Test::baseTest() 0074 { 0075 int pos; 0076 0077 QFETCH(QString, address); 0078 QFETCH(QValidator::State, result); 0079 0080 QCOMPARE(m_vb.validate(address, pos), result); 0081 } 0082 0083 void SimpleIpv4Test::cidrTest_data() 0084 { 0085 QTest::addColumn<QString>("address"); 0086 QTest::addColumn<QValidator::State>("result"); 0087 0088 QTest::newRow("10.77.18.4/32") << "10.77.18.4/32" << QValidator::Acceptable; 0089 QTest::newRow("10.77.18.4/33") << "10.77.18.4/33" << QValidator::Invalid; 0090 QTest::newRow("10.77.14.8") << "10.77.14.8" << QValidator::Intermediate; 0091 QTest::newRow("10.77.13/") << "10.77.13/" << QValidator::Invalid; 0092 QTest::newRow("33.22.55.44/") << "33.22.55.44/" << QValidator::Intermediate; 0093 QTest::newRow("11.23.45./") << "11.23.45./" << QValidator::Invalid; 0094 QTest::newRow("0.0.0.0/0") << "0.0.0.0/0" << QValidator::Acceptable; 0095 QTest::newRow("1.2.3.4/28/") << "1.2.3.4/28/" << QValidator::Invalid; 0096 QTest::newRow("1.2.3.4//") << "1.2.3.4//" << QValidator::Invalid; 0097 } 0098 0099 void SimpleIpv4Test::cidrTest() 0100 { 0101 int pos; 0102 0103 QFETCH(QString, address); 0104 QFETCH(QValidator::State, result); 0105 0106 QCOMPARE(m_vc.validate(address, pos), result); 0107 } 0108 0109 void SimpleIpv4Test::portTest_data() 0110 { 0111 QTest::addColumn<QString>("address"); 0112 QTest::addColumn<QValidator::State>("result"); 0113 0114 QTest::newRow("10.77.18.4:32") << "10.77.18.4:32" << QValidator::Acceptable; 0115 QTest::newRow("10.77.18.4:65536") << "10.77.18.4:65536" << QValidator::Invalid; 0116 QTest::newRow("10.77.18.4") << "10.77.18.4" << QValidator::Intermediate; 0117 QTest::newRow("10.77.13:") << "10.77.13:" << QValidator::Invalid; 0118 QTest::newRow("33.22.55.44:") << "33.22.55.44:" << QValidator::Intermediate; 0119 QTest::newRow("11.23.45.:") << "11.23.45.:" << QValidator::Invalid; 0120 QTest::newRow("0.0.0.0:65535") << "0.0.0.0:65535" << QValidator::Acceptable; 0121 QTest::newRow("1.2.3.4:0:") << "1.2.3.4:0:" << QValidator::Invalid; 0122 QTest::newRow("1.2.3.4::") << "1.2.3.4::" << QValidator::Invalid; 0123 } 0124 0125 void SimpleIpv4Test::portTest() 0126 { 0127 int pos; 0128 0129 QFETCH(QString, address); 0130 QFETCH(QValidator::State, result); 0131 0132 QCOMPARE(m_vp.validate(address, pos), result); 0133 } 0134 0135 QTEST_APPLESS_MAIN(SimpleIpv4Test) 0136 0137 #include "simpleipv4test.moc"