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