1 
2 #include <cbehave/cbehave.h>
3 
4 #include <utils.h>
5 
6 #include <SDL_joystick.h>
7 
8 #include <sys_config.h>
9 #include <sys_specifics.h>
10 
11 FEATURE(path_funcs, "Path functions")
12 	mkdir("/tmp/path", MKDIR_MODE);
13 	SCENARIO("Relative path")
14 		GIVEN("a relative path")
15 			char to[CDOGS_PATH_MAX];
16 			strcpy(to, "/tmp/path/to");
17 
18 		WHEN("I get the relative path from another path")
19 			char from[CDOGS_PATH_MAX];
20 			strcpy(from, "/tmp/path/from");
21 
22 		THEN("the result should be a relative path from one to the other")
23 			char rel[CDOGS_PATH_MAX];
24 			RelPath(rel, to, from);
25 			SHOULD_STR_EQUAL(rel, "../to");
26 	SCENARIO_END
27 
28 	SCENARIO("Relative path from different path separators")
29 		GIVEN("a relative path with forward slashes")
30 			char to[CDOGS_PATH_MAX];
31 			strcpy(to, "/tmp/path/to");
32 
33 		WHEN("I get the relative path from another path with back slashes")
34 			char from[CDOGS_PATH_MAX];
35 			strcpy(from, "\\tmp\\path\\from");
36 
37 		THEN("the result should be a relative path from one to the other")
38 			char rel[CDOGS_PATH_MAX];
39 			RelPath(rel, to, from);
40 		SHOULD_STR_EQUAL(rel, "../to");
41 	SCENARIO_END
42 
43 #ifdef _MSC_VER
44 	SCENARIO("Relative path to a different Windows drive")
45 		GIVEN("a path to a drive")
46 			char to[CDOGS_PATH_MAX];
47 			strcpy(to, "D:\\foo");
48 
49 		WHEN("I get the relative path from a different drive")
50 			char from[CDOGS_PATH_MAX];
51 			strcpy(from, "C:\\foo");
52 
53 		THEN("the result should be an absolute path")
54 			char rel[CDOGS_PATH_MAX];
55 			RelPath(rel, to, from);
56 			SHOULD_STR_EQUAL(rel, "D:\\foo");
57 	SCENARIO_END
58 #endif
59 FEATURE_END
60 
61 CBEHAVE_RUN("Pic features are:", TEST_FEATURE(path_funcs))
62