File indexing completed on 2024-04-28 05:50:04
0001 /* 0002 * SPDX-License-Identifier: GPL-3.0-or-later 0003 * SPDX-FileCopyrightText: 2020 Johan Ouwerkerk <jm.ouwerkerk@gmail.com> 0004 */ 0005 #include "oath/oath.h" 0006 0007 #include <QTest> 0008 #include <QtDebug> 0009 0010 class DefaultEncoderTest: public QObject 0011 { 0012 Q_OBJECT 0013 private Q_SLOTS: 0014 void encode(void); 0015 void encode_data(void); 0016 }; 0017 0018 static void define_test_case(quint32 value, uint tokenLength, bool checksum, const QString &expected) 0019 { 0020 static const QString testCase(QLatin1String("%1 (%2, %3) ... %4")); 0021 QTest::newRow(qPrintable(testCase.arg(value).arg(tokenLength).arg(checksum ? QLatin1String("with checksum") : QLatin1String("without checksum")).arg(expected))) 0022 << value << checksum << tokenLength << expected; 0023 } 0024 0025 void DefaultEncoderTest::encode(void) 0026 { 0027 QFETCH(quint32, value); 0028 QFETCH(bool, checksum); 0029 QFETCH(uint, tokenLength); 0030 0031 oath::Encoder uut(tokenLength, checksum); 0032 QTEST(uut.encode(value), "expected"); 0033 } 0034 0035 void DefaultEncoderTest::encode_data(void) 0036 { 0037 QTest::addColumn<quint32>("value"); 0038 QTest::addColumn<bool>("checksum"); 0039 QTest::addColumn<uint>("tokenLength"); 0040 QTest::addColumn<QString>("expected"); 0041 0042 define_test_case(23, 6, false, QLatin1String("000023")); 0043 define_test_case(23, 6, true, QLatin1String("0000232")); 0044 define_test_case(151'230'000, 9, false, QLatin1String("151230000")); 0045 define_test_case(151'230'000, 9, true, QLatin1String("1512300003")); 0046 define_test_case(175'230'000, 7, false, QLatin1String("5230000")); 0047 define_test_case(175'230'000, 7, true, QLatin1String("52300001")); 0048 define_test_case(2'000'000'009, 10, false, QLatin1String("2000000009")); 0049 define_test_case(2'000'000'009, 10, true, QLatin1String("20000000099")); 0050 } 0051 0052 QTEST_APPLESS_MAIN(DefaultEncoderTest) 0053 0054 #include "encode-token-defaults.moc"