aboutsummaryrefslogtreecommitdiff
path: root/plugins/HostlistFilter/test/rule.cpp
blob: 5ee98819152493a9bbeddd846b853651cb0e6d4d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#define CATCH_CONFIG_MAIN
#include "filterlist.h"
#include <catch2/catch.hpp>

// clazy:skip

using namespace Hostlist;

SCENARIO("Hostlist::Rule")
{
    GIVEN("an invalid rule")
    {
        QStringList b;
        QHash<QString, QString> r;
        parseRule("0.0.0.0 ", b, r);

        REQUIRE(b.empty());
        REQUIRE(r.empty());
    }
    GIVEN("127.0.0.1 localhost.localdomain")
    {
        QStringList b;
        QHash<QString, QString> r;
        parseRule("127.0.0.1 localhost.localdomain", b, r);

        REQUIRE(b.empty());
        REQUIRE(r.size() == 1);

        REQUIRE(r.value("localhost.localdomain") == "127.0.0.1");
    }

    GIVEN("0.0.0.0 blockeddomain.com")
    {
        QStringList b;
        QHash<QString, QString> r;
        parseRule("0.0.0.0 blockeddomain.com", b, r);

        REQUIRE(b.size() == 1);
        REQUIRE(r.empty());

        REQUIRE(b.contains("blockeddomain.com"));
        ;
    }

    GIVEN("0.0.0.0 blockeddomain.first blockeddomain.second")
    {
        QStringList b;
        QHash<QString, QString> r;
        parseRule("0.0.0.0 blockeddomain.first blockeddomain.second", b, r);

        REQUIRE(b.size() == 2);
        REQUIRE(r.empty());

        REQUIRE(b.contains("blockeddomain.first"));
        REQUIRE(b.contains("blockeddomain.second"));
    }
}