]>
Commit | Line | Data |
---|---|---|
bbc27441 | 1 | /* |
ef57eb7b | 2 | * Copyright (C) 1996-2016 The Squid Software Foundation and contributors |
bbc27441 AJ |
3 | * |
4 | * Squid software is distributed under GPLv2+ license and includes | |
5 | * contributions from numerous individuals and organizations. | |
6 | * Please see the COPYING and CONTRIBUTORS files for details. | |
7 | */ | |
8 | ||
18538c13 FC |
9 | #include "squid.h" |
10 | #include "base/CharacterSet.h" | |
11 | #include "testCharacterSet.h" | |
7f861c77 AJ |
12 | #include "unitTestMain.h" |
13 | ||
18538c13 FC |
14 | #include <string> |
15 | ||
16 | CPPUNIT_TEST_SUITE_REGISTRATION( testCharacterSet ); | |
17 | ||
18 | void | |
19 | testCharacterSet::CharacterSetConstruction() | |
20 | { | |
21 | { | |
22 | CharacterSet t(NULL,""); | |
23 | CPPUNIT_ASSERT_EQUAL(std::string("anonymous"),std::string(t.name)); | |
24 | } | |
25 | { | |
26 | CharacterSet t("test",""); | |
27 | CPPUNIT_ASSERT_EQUAL(std::string("test"),std::string(t.name)); | |
28 | } | |
29 | { | |
30 | CharacterSet t("test",""); | |
31 | for (int j = 0; j < 255; ++j) | |
32 | CPPUNIT_ASSERT_EQUAL(false,t[j]); | |
33 | } | |
34 | { | |
35 | CharacterSet t("test","0"); | |
36 | CPPUNIT_ASSERT_EQUAL(true,t['0']); | |
37 | for (int j = 0; j < 255; ++j) | |
38 | if (j != '0') | |
39 | CPPUNIT_ASSERT_EQUAL(false,t[j]); | |
40 | } | |
41 | } | |
42 | ||
43 | void | |
44 | testCharacterSet::CharacterSetAdd() | |
45 | { | |
46 | CharacterSet t("test","0"); | |
47 | t.add(0); | |
48 | CPPUNIT_ASSERT_EQUAL(true,t['\0']); | |
49 | CPPUNIT_ASSERT_EQUAL(true,t['0']); | |
50 | } | |
51 | ||
52 | void | |
53 | testCharacterSet::CharacterSetAddRange() | |
54 | { | |
55 | CharacterSet t("test",""); | |
decd2fc6 | 56 | t.addRange('0','9'); |
18538c13 FC |
57 | CPPUNIT_ASSERT_EQUAL(true,t['0']); |
58 | CPPUNIT_ASSERT_EQUAL(true,t['5']); | |
59 | CPPUNIT_ASSERT_EQUAL(true,t['9']); | |
60 | CPPUNIT_ASSERT_EQUAL(false,t['a']); | |
61 | } | |
8664ceb4 FC |
62 | |
63 | void | |
64 | testCharacterSet::CharacterSetConstants() | |
65 | { | |
66 | CPPUNIT_ASSERT_EQUAL(true,CharacterSet::ALPHA['a']); | |
67 | CPPUNIT_ASSERT_EQUAL(true,CharacterSet::ALPHA['z']); | |
68 | CPPUNIT_ASSERT_EQUAL(true,CharacterSet::ALPHA['A']); | |
69 | CPPUNIT_ASSERT_EQUAL(true,CharacterSet::ALPHA['Z']); | |
70 | CPPUNIT_ASSERT_EQUAL(false,CharacterSet::ALPHA['5']); | |
71 | } | |
7d1cd883 FC |
72 | |
73 | void | |
74 | testCharacterSet::CharacterSetUnion() | |
75 | { | |
76 | { | |
77 | CharacterSet hex("hex",""); | |
78 | hex += CharacterSet::DIGIT; | |
79 | hex += CharacterSet(NULL,"aAbBcCdDeEfF"); | |
80 | for (int j = 0; j < 255; ++j) | |
81 | CPPUNIT_ASSERT_EQUAL(CharacterSet::HEXDIG[j],hex[j]); | |
82 | } | |
83 | { | |
84 | CharacterSet hex(NULL,""); | |
85 | hex = CharacterSet::DIGIT + CharacterSet(NULL,"aAbBcCdDeEfF"); | |
86 | for (int j = 0; j < 255; ++j) | |
87 | CPPUNIT_ASSERT_EQUAL(CharacterSet::HEXDIG[j],hex[j]); | |
88 | } | |
89 | } | |
f53969cc | 90 |