]> git.ipfire.org Git - thirdparty/squid.git/blame - src/tests/testCharacterSet.cc
SourceFormat Enforcement
[thirdparty/squid.git] / src / tests / testCharacterSet.cc
CommitLineData
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
16CPPUNIT_TEST_SUITE_REGISTRATION( testCharacterSet );
17
18void
19testCharacterSet::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
43void
44testCharacterSet::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
52void
53testCharacterSet::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
63void
64testCharacterSet::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
73void
74testCharacterSet::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