]> git.ipfire.org Git - thirdparty/squid.git/blame - src/base/testCharacterSet.cc
SourceFormat Enforcement
[thirdparty/squid.git] / src / base / testCharacterSet.cc
CommitLineData
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
15CPPUNIT_TEST_SUITE_REGISTRATION( testCharacterSet );
16
17void
18testCharacterSet::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
42void
43testCharacterSet::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
51void
52testCharacterSet::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
62void
63testCharacterSet::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
72void
73testCharacterSet::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