TestFs.cxx 1.75 KB
Newer Older
1 2 3 4 5 6 7
/*
 * Unit tests for src/fs/
 */

#include "config.h"
#include "fs/Glob.hxx"

8
#include <gtest/gtest.h>
9 10 11

#ifdef HAVE_CLASS_GLOB

12 13 14 15 16 17 18 19 20 21
TEST(Glob, Basic)
{
	const Glob glob("foo");
	EXPECT_TRUE(glob.Check("foo"));
	EXPECT_FALSE(glob.Check("fooo"));
	EXPECT_FALSE(glob.Check("_foo"));
	EXPECT_FALSE(glob.Check("a/foo"));
	EXPECT_FALSE(glob.Check(""));
	EXPECT_FALSE(glob.Check("*"));
}
22

23 24 25 26 27 28 29 30
TEST(Glob, Asterisk)
{
	const Glob glob("*");
	EXPECT_TRUE(glob.Check("foo"));
	EXPECT_TRUE(glob.Check("bar"));
	EXPECT_TRUE(glob.Check("*"));
	EXPECT_TRUE(glob.Check("?"));
}
31

32 33 34 35 36 37 38 39 40
TEST(Glob, QuestionMark)
{
	const Glob glob("foo?bar");
	EXPECT_TRUE(glob.Check("foo_bar"));
	EXPECT_TRUE(glob.Check("foo?bar"));
	EXPECT_TRUE(glob.Check("foo bar"));
	EXPECT_FALSE(glob.Check("foobar"));
	EXPECT_FALSE(glob.Check("foo__bar"));
}
41

42 43 44 45 46 47 48 49 50 51 52
TEST(Glob, Wildcard)
{
	const Glob glob("foo*bar");
	EXPECT_TRUE(glob.Check("foo_bar"));
	EXPECT_TRUE(glob.Check("foo?bar"));
	EXPECT_TRUE(glob.Check("foo bar"));
	EXPECT_TRUE(glob.Check("foobar"));
	EXPECT_TRUE(glob.Check("foo__bar"));
	EXPECT_FALSE(glob.Check("_foobar"));
	EXPECT_FALSE(glob.Check("foobar_"));
}
53

54 55 56 57 58 59 60 61 62 63 64 65
TEST(Glob, PrefixWildcard)
{
	const Glob glob("*bar");
	EXPECT_TRUE(glob.Check("foo_bar"));
	EXPECT_TRUE(glob.Check("foo?bar"));
	EXPECT_TRUE(glob.Check("foo bar"));
	EXPECT_TRUE(glob.Check("foobar"));
	EXPECT_TRUE(glob.Check("foo__bar"));
	EXPECT_TRUE(glob.Check("_foobar"));
	EXPECT_TRUE(glob.Check("bar"));
	EXPECT_FALSE(glob.Check("foobar_"));
}
66

67
TEST(Glob, SuffixWildcard)
68
{
69 70 71 72 73 74 75 76
	const Glob glob("foo*");
	EXPECT_TRUE(glob.Check("foo_bar"));
	EXPECT_TRUE(glob.Check("foo?bar"));
	EXPECT_TRUE(glob.Check("foo bar"));
	EXPECT_TRUE(glob.Check("foobar"));
	EXPECT_TRUE(glob.Check("foo__bar"));
	EXPECT_TRUE(glob.Check("foobar_"));
	EXPECT_TRUE(glob.Check("foo"));
77
}
78 79

#endif