summaryrefslogtreecommitdiff
path: root/app/bin/unittest/pathstest.c
blob: 3ee830ef784756a00ea74a4fe0835821f70cd026 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
/** \file PathsTest.c
* Unit tests for the paths module
*/

#include <stdarg.h>
#include <stddef.h>
#include <string.h>
#include <stdio.h>
#include <setjmp.h>
#include <cmocka.h>

#include <dynstring.h>
#include "../paths.h"

#ifdef WINDOWS
#define TESTPATH "C:\\Test\\Path"
#define TESTFILENAME "file.test"
#define TESTFILE TESTPATH "\\" TESTFILENAME
#define TESTPATH2 "D:\\Root"
#define TESTFILE2 TESTPATH2 "\\file2."

#define TESTRELATIVEPATH "Test\\Path"
#define DEFAULTPATH "C:\\Default\\Path"
#else
#define TESTPATH "/Test/Path"
#define TESTFILENAME "file.test"
#define TESTFILE TESTPATH "/" TESTFILENAME
#define TESTPATH2 "/Root"
#define TESTFILE2 TESTPATH2 "/file2."

#define TESTRELATIVEPATH "Test/Path"
#define DEFAULTPATH "/Default/Path"

#endif //WINDOWS
void
wPrefSetString(const char *section, const char *key, const char *value)
{}

char *wPrefGetStringExt(const char *section, const char *key)
{
	return(NULL);
}

char *wPrefGetString(const char *section, const char *key)
{
	return(DEFAULTPATH);
}

const char *wGetUserHomeDir(void)
{
	return(DEFAULTPATH);
}

#include "../paths.c"

static void SetGetPath(void **state)
{
	char *string;
	(void)state;

	string = GetCurrentPath("Test");
	assert_string_equal(string, DEFAULTPATH);

	SetCurrentPath("Test", TESTFILE );
	string = GetCurrentPath("Test");
	assert_string_equal(string, TESTPATH);

	SetCurrentPath("Test", TESTFILE2);
	string = GetCurrentPath("Test");
	assert_string_equal(string, TESTPATH2);	
}

static void Makepath(void **state)
{
	(void)state;
	char *path;

#ifdef WINDOWS
		MakeFullpath(&path,
		"C:",
		TESTRELATIVEPATH,
		TESTFILENAME,
		NULL);

		assert_string_equal(path, "C:" TESTRELATIVEPATH "\\" TESTFILENAME);
#else
		MakeFullpath(&path,
		TESTRELATIVEPATH,
		TESTFILENAME,
		NULL);

		assert_string_equal(path, TESTRELATIVEPATH "/" TESTFILENAME);
#endif // WINDOWS

	free(path);

#ifdef WINDOWS
	MakeFullpath(&path,
		"C:",
		"test",
		"\\subdir",
		TESTFILENAME,
		NULL);
	assert_string_equal(path, "C:test\\subdir\\" TESTFILENAME);
#else
	MakeFullpath(&path,
		"test",
		"/subdir",
		TESTFILENAME,
		NULL);
	assert_string_equal(path, "test/subdir/" TESTFILENAME);

#endif // WINDOWS


	free(path);
}

int main(void)
{
    const struct CMUnitTest tests[] = {
		cmocka_unit_test(SetGetPath),
		cmocka_unit_test(Makepath),
    };
    return cmocka_run_group_tests(tests, NULL, NULL);
}