Mercurial > irccd
annotate tests/path/main.cpp @ 255:233366c94ddb
Irccd: add suffixes to commands, closes #524
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 08 Sep 2016 13:11:10 +0200 |
parents | 6635b9187d71 |
children | f04acabfbbe5 |
rev | line source |
---|---|
0 | 1 /* |
2 * main.cpp -- test path functions | |
3 * | |
4 * Copyright (c) 2013-2016 David Demelier <markand@malikania.fr> | |
5 * | |
6 * Permission to use, copy, modify, and/or distribute this software for any | |
7 * purpose with or without fee is hereby granted, provided that the above | |
8 * copyright notice and this permission notice appear in all copies. | |
9 * | |
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
17 */ | |
18 | |
19 #include <gtest/gtest.h> | |
20 | |
95
1125d90b3b44
Misc: switch to .hpp, #477
David Demelier <markand@malikania.fr>
parents:
84
diff
changeset
|
21 #include <irccd/sysconfig.hpp> |
0 | 22 |
95
1125d90b3b44
Misc: switch to .hpp, #477
David Demelier <markand@malikania.fr>
parents:
84
diff
changeset
|
23 #include <irccd/logger.hpp> |
1125d90b3b44
Misc: switch to .hpp, #477
David Demelier <markand@malikania.fr>
parents:
84
diff
changeset
|
24 #include <irccd/path.hpp> |
0 | 25 |
26 namespace irccd { | |
27 | |
28 /* -------------------------------------------------------- | |
29 * Back slashes | |
30 * -------------------------------------------------------- */ | |
31 | |
32 #if defined(IRCCD_SYSTEM_WINDOWS) | |
33 | |
34 TEST(Back, nochange) | |
35 { | |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
36 std::string path = "\\usr\\local\\etc\\"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
37 std::string result = path::clean(path); |
0 | 38 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
39 ASSERT_EQ(path, result); |
0 | 40 } |
41 | |
42 TEST(Back, duplicateBegin) | |
43 { | |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
44 std::string path = "\\\\usr\\local\\etc\\"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
45 std::string result = path::clean(path); |
0 | 46 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
47 ASSERT_EQ("\\usr\\local\\etc\\", result); |
0 | 48 } |
49 | |
50 TEST(Back, duplicateEnd) | |
51 { | |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
52 std::string path = "\\usr\\local\\etc\\\\"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
53 std::string result = path::clean(path); |
0 | 54 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
55 ASSERT_EQ("\\usr\\local\\etc\\", result); |
0 | 56 } |
57 | |
58 TEST(Back, duplicateEverywhere) | |
59 { | |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
60 std::string path = "\\\\usr\\\\local\\\\etc\\\\"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
61 std::string result = path::clean(path); |
0 | 62 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
63 ASSERT_EQ("\\usr\\local\\etc\\", result); |
0 | 64 } |
65 | |
66 TEST(Back, missingTrailing) | |
67 { | |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
68 std::string path = "\\usr\\local\\etc"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
69 std::string result = path::clean(path); |
0 | 70 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
71 ASSERT_EQ("\\usr\\local\\etc\\", result); |
0 | 72 } |
73 | |
74 #else | |
75 | |
76 /* -------------------------------------------------------- | |
77 * Forward slashes | |
78 * -------------------------------------------------------- */ | |
79 | |
80 TEST(Forward, nochange) | |
81 { | |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
82 std::string path = "/usr/local/etc/"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
83 std::string result = path::clean(path); |
0 | 84 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
85 ASSERT_EQ(path, result); |
0 | 86 } |
87 | |
88 TEST(Forward, duplicateBegin) | |
89 { | |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
90 std::string path = "//usr/local/etc/"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
91 std::string result = path::clean(path); |
0 | 92 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
93 ASSERT_EQ("/usr/local/etc/", result); |
0 | 94 } |
95 | |
96 TEST(Forward, duplicateEnd) | |
97 { | |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
98 std::string path = "/usr/local/etc//"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
99 std::string result = path::clean(path); |
0 | 100 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
101 ASSERT_EQ("/usr/local/etc/", result); |
0 | 102 } |
103 | |
104 TEST(Forward, duplicateEverywhere) | |
105 { | |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
106 std::string path = "//usr//local//etc//"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
107 std::string result = path::clean(path); |
0 | 108 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
109 ASSERT_EQ("/usr/local/etc/", result); |
0 | 110 } |
111 | |
112 TEST(Forward, missingTrailing) | |
113 { | |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
114 std::string path = "/usr/local/etc"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
115 std::string result = path::clean(path); |
0 | 116 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
117 ASSERT_EQ("/usr/local/etc/", result); |
0 | 118 } |
119 | |
120 #endif | |
121 | |
122 } // !irccd | |
123 | |
124 using namespace irccd; | |
125 | |
126 int main(int argc, char **argv) | |
127 { | |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
128 /* |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
129 * Just show everything for test purpose. |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
130 */ |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
131 path::setApplicationPath(argv[0]); |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
132 log::setInterface(std::make_unique<log::Console>()); |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
133 log::debug() << "System paths:" << std::endl; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
134 log::debug() << " config(system): " << path::get(path::PathConfig, path::OwnerSystem) << std::endl; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
135 log::debug() << " data(system): " << path::get(path::PathData, path::OwnerSystem) << std::endl; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
136 log::debug() << " plugins(system): " << path::get(path::PathPlugins, path::OwnerSystem) << std::endl; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
137 log::debug() << " cache(system): " << path::get(path::PathCache, path::OwnerSystem) << std::endl; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
138 log::debug() << "User paths:" << std::endl; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
139 log::debug() << " config(user): " << path::get(path::PathConfig, path::OwnerUser) << std::endl; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
140 log::debug() << " data(user): " << path::get(path::PathData, path::OwnerUser) << std::endl; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
141 log::debug() << " plugins(user): " << path::get(path::PathPlugins, path::OwnerUser) << std::endl; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
142 log::debug() << " cache(user): " << path::get(path::PathCache, path::OwnerUser) << std::endl; |
0 | 143 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
144 testing::InitGoogleTest(&argc, argv); |
0 | 145 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
146 return RUN_ALL_TESTS(); |
0 | 147 } |