Mercurial > irccd
annotate tests/path/main.cpp @ 203:c26754e419c4
Irccd: rename RemoteCommand to Command
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 09 Jun 2016 13:50:55 +0200 |
parents | 1125d90b3b44 |
children | 6635b9187d71 |
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 { | |
36 std::string path = "\\usr\\local\\etc\\"; | |
37 std::string result = path::clean(path); | |
38 | |
39 ASSERT_EQ(path, result); | |
40 } | |
41 | |
42 TEST(Back, duplicateBegin) | |
43 { | |
44 std::string path = "\\\\usr\\local\\etc\\"; | |
45 std::string result = path::clean(path); | |
46 | |
47 ASSERT_EQ("\\usr\\local\\etc\\", result); | |
48 } | |
49 | |
50 TEST(Back, duplicateEnd) | |
51 { | |
52 std::string path = "\\usr\\local\\etc\\\\"; | |
53 std::string result = path::clean(path); | |
54 | |
55 ASSERT_EQ("\\usr\\local\\etc\\", result); | |
56 } | |
57 | |
58 TEST(Back, duplicateEverywhere) | |
59 { | |
60 std::string path = "\\\\usr\\\\local\\\\etc\\\\"; | |
61 std::string result = path::clean(path); | |
62 | |
63 ASSERT_EQ("\\usr\\local\\etc\\", result); | |
64 } | |
65 | |
66 TEST(Back, missingTrailing) | |
67 { | |
68 std::string path = "\\usr\\local\\etc"; | |
69 std::string result = path::clean(path); | |
70 | |
71 ASSERT_EQ("\\usr\\local\\etc\\", result); | |
72 } | |
73 | |
74 #else | |
75 | |
76 /* -------------------------------------------------------- | |
77 * Forward slashes | |
78 * -------------------------------------------------------- */ | |
79 | |
80 TEST(Forward, nochange) | |
81 { | |
82 std::string path = "/usr/local/etc/"; | |
83 std::string result = path::clean(path); | |
84 | |
85 ASSERT_EQ(path, result); | |
86 } | |
87 | |
88 TEST(Forward, duplicateBegin) | |
89 { | |
90 std::string path = "//usr/local/etc/"; | |
91 std::string result = path::clean(path); | |
92 | |
93 ASSERT_EQ("/usr/local/etc/", result); | |
94 } | |
95 | |
96 TEST(Forward, duplicateEnd) | |
97 { | |
98 std::string path = "/usr/local/etc//"; | |
99 std::string result = path::clean(path); | |
100 | |
101 ASSERT_EQ("/usr/local/etc/", result); | |
102 } | |
103 | |
104 TEST(Forward, duplicateEverywhere) | |
105 { | |
106 std::string path = "//usr//local//etc//"; | |
107 std::string result = path::clean(path); | |
108 | |
109 ASSERT_EQ("/usr/local/etc/", result); | |
110 } | |
111 | |
112 TEST(Forward, missingTrailing) | |
113 { | |
114 std::string path = "/usr/local/etc"; | |
115 std::string result = path::clean(path); | |
116 | |
117 ASSERT_EQ("/usr/local/etc/", result); | |
118 } | |
119 | |
120 #endif | |
121 | |
122 } // !irccd | |
123 | |
124 using namespace irccd; | |
125 | |
126 int main(int argc, char **argv) | |
127 { | |
128 /* | |
129 * Just show everything for test purpose. | |
130 */ | |
131 path::setApplicationPath(argv[0]); | |
132 log::setInterface(std::make_unique<log::Console>()); | |
133 log::debug() << "System paths:" << std::endl; | |
134 log::debug() << " config(system): " << path::get(path::PathConfig, path::OwnerSystem) << std::endl; | |
135 log::debug() << " data(system): " << path::get(path::PathData, path::OwnerSystem) << std::endl; | |
136 log::debug() << " plugins(system): " << path::get(path::PathPlugins, path::OwnerSystem) << std::endl; | |
137 log::debug() << " cache(system): " << path::get(path::PathCache, path::OwnerSystem) << std::endl; | |
138 log::debug() << "User paths:" << std::endl; | |
139 log::debug() << " config(user): " << path::get(path::PathConfig, path::OwnerUser) << std::endl; | |
140 log::debug() << " data(user): " << path::get(path::PathData, path::OwnerUser) << std::endl; | |
141 log::debug() << " plugins(user): " << path::get(path::PathPlugins, path::OwnerUser) << std::endl; | |
142 log::debug() << " cache(user): " << path::get(path::PathCache, path::OwnerUser) << std::endl; | |
143 | |
144 testing::InitGoogleTest(&argc, argv); | |
145 | |
146 return RUN_ALL_TESTS(); | |
147 } |