]> git.ipfire.org Git - thirdparty/squid.git/blob - src/tests/testString.cc
SourceFormat Enforcement
[thirdparty/squid.git] / src / tests / testString.cc
1 #define SQUID_UNIT_TEST 1
2
3 #include "squid.h"
4 #include "event.h"
5 #include "Mem.h"
6 #include "SquidString.h"
7 #include "testString.h"
8
9 CPPUNIT_TEST_SUITE_REGISTRATION( testString );
10
11 /* let this test link sanely */
12 void
13 eventAdd(const char *name, EVH * func, void *arg, double when, int, bool cbdata)
14 {}
15
16 /* init memory pools */
17
18 void
19 testString::setUp()
20 {
21 Mem::Init();
22 }
23
24 void
25 testString::testCmpDefault()
26 {
27 String left, right;
28 /* two default strings are equal */
29 CPPUNIT_ASSERT(!left.cmp(right));
30 CPPUNIT_ASSERT(!left.cmp(NULL));
31 CPPUNIT_ASSERT(!left.cmp(NULL, 1));
32 }
33
34 void
35 testString::testCmpEmptyString()
36 {
37 String left("");
38 String right;
39 /* an empty string ("") is equal to a default string */
40 CPPUNIT_ASSERT(!left.cmp(right));
41 CPPUNIT_ASSERT(!left.cmp(NULL));
42 CPPUNIT_ASSERT(!left.cmp(NULL, 1));
43 /* reverse the order to catch corners */
44 CPPUNIT_ASSERT(!right.cmp(left));
45 CPPUNIT_ASSERT(!right.cmp(""));
46 CPPUNIT_ASSERT(!right.cmp("", 1));
47 }
48
49 void
50 testString::testCmpNotEmptyDefault()
51 {
52 String left("foo");
53 String right;
54 /* empty string sorts before everything */
55 CPPUNIT_ASSERT(left.cmp(right) > 0);
56 CPPUNIT_ASSERT(left.cmp(NULL) > 0);
57 CPPUNIT_ASSERT(left.cmp(NULL, 1) > 0);
58 /* reverse for symmetry tests */
59 CPPUNIT_ASSERT(right.cmp(left) < 0);
60 CPPUNIT_ASSERT(right.cmp("foo") < 0);
61 CPPUNIT_ASSERT(right.cmp("foo", 1) < 0);
62 }
63
64 void testString::testSubstr()
65 {
66 String s("0123456789");
67 String check=s.substr(3,5);
68 String ref("34");
69 CPPUNIT_ASSERT(check == ref);
70 }