pathtest.cpp
来自「C++ class libraries for network-centric,」· C++ 代码 · 共 825 行 · 第 1/2 页
CPP
825 行
//// PathTest.cpp//// $Id: //poco/1.2/Foundation/testsuite/src/PathTest.cpp#1 $//// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.// and Contributors.//// Permission is hereby granted, free of charge, to any person or organization// obtaining a copy of the software and accompanying documentation covered by// this license (the "Software") to use, reproduce, display, distribute,// execute, and transmit the Software, and to prepare derivative works of the// Software, and to permit third-parties to whom the Software is furnished to// do so, all subject to the following:// // The copyright notices in the Software and this entire statement, including// the above license grant, this restriction and the following disclaimer,// must be included in all copies of the Software, in whole or in part, and// all derivative works of the Software, unless such copies or derivative// works are solely in the form of machine-executable object code generated by// a source language processor.// // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER// DEALINGS IN THE SOFTWARE.//#include "PathTest.h"#include "CppUnit/TestCaller.h"#include "CppUnit/TestSuite.h"#include "Poco/Path.h"#include "Poco/Exception.h"#include "Poco/Random.h"#include "Poco/Environment.h"#include <iostream>using Poco::Path;using Poco::PathSyntaxException;using Poco::Random;using Poco::Environment;PathTest::PathTest(const std::string& name): CppUnit::TestCase(name){}PathTest::~PathTest(){}void PathTest::testParseUnix1(){ Path p; p.parse("", Path::PATH_UNIX); assert (p.isRelative()); assert (!p.isAbsolute()); assert (p.depth() == 0); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == ""); p.parse("/", Path::PATH_UNIX); assert (!p.isRelative()); assert (p.isAbsolute()); assert (p.depth() == 0); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == "/"); p.parse("/usr", Path::PATH_UNIX); assert (!p.isRelative()); assert (p.isAbsolute()); assert (p.depth() == 0); assert (!p.isDirectory()); assert (p.isFile()); assert (p.toString(Path::PATH_UNIX) == "/usr"); p.parse("/usr/", Path::PATH_UNIX); assert (!p.isRelative()); assert (p.isAbsolute()); assert (p.depth() == 1); assert (p[0] == "usr"); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == "/usr/"); p.parse("usr/", Path::PATH_UNIX); assert (p.isRelative()); assert (!p.isAbsolute()); assert (p.depth() == 1); assert (p[0] == "usr"); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == "usr/"); p.parse("usr", Path::PATH_UNIX); assert (p.isRelative()); assert (!p.isAbsolute()); assert (p.depth() == 0); assert (p[0] == "usr"); assert (!p.isDirectory()); assert (p.isFile()); assert (p.toString(Path::PATH_UNIX) == "usr"); p.parse("/usr/local", Path::PATH_UNIX); assert (!p.isRelative()); assert (p.isAbsolute()); assert (p.depth() == 1); assert (p[0] == "usr"); assert (p[1] == "local"); assert (!p.isDirectory()); assert (p.isFile()); assert (p.toString(Path::PATH_UNIX) == "/usr/local");}void PathTest::testParseUnix2(){ Path p; p.parse("/usr/local/", Path::PATH_UNIX); assert (!p.isRelative()); assert (p.isAbsolute()); assert (p.depth() == 2); assert (p[0] == "usr"); assert (p[1] == "local"); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == "/usr/local/"); p.parse("usr/local/", Path::PATH_UNIX); assert (p.isRelative()); assert (!p.isAbsolute()); assert (p.depth() == 2); assert (p[0] == "usr"); assert (p[1] == "local"); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == "usr/local/"); p.parse("usr/local", Path::PATH_UNIX); assert (p.isRelative()); assert (!p.isAbsolute()); assert (p.depth() == 1); assert (p[0] == "usr"); assert (p[1] == "local"); assert (!p.isDirectory()); assert (p.isFile()); assert (p.toString(Path::PATH_UNIX) == "usr/local"); p.parse("/usr/local/bin", Path::PATH_UNIX); assert (!p.isRelative()); assert (p.isAbsolute()); assert (p.depth() == 2); assert (p[0] == "usr"); assert (p[1] == "local"); assert (p[2] == "bin"); assert (!p.isDirectory()); assert (p.isFile()); assert (p.toString(Path::PATH_UNIX) == "/usr/local/bin"); p.parse("/usr/local/bin/", Path::PATH_UNIX); assert (!p.isRelative()); assert (p.isAbsolute()); assert (p.depth() == 3); assert (p[0] == "usr"); assert (p[1] == "local"); assert (p[2] == "bin"); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == "/usr/local/bin/");}void PathTest::testParseUnix3(){ Path p; p.parse("//usr/local/bin/", Path::PATH_UNIX); assert (!p.isRelative()); assert (p.isAbsolute()); assert (p.depth() == 3); assert (p[0] == "usr"); assert (p[1] == "local"); assert (p[2] == "bin"); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == "/usr/local/bin/"); p.parse("/usr//local/bin/", Path::PATH_UNIX); assert (!p.isRelative()); assert (p.isAbsolute()); assert (p.depth() == 3); assert (p[0] == "usr"); assert (p[1] == "local"); assert (p[2] == "bin"); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == "/usr/local/bin/"); p.parse("/usr/local//bin/", Path::PATH_UNIX); assert (!p.isRelative()); assert (p.isAbsolute()); assert (p.depth() == 3); assert (p[0] == "usr"); assert (p[1] == "local"); assert (p[2] == "bin"); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == "/usr/local/bin/"); p.parse("/usr/local/bin//", Path::PATH_UNIX); assert (!p.isRelative()); assert (p.isAbsolute()); assert (p.depth() == 3); assert (p[0] == "usr"); assert (p[1] == "local"); assert (p[2] == "bin"); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == "/usr/local/bin/"); p.parse("/usr/local/./bin/", Path::PATH_UNIX); assert (!p.isRelative()); assert (p.isAbsolute()); assert (p.depth() == 3); assert (p[0] == "usr"); assert (p[1] == "local"); assert (p[2] == "bin"); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == "/usr/local/bin/"); p.parse("./usr/local/bin/", Path::PATH_UNIX); assert (p.isRelative()); assert (!p.isAbsolute()); assert (p.depth() == 3); assert (p[0] == "usr"); assert (p[1] == "local"); assert (p[2] == "bin"); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == "usr/local/bin/"); p.parse("./usr/local/bin/./", Path::PATH_UNIX); assert (p.isRelative()); assert (!p.isAbsolute()); assert (p.depth() == 3); assert (p[0] == "usr"); assert (p[1] == "local"); assert (p[2] == "bin"); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == "usr/local/bin/"); p.parse("./usr/local/bin/.", Path::PATH_UNIX); assert (p.isRelative()); assert (!p.isAbsolute()); assert (p.depth() == 3); assert (p[0] == "usr"); assert (p[1] == "local"); assert (p[2] == "bin"); assert (!p.isDirectory()); assert (p.isFile()); assert (p.toString(Path::PATH_UNIX) == "usr/local/bin/.");}void PathTest::testParseUnix4(){ Path p; p.parse("/usr/local/lib/../bin/", Path::PATH_UNIX); assert (!p.isRelative()); assert (p.isAbsolute()); assert (p.depth() == 3); assert (p[0] == "usr"); assert (p[1] == "local"); assert (p[2] == "bin"); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == "/usr/local/bin/"); p.parse("/usr/local/lib/../bin/", Path::PATH_UNIX); assert (!p.isRelative()); assert (p.isAbsolute()); assert (p.depth() == 3); assert (p[0] == "usr"); assert (p[1] == "local"); assert (p[2] == "bin"); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == "/usr/local/bin/"); p.parse("/usr/local/lib/../../", Path::PATH_UNIX); assert (!p.isRelative()); assert (p.isAbsolute()); assert (p.depth() == 1); assert (p[0] == "usr"); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == "/usr/"); p.parse("/usr/local/lib/..", Path::PATH_UNIX); assert (!p.isRelative()); assert (p.isAbsolute()); assert (p.depth() == 3); assert (p[0] == "usr"); assert (p[1] == "local"); assert (p[2] == "lib"); assert (!p.isDirectory()); assert (p.isFile()); assert (p.toString(Path::PATH_UNIX) == "/usr/local/lib/.."); p.parse("../usr/local/lib/", Path::PATH_UNIX); assert (p.isRelative()); assert (!p.isAbsolute()); assert (p.depth() == 4); assert (p[0] == ".."); assert (p[1] == "usr"); assert (p[2] == "local"); assert (p[3] == "lib"); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == "../usr/local/lib/"); p.parse("/usr/../lib/", Path::PATH_UNIX); assert (!p.isRelative()); assert (p.isAbsolute()); assert (p.depth() == 1); assert (p[0] == "lib"); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == "/lib/"); p.parse("/usr/../../lib/", Path::PATH_UNIX); assert (!p.isRelative()); assert (p.isAbsolute()); assert (p.depth() == 1); assert (p[0] == "lib"); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == "/lib/"); p.parse("local/../../lib/", Path::PATH_UNIX); assert (p.isRelative()); assert (!p.isAbsolute()); assert (p.depth() == 2); assert (p[0] == ".."); assert (p[1] == "lib"); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == "../lib/"); p.parse("a/b/c/d", Path::PATH_UNIX); assert (p.isRelative()); assert (!p.isAbsolute()); assert (p.depth() == 3); assert (p[0] == "a"); assert (p[1] == "b"); assert (p[2] == "c"); assert (!p.isDirectory()); assert (p.isFile()); assert (p.toString(Path::PATH_UNIX) == "a/b/c/d");}void PathTest::testParseUnix5(){ Path p; p.parse("/c:/windows/system32/", Path::PATH_UNIX); assert (!p.isRelative()); assert (p.isAbsolute()); assert (p.getDevice() == "c"); assert (p.depth() == 2); assert (p[0] == "windows"); assert (p[1] == "system32"); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_UNIX) == "/c:/windows/system32/"); }void PathTest::testParseWindows1(){ Path p; p.parse("", Path::PATH_WINDOWS); assert (p.isRelative()); assert (!p.isAbsolute()); assert (p.depth() == 0); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_WINDOWS) == ""); p.parse("/", Path::PATH_WINDOWS); assert (!p.isRelative()); assert (p.isAbsolute()); assert (p.depth() == 0); assert (p.isDirectory()); assert (!p.isFile()); assert (p.toString(Path::PATH_WINDOWS) == "\\"); p.parse("\\", Path::PATH_WINDOWS); assert (!p.isRelative()); assert (p.isAbsolute()); assert (p.depth() == 0); assert (p.isDirectory()); assert (!p.isFile());
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?