1 /*
2  * Unit tests for src/fs/
3  */
4 
5 #include "config.h"
6 #include "fs/Glob.hxx"
7 
8 #include <gtest/gtest.h>
9 
10 #ifdef HAVE_CLASS_GLOB
11 
TEST(Glob,Basic)12 TEST(Glob, Basic)
13 {
14 	const Glob glob("foo");
15 	EXPECT_TRUE(glob.Check("foo"));
16 	EXPECT_FALSE(glob.Check("fooo"));
17 	EXPECT_FALSE(glob.Check("_foo"));
18 	EXPECT_FALSE(glob.Check("a/foo"));
19 	EXPECT_FALSE(glob.Check(""));
20 	EXPECT_FALSE(glob.Check("*"));
21 }
22 
TEST(Glob,Asterisk)23 TEST(Glob, Asterisk)
24 {
25 	const Glob glob("*");
26 	EXPECT_TRUE(glob.Check("foo"));
27 	EXPECT_TRUE(glob.Check("bar"));
28 	EXPECT_TRUE(glob.Check("*"));
29 	EXPECT_TRUE(glob.Check("?"));
30 }
31 
TEST(Glob,QuestionMark)32 TEST(Glob, QuestionMark)
33 {
34 	const Glob glob("foo?bar");
35 	EXPECT_TRUE(glob.Check("foo_bar"));
36 	EXPECT_TRUE(glob.Check("foo?bar"));
37 	EXPECT_TRUE(glob.Check("foo bar"));
38 	EXPECT_FALSE(glob.Check("foobar"));
39 	EXPECT_FALSE(glob.Check("foo__bar"));
40 }
41 
TEST(Glob,Wildcard)42 TEST(Glob, Wildcard)
43 {
44 	const Glob glob("foo*bar");
45 	EXPECT_TRUE(glob.Check("foo_bar"));
46 	EXPECT_TRUE(glob.Check("foo?bar"));
47 	EXPECT_TRUE(glob.Check("foo bar"));
48 	EXPECT_TRUE(glob.Check("foobar"));
49 	EXPECT_TRUE(glob.Check("foo__bar"));
50 	EXPECT_FALSE(glob.Check("_foobar"));
51 	EXPECT_FALSE(glob.Check("foobar_"));
52 }
53 
TEST(Glob,PrefixWildcard)54 TEST(Glob, PrefixWildcard)
55 {
56 	const Glob glob("*bar");
57 	EXPECT_TRUE(glob.Check("foo_bar"));
58 	EXPECT_TRUE(glob.Check("foo?bar"));
59 	EXPECT_TRUE(glob.Check("foo bar"));
60 	EXPECT_TRUE(glob.Check("foobar"));
61 	EXPECT_TRUE(glob.Check("foo__bar"));
62 	EXPECT_TRUE(glob.Check("_foobar"));
63 	EXPECT_TRUE(glob.Check("bar"));
64 	EXPECT_FALSE(glob.Check("foobar_"));
65 }
66 
TEST(Glob,SuffixWildcard)67 TEST(Glob, SuffixWildcard)
68 {
69 	const Glob glob("foo*");
70 	EXPECT_TRUE(glob.Check("foo_bar"));
71 	EXPECT_TRUE(glob.Check("foo?bar"));
72 	EXPECT_TRUE(glob.Check("foo bar"));
73 	EXPECT_TRUE(glob.Check("foobar"));
74 	EXPECT_TRUE(glob.Check("foo__bar"));
75 	EXPECT_TRUE(glob.Check("foobar_"));
76 	EXPECT_TRUE(glob.Check("foo"));
77 }
78 
79 #endif
80