| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 | 
							- //
 - // Created by robin on 1/9/18.
 - //
 - 
 - #include <gtest/gtest.h>
 - #include <QByteArray>
 - #include <QString>
 - 
 - #include "dns-base/QDnsLabel.h"
 - 
 - struct DnsLabelParseTestParams
 - {
 -     bool isValid;
 -     const char* hexData;
 -     quint32 pos;
 -     const char* label;
 - };
 - 
 - class DnsLabelParseTest : public ::testing::TestWithParam<DnsLabelParseTestParams>
 - {
 - };
 - 
 - TEST_P(DnsLabelParseTest, parse)
 - {
 -     auto params = GetParam();
 -     auto data = QByteArray::fromHex(params.hexData);
 -     auto label = QDns::QDnsLabel::parse(data, params.pos);
 -     if (params.isValid)
 -     {
 -         ASSERT_FALSE(label.isNull());
 -         ASSERT_STREQ(params.label, label.toStdString().c_str());
 -     }
 -     else
 -     {
 -         ASSERT_TRUE(label.isNull());
 -     }
 - }
 - 
 - INSTANTIATE_TEST_CASE_P(DnsLabelParseTestInst,
 -                         DnsLabelParseTest,
 -                         ::testing::Values(
 -                                 DnsLabelParseTestParams {false, "", 0},
 -                                 DnsLabelParseTestParams {true, "00", 0, ""},
 -                                 DnsLabelParseTestParams {true,
 -                                                          "06676f6f676c6502667200",
 -                                                          0,
 -                                                          "google.fr"
 -                                 },
 -                                 DnsLabelParseTestParams {true,
 -                                                          "587a8180000100010000000006676f6f676c650266720000010001c00c000100010000012c0004acd912a3",
 -                                                          12,
 -                                                          "google.fr"
 -                                 },
 -                                 DnsLabelParseTestParams {true,
 -                                                          "587a8180000100010000000006676f6f676c650266720000010001c00c000100010000012c0004acd912a3",
 -                                                          27,
 -                                                          "google.fr"
 -                                 },
 -                                 DnsLabelParseTestParams {true,
 -                                                          "3dcd8580000100020000000003777777067274686f6e6903636f6d0000010001c00c00050001000002580008057365727633c010c02c00010001000002580004d5f6343d",
 -                                                          12,
 -                                                          "www.rthoni.com"
 -                                 },
 -                                 DnsLabelParseTestParams {true,
 -                                                          "3dcd8580000100020000000003777777067274686f6e6903636f6d0000010001c00c00050001000002580008057365727633c010c02c00010001000002580004d5f6343d",
 -                                                          32,
 -                                                          "www.rthoni.com"
 -                                 },
 -                                 DnsLabelParseTestParams {true,
 -                                                          "3dcd8580000100020000000003777777067274686f6e6903636f6d0000010001c00c00050001000002580008057365727633c010c02c00010001000002580004d5f6343d",
 -                                                          44,
 -                                                          "serv3.rthoni.com"
 -                                 },
 -                                 DnsLabelParseTestParams {false,
 -                                                          "3dcd8580000100020000000003777777067274686f6e6903636f6d0000010001c00c00050001000002580008057365727633 c02c c02c00010001000002580004d5f6343d",
 -                                                          44
 -                                 },
 -                                 DnsLabelParseTestParams {false,
 -                                                          "3dcd8580000100020000000003777777067274686f6e6903636f6d0000010001c00c00050001000002580008057365727633 802c c02c00010001000002580004d5f6343d",
 -                                                          44
 -                                 },
 -                                 DnsLabelParseTestParams {false,
 -                                                          "3dcd8580000100020000000003777777067274686f6e6903636f6d0000010001c00c00050001000002580008057365727633 402c c02c00010001000002580004d5f6343d",
 -                                                          44
 -                                 }
 -                         ));
 - 
 - 
 - struct DnsLabelSerializeTestParams
 - {
 -     const char* label;
 -     const char* hexData;
 - };
 - 
 - class DnsLabelSerializeTest : public ::testing::TestWithParam<DnsLabelSerializeTestParams>
 - {
 - };
 - 
 - TEST_P(DnsLabelSerializeTest, parse)
 - {
 -     auto params = GetParam();
 -     auto label = QDns::QDnsLabel::serialize(params.label);
 -     auto data = QByteArray::fromHex(params.hexData);
 -     ASSERT_EQ(label, data);
 - }
 - 
 - INSTANTIATE_TEST_CASE_P(DnsLabelSerializeTestInst,
 -                         DnsLabelSerializeTest,
 -                         ::testing::Values(
 -                                 DnsLabelSerializeTestParams {"", "00"},
 -                                 DnsLabelSerializeTestParams {"com", "03636f6d00"},
 -                                 DnsLabelSerializeTestParams {"fr", "02667200"},
 -                                 DnsLabelSerializeTestParams {"google.fr", "06676f6f676c6502667200"},
 -                                 DnsLabelSerializeTestParams {"www.rthoni.com", "03777777067274686f6e6903636f6d00"}
 -                         ));
 
 
  |