forked from ufz/ogs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTestFilePathStringManipulation.cpp
409 lines (363 loc) · 21.7 KB
/
TestFilePathStringManipulation.cpp
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
/**
* \file
* \author
* \date
* \brief
*
* \copyright
* Copyright (c) 2012-2017, OpenGeoSys Community (http://www.opengeosys.org)
* Distributed under a Modified BSD License.
* See accompanying file LICENSE.txt or
* http://www.opengeosys.org/project/license
*/
#include "gtest/gtest.h"
#include "BaseLib/FileTools.h"
// For testing of some internal functions used inside FileTools.cpp.
#include "BaseLib/FileTools.cpp"
TEST(BaseLib, FindLastPathSeparatorWin)
{
ASSERT_EQ ( BaseLib::findLastPathSeparator("file"), std::string::npos );
ASSERT_EQ ( BaseLib::findLastPathSeparator("\\file"), 0U );
ASSERT_EQ ( BaseLib::findLastPathSeparator("path\\"), 4U );
ASSERT_EQ ( BaseLib::findLastPathSeparator("\\path\\"), 5U );
ASSERT_EQ ( BaseLib::findLastPathSeparator("path\\file"), 4U );
ASSERT_EQ ( BaseLib::findLastPathSeparator("\\path\\file"), 5U );
ASSERT_EQ ( BaseLib::findLastPathSeparator("\\path\\path\\file"), 10U );
ASSERT_EQ ( BaseLib::findLastPathSeparator("\\path\\path\\path\\"), 15U );
}
TEST(BaseLib, FindLastPathSeparatorUnix)
{
ASSERT_EQ ( BaseLib::findLastPathSeparator("file"), std::string::npos );
ASSERT_EQ ( BaseLib::findLastPathSeparator("/file"), 0U );
ASSERT_EQ ( BaseLib::findLastPathSeparator("path/"), 4U );
ASSERT_EQ ( BaseLib::findLastPathSeparator("/path/"), 5U );
ASSERT_EQ ( BaseLib::findLastPathSeparator("path/file"), 4U );
ASSERT_EQ ( BaseLib::findLastPathSeparator("/path/file"), 5U );
ASSERT_EQ ( BaseLib::findLastPathSeparator("/path/path/file"), 10U );
ASSERT_EQ ( BaseLib::findLastPathSeparator("/path/path/path/"), 15U );
}
TEST(BaseLib, DropFileExtensionWin)
{
ASSERT_EQ ( BaseLib::dropFileExtension("file"), "file" );
ASSERT_EQ ( BaseLib::dropFileExtension("\\file"), "\\file" );
ASSERT_EQ ( BaseLib::dropFileExtension("path\\"), "path\\" );
ASSERT_EQ ( BaseLib::dropFileExtension("\\path\\"), "\\path\\" );
ASSERT_EQ ( BaseLib::dropFileExtension("path\\file"), "path\\file" );
ASSERT_EQ ( BaseLib::dropFileExtension("\\path\\file"), "\\path\\file" );
ASSERT_EQ ( BaseLib::dropFileExtension("\\path\\path\\file"), "\\path\\path\\file" );
ASSERT_EQ ( BaseLib::dropFileExtension("\\path\\path\\path\\"), "\\path\\path\\path\\" );
ASSERT_EQ ( BaseLib::dropFileExtension("file.ext"), "file" );
ASSERT_EQ ( BaseLib::dropFileExtension("\\file.ext"), "\\file" );
ASSERT_EQ ( BaseLib::dropFileExtension("path.ext\\"), "path.ext\\" );
ASSERT_EQ ( BaseLib::dropFileExtension("\\path.ext\\"), "\\path.ext\\" );
ASSERT_EQ ( BaseLib::dropFileExtension("path\\file.ext"), "path\\file" );
ASSERT_EQ ( BaseLib::dropFileExtension("\\path\\file.ext"), "\\path\\file" );
ASSERT_EQ ( BaseLib::dropFileExtension("\\path\\path\\file.ext"), "\\path\\path\\file" );
ASSERT_EQ ( BaseLib::dropFileExtension("\\path\\path\\path.ext\\"), "\\path\\path\\path.ext\\" );
ASSERT_EQ ( BaseLib::dropFileExtension("path.wrong\\file.ext"), "path.wrong\\file" );
ASSERT_EQ ( BaseLib::dropFileExtension("\\path.wrong\\file.ext"), "\\path.wrong\\file" );
ASSERT_EQ ( BaseLib::dropFileExtension("\\path.wrong0\\path.wrong\\file.ext"), "\\path.wrong0\\path.wrong\\file" );
ASSERT_EQ ( BaseLib::dropFileExtension("\\path.wrong0\\path.wrong\\path.ext\\"), "\\path.wrong0\\path.wrong\\path.ext\\" );
}
TEST(BaseLib, DropFileExtensionUnix)
{
ASSERT_EQ ( BaseLib::dropFileExtension("file"), "file" );
ASSERT_EQ ( BaseLib::dropFileExtension("/file"), "/file" );
ASSERT_EQ ( BaseLib::dropFileExtension("path/"), "path/" );
ASSERT_EQ ( BaseLib::dropFileExtension("/path/"), "/path/" );
ASSERT_EQ ( BaseLib::dropFileExtension("path/file"), "path/file" );
ASSERT_EQ ( BaseLib::dropFileExtension("/path/file"), "/path/file" );
ASSERT_EQ ( BaseLib::dropFileExtension("/path/path/file"), "/path/path/file" );
ASSERT_EQ ( BaseLib::dropFileExtension("/path/path/path/"), "/path/path/path/" );
ASSERT_EQ ( BaseLib::dropFileExtension("file.ext"), "file" );
ASSERT_EQ ( BaseLib::dropFileExtension("/file.ext"), "/file" );
ASSERT_EQ ( BaseLib::dropFileExtension("path.ext/"), "path.ext/" );
ASSERT_EQ ( BaseLib::dropFileExtension("/path.ext/"), "/path.ext/" );
ASSERT_EQ ( BaseLib::dropFileExtension("path/file.ext"), "path/file" );
ASSERT_EQ ( BaseLib::dropFileExtension("/path/file.ext"), "/path/file" );
ASSERT_EQ ( BaseLib::dropFileExtension("/path/path/file.ext"), "/path/path/file" );
ASSERT_EQ ( BaseLib::dropFileExtension("/path/path/path.ext/"), "/path/path/path.ext/" );
ASSERT_EQ ( BaseLib::dropFileExtension("path.wrong/file.ext"), "path.wrong/file" );
ASSERT_EQ ( BaseLib::dropFileExtension("/path.wrong/file.ext"), "/path.wrong/file" );
ASSERT_EQ ( BaseLib::dropFileExtension("/path.wrong0/path.wrong/file.ext"), "/path.wrong0/path.wrong/file" );
ASSERT_EQ ( BaseLib::dropFileExtension("/path.wrong0/path.wrong/path.ext/"), "/path.wrong0/path.wrong/path.ext/" );
}
TEST(BaseLib, GetFileExtensionWin)
{
ASSERT_EQ ( BaseLib::getFileExtension("file"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("\\file"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("path\\"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("\\path\\"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("path\\file"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("\\path\\file"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("\\path\\path\\file"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("\\path\\path\\path\\"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("file.ext"), "ext" );
ASSERT_EQ ( BaseLib::getFileExtension("\\file.ext"), "ext" );
ASSERT_EQ ( BaseLib::getFileExtension("path.ext\\"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("\\path.ext\\"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("path\\file.ext"), "ext" );
ASSERT_EQ ( BaseLib::getFileExtension("\\path\\file.ext"), "ext" );
ASSERT_EQ ( BaseLib::getFileExtension("\\path\\path\\file.ext"), "ext" );
ASSERT_EQ ( BaseLib::getFileExtension("\\path\\path\\path.ext\\"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("path.wrong\\file.ext"), "ext" );
ASSERT_EQ ( BaseLib::getFileExtension("\\path.wrong\\file.ext"), "ext" );
ASSERT_EQ ( BaseLib::getFileExtension("\\path.wrong0\\path.wrong\\file.ext"), "ext" );
ASSERT_EQ ( BaseLib::getFileExtension("\\path.wrong0\\path.wrong\\path.ext\\"), "" );
}
TEST(BaseLib, getFileExtensionUnix)
{
ASSERT_EQ ( BaseLib::getFileExtension("file"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("/file"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("path/"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("/path/"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("path/file"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("/path/file"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("/path/path/file"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("/path/path/path/"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("file.ext"), "ext" );
ASSERT_EQ ( BaseLib::getFileExtension("/file.ext"), "ext" );
ASSERT_EQ ( BaseLib::getFileExtension("path.ext/"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("/path.ext/"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("path/file.ext"), "ext" );
ASSERT_EQ ( BaseLib::getFileExtension("/path/file.ext"), "ext" );
ASSERT_EQ ( BaseLib::getFileExtension("/path/path/file.ext"), "ext" );
ASSERT_EQ ( BaseLib::getFileExtension("/path/path/path.ext/"), "" );
ASSERT_EQ ( BaseLib::getFileExtension("path.wrong/file.ext"), "ext" );
ASSERT_EQ ( BaseLib::getFileExtension("/path.wrong/file.ext"), "ext" );
ASSERT_EQ ( BaseLib::getFileExtension("/path.wrong0/path.wrong/file.ext"), "ext" );
ASSERT_EQ ( BaseLib::getFileExtension("/path.wrong0/path.wrong/path.ext/"), "" );
}
#ifdef _WIN32
TEST(BaseLib, CopyPathToFileNameWin)
{
ASSERT_EQ("extend\\file", BaseLib::copyPathToFileName("file", "extend"));
ASSERT_EQ("path\\file",
BaseLib::copyPathToFileName("path\\file", "extend"));
ASSERT_EQ("extend\\file", BaseLib::copyPathToFileName("file", "extend\\"));
ASSERT_EQ("path\\file",
BaseLib::copyPathToFileName("path\\file", "extend\\"));
ASSERT_EQ("extend\\smth\\file",
BaseLib::copyPathToFileName("file", "extend\\smth"));
ASSERT_EQ("path\\file",
BaseLib::copyPathToFileName("path\\file", "extend\\smth"));
}
#else
TEST(BaseLib, CopyPathToFileNameUnix)
{
ASSERT_EQ("extend/file", BaseLib::copyPathToFileName("file", "extend"));
ASSERT_EQ("path/file",
BaseLib::copyPathToFileName("path/file", "extend"));
ASSERT_EQ("extend/file", BaseLib::copyPathToFileName("file", "extend/"));
ASSERT_EQ("path/file", BaseLib::copyPathToFileName("path/file", "extend/"));
ASSERT_EQ("extend/smth/file",
BaseLib::copyPathToFileName("file", "extend/smth"));
ASSERT_EQ("path/file",
BaseLib::copyPathToFileName("path/file", "extend/smth"));
}
#endif
TEST(BaseLib, ExtractPathWin)
{
ASSERT_EQ ( BaseLib::extractPath("file"), "" );
ASSERT_EQ ( BaseLib::extractPath("/file"), "/" );
ASSERT_EQ ( BaseLib::extractPath("path/"), "path/" );
ASSERT_EQ ( BaseLib::extractPath("/path/"), "/path/" );
ASSERT_EQ ( BaseLib::extractPath("path/file"), "path/" );
ASSERT_EQ ( BaseLib::extractPath("/path/file"), "/path/" );
ASSERT_EQ ( BaseLib::extractPath("/path/path/file"), "/path/path/" );
ASSERT_EQ ( BaseLib::extractPath("/path/path/path/"), "/path/path/path/" );
ASSERT_EQ ( BaseLib::extractPath("file.ext"), "" );
ASSERT_EQ ( BaseLib::extractPath("/file.ext"), "/" );
ASSERT_EQ ( BaseLib::extractPath("path.ext/"), "path.ext/" );
ASSERT_EQ ( BaseLib::extractPath("/path.ext/"), "/path.ext/" );
ASSERT_EQ ( BaseLib::extractPath("path/file.ext"), "path/" );
ASSERT_EQ ( BaseLib::extractPath("/path/file.ext"), "/path/" );
ASSERT_EQ ( BaseLib::extractPath("/path/path/file.ext"), "/path/path/" );
ASSERT_EQ ( BaseLib::extractPath("/path/path/path.ext/"), "/path/path/path.ext/" );
}
TEST(BaseLib, ExtractBaseNameWithoutExtensionWin)
{
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("file"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\file"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("path\\"), "" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path\\"), "" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("path\\file"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path\\file"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path\\path\\file"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path\\path\\path\\"), "" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("file.ext"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\file.ext"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("path.ext\\"), "" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path.ext\\"), "" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("path\\file.ext"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path\\file.ext"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path\\path\\file.ext"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path\\path\\path.ext\\"), "" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("path.wrong\\file.ext"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path.wrong\\file.ext"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path.wrong0\\path.wrong\\file.ext"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path.wrong0\\path.wrong\\path.ext\\"), "" );
}
TEST(BaseLib, ExtractBaseNameWithoutExtensionUnix)
{
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("file"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/file"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("path/"), "" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path/"), "" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("path/file"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path/file"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path/path/file"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path/path/path/"), "" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("file.ext"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/file.ext"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("path.ext/"), "" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path.ext/"), "" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("path/file.ext"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path/file.ext"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path/path/file.ext"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path/path/path.ext/"), "" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("path.wrong/file.ext"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path.wrong/file.ext"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path.wrong0/path.wrong/file.ext"), "file" );
ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path.wrong0/path.wrong/path.ext/"), "" );
}
TEST(BaseLib, ExtractBaseNameWin)
{
ASSERT_EQ ( BaseLib::extractBaseName("file"), "file" );
ASSERT_EQ ( BaseLib::extractBaseName("\\file"), "file" );
ASSERT_EQ ( BaseLib::extractBaseName("path\\"), "" );
ASSERT_EQ ( BaseLib::extractBaseName("\\path\\"), "" );
ASSERT_EQ ( BaseLib::extractBaseName("path\\file"), "file" );
ASSERT_EQ ( BaseLib::extractBaseName("\\path\\file"), "file" );
ASSERT_EQ ( BaseLib::extractBaseName("\\path\\path\\file"), "file" );
ASSERT_EQ ( BaseLib::extractBaseName("\\path\\path\\path\\"), "" );
ASSERT_EQ ( BaseLib::extractBaseName("file.ext"), "file.ext" );
ASSERT_EQ ( BaseLib::extractBaseName("\\file.ext"), "file.ext" );
ASSERT_EQ ( BaseLib::extractBaseName("path.ext\\"), "" );
ASSERT_EQ ( BaseLib::extractBaseName("\\path.ext\\"), "" );
ASSERT_EQ ( BaseLib::extractBaseName("path\\file.ext"), "file.ext" );
ASSERT_EQ ( BaseLib::extractBaseName("\\path\\file.ext"), "file.ext" );
ASSERT_EQ ( BaseLib::extractBaseName("\\path\\path\\file.ext"), "file.ext" );
ASSERT_EQ ( BaseLib::extractBaseName("\\path\\path\\path.ext\\"), "" );
ASSERT_EQ ( BaseLib::extractBaseName("path.wrong\\file.ext"), "file.ext" );
ASSERT_EQ ( BaseLib::extractBaseName("\\path.wrong\\file.ext"), "file.ext" );
ASSERT_EQ ( BaseLib::extractBaseName("\\path.wrong0\\path.wrong\\file.ext"), "file.ext" );
ASSERT_EQ ( BaseLib::extractBaseName("\\path.wrong0\\path.wrong\\path.ext\\"), "" );
}
TEST(BaseLib, HasFileExtensionWin)
{
ASSERT_TRUE ( BaseLib::hasFileExtension("", "file"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "\\file"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "path\\"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "\\path\\"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "path\\file"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "\\path\\file"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "\\path\\path\\file"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "\\path\\path\\path\\"));
ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "file.ext"));
ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "\\file.ext"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "path.ext\\"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "\\path.ext\\"));
ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "path\\file.ext"));
ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "\\path\\file.ext"));
ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "\\path\\path\\file.ext"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "\\path\\path\\path.ext\\"));
ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "path.wrong\\file.ext"));
ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "\\path.wrong\\file.ext"));
ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "\\path.wrong0\\path.wrong\\file.ext"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "\\path.wrong0\\path.wrong\\path.ext\\"));
ASSERT_TRUE ( BaseLib::hasFileExtension("EXT", "file.ext"));
ASSERT_TRUE ( BaseLib::hasFileExtension("EXT", "file.EXT"));
ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "file.EXT"));
ASSERT_TRUE ( BaseLib::hasFileExtension("Ext", "file.exT"));
ASSERT_TRUE ( BaseLib::hasFileExtension("EXT", "path\\file.ext"));
ASSERT_TRUE ( BaseLib::hasFileExtension("EXT", "path\\file.EXT"));
ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "path\\file.EXT"));
ASSERT_TRUE ( BaseLib::hasFileExtension("Ext", "path\\file.exT"));
}
TEST(BaseLib, HasFileExtensionUnix)
{
ASSERT_TRUE ( BaseLib::hasFileExtension("", "file"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "/file"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "path/"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "/path/"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "path/file"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "/path/file"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "/path/path/file"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "/path/path/path/"));
ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "file.ext"));
ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "/file.ext"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "path.ext/"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "/path.ext/"));
ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "path/file.ext"));
ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "/path/file.ext"));
ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "/path/path/file.ext"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "/path/path/path.ext/"));
ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "path.wrong/file.ext"));
ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "/path.wrong/file.ext"));
ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "/path.wrong0/path.wrong/file.ext"));
ASSERT_TRUE ( BaseLib::hasFileExtension("", "/path.wrong0/path.wrong/path.ext/"));
ASSERT_TRUE ( BaseLib::hasFileExtension("EXT", "file.ext"));
ASSERT_TRUE ( BaseLib::hasFileExtension("EXT", "file.EXT"));
ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "file.EXT"));
ASSERT_TRUE ( BaseLib::hasFileExtension("Ext", "file.exT"));
ASSERT_TRUE ( BaseLib::hasFileExtension("EXT", "path/file.ext"));
ASSERT_TRUE ( BaseLib::hasFileExtension("EXT", "path/file.EXT"));
ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "path/file.EXT"));
ASSERT_TRUE ( BaseLib::hasFileExtension("Ext", "path/file.exT"));
}
TEST(BaseLib, ExtractBaseNameUnix)
{
ASSERT_EQ ( BaseLib::extractBaseName("file"), "file" );
ASSERT_EQ ( BaseLib::extractBaseName("/file"), "file" );
ASSERT_EQ ( BaseLib::extractBaseName("path/"), "" );
ASSERT_EQ ( BaseLib::extractBaseName("/path/"), "" );
ASSERT_EQ ( BaseLib::extractBaseName("path/file"), "file" );
ASSERT_EQ ( BaseLib::extractBaseName("/path/file"), "file" );
ASSERT_EQ ( BaseLib::extractBaseName("/path/path/file"), "file" );
ASSERT_EQ ( BaseLib::extractBaseName("/path/path/path/"), "" );
ASSERT_EQ ( BaseLib::extractBaseName("file.ext"), "file.ext" );
ASSERT_EQ ( BaseLib::extractBaseName("/file.ext"), "file.ext" );
ASSERT_EQ ( BaseLib::extractBaseName("path.ext/"), "" );
ASSERT_EQ ( BaseLib::extractBaseName("/path.ext/"), "" );
ASSERT_EQ ( BaseLib::extractBaseName("path/file.ext"), "file.ext" );
ASSERT_EQ ( BaseLib::extractBaseName("/path/file.ext"), "file.ext" );
ASSERT_EQ ( BaseLib::extractBaseName("/path/path/file.ext"), "file.ext" );
ASSERT_EQ ( BaseLib::extractBaseName("/path/path/path.ext/"), "" );
ASSERT_EQ ( BaseLib::extractBaseName("path.wrong/file.ext"), "file.ext" );
ASSERT_EQ ( BaseLib::extractBaseName("/path.wrong/file.ext"), "file.ext" );
ASSERT_EQ ( BaseLib::extractBaseName("/path.wrong0/path.wrong/file.ext"), "file.ext" );
ASSERT_EQ ( BaseLib::extractBaseName("/path.wrong0/path.wrong/path.ext/"), "" );
}
TEST(BaseLib, ExtractPathUnix)
{
ASSERT_EQ ( BaseLib::extractPath("file"), "" );
ASSERT_EQ ( BaseLib::extractPath("/file"), "/" );
ASSERT_EQ ( BaseLib::extractPath("path/"), "path/" );
ASSERT_EQ ( BaseLib::extractPath("/path/"), "/path/" );
ASSERT_EQ ( BaseLib::extractPath("path/file"), "path/" );
ASSERT_EQ ( BaseLib::extractPath("/path/file"), "/path/" );
ASSERT_EQ ( BaseLib::extractPath("/path/path/file"), "/path/path/" );
ASSERT_EQ ( BaseLib::extractPath("/path/path/path/"), "/path/path/path/" );
ASSERT_EQ ( BaseLib::extractPath("file.ext"), "" );
ASSERT_EQ ( BaseLib::extractPath("/file.ext"), "/" );
ASSERT_EQ ( BaseLib::extractPath("path.ext/"), "path.ext/" );
ASSERT_EQ ( BaseLib::extractPath("/path.ext/"), "/path.ext/" );
ASSERT_EQ ( BaseLib::extractPath("path/file.ext"), "path/" );
ASSERT_EQ ( BaseLib::extractPath("/path/file.ext"), "/path/" );
ASSERT_EQ ( BaseLib::extractPath("/path/path/file.ext"), "/path/path/" );
ASSERT_EQ ( BaseLib::extractPath("/path/path/path.ext/"), "/path/path/path.ext/" );
}
TEST(BaseLib, JoinPaths)
{
#if _WIN32
ASSERT_EQ ( "\\path\\path", BaseLib::joinPaths("\\path", "\\path") );
ASSERT_EQ ( "\\path\\path", BaseLib::joinPaths("\\path\\", "\\path") );
ASSERT_EQ ( "\\path\\.\\path", BaseLib::joinPaths("\\path", ".\\path") );
#else
ASSERT_EQ ( "/path/path", BaseLib::joinPaths("/path", "/path") );
ASSERT_EQ ( "/path/path", BaseLib::joinPaths("/path/", "/path") );
ASSERT_EQ ( "/path/./path", BaseLib::joinPaths("/path", "./path") );
ASSERT_EQ ( "/path", BaseLib::joinPaths("/", "path") );
#endif
}