summaryrefslogtreecommitdiff
path: root/src/fs/virtfsdir_unittest.cc
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2017-02-28 00:54:28 +0300
committerAndrei Karas <akaras@inbox.ru>2017-02-28 00:54:28 +0300
commit6ebd6c0f16cf15bb455b81ca571ef88bac381655 (patch)
tree2be6a21600c7e0f8c0067c494e2510d6f3c0129c /src/fs/virtfsdir_unittest.cc
parenteb5128aa6ce4a33aa9021b51231d0934294c7caa (diff)
downloadplus-6ebd6c0f16cf15bb455b81ca571ef88bac381655.tar.gz
plus-6ebd6c0f16cf15bb455b81ca571ef88bac381655.tar.bz2
plus-6ebd6c0f16cf15bb455b81ca571ef88bac381655.tar.xz
plus-6ebd6c0f16cf15bb455b81ca571ef88bac381655.zip
Add path sanitization in virtfsdir.
Diffstat (limited to 'src/fs/virtfsdir_unittest.cc')
-rw-r--r--src/fs/virtfsdir_unittest.cc45
1 files changed, 31 insertions, 14 deletions
diff --git a/src/fs/virtfsdir_unittest.cc b/src/fs/virtfsdir_unittest.cc
index 1f162a6e9..589b10e4c 100644
--- a/src/fs/virtfsdir_unittest.cc
+++ b/src/fs/virtfsdir_unittest.cc
@@ -93,7 +93,7 @@ TEST_CASE("VirtFsDir addToSearchPath")
SECTION("simple 4")
{
- REQUIRE(VirtFsDir::addToSearchPathSilent("dir1",
+ REQUIRE(VirtFsDir::addToSearchPathSilent("dir1\\",
Append_true,
SkipError_true));
REQUIRE(VirtFsDir::addToSearchPathSilent("dir2",
@@ -105,7 +105,7 @@ TEST_CASE("VirtFsDir addToSearchPath")
REQUIRE(VirtFsDir::getEntries().size() == 2);
REQUIRE(VirtFsDir::getEntries()[0]->mRootDir == "dir1/");
REQUIRE(VirtFsDir::getEntries()[1]->mRootDir == "dir2/");
- REQUIRE(VirtFsDir::getEntries()[0]->mUserDir == "dir1");
+ REQUIRE(VirtFsDir::getEntries()[0]->mUserDir == "dir1/");
REQUIRE(VirtFsDir::getEntries()[1]->mUserDir == "dir2");
}
@@ -169,6 +169,7 @@ TEST_CASE("VirtFsDir removeFromSearchPath")
SECTION("simple 1")
{
REQUIRE_THROWS(VirtFsDir::removeFromSearchPath("dir1"));
+ REQUIRE_THROWS(VirtFsDir::removeFromSearchPath("dir1/"));
}
SECTION("simple 2")
@@ -185,7 +186,7 @@ TEST_CASE("VirtFsDir removeFromSearchPath")
REQUIRE(VirtFsDir::addToSearchPathSilent("dir1",
Append_true,
SkipError_true));
- REQUIRE(VirtFsDir::addToSearchPathSilent("dir2/dir3",
+ REQUIRE(VirtFsDir::addToSearchPathSilent("dir2//dir3",
Append_true,
SkipError_true));
REQUIRE(VirtFsDir::addToSearchPathSilent("dir3",
@@ -239,26 +240,26 @@ TEST_CASE("VirtFsDir exists")
{
VirtFsDir::init(".");
logger = new Logger();
- VirtFsDir::addToSearchPathSilent("data",
+ VirtFsDir::addToSearchPathSilent("data/",
Append_false,
SkipError_false);
- VirtFsDir::addToSearchPathSilent("../data",
+ VirtFsDir::addToSearchPathSilent("..\\data",
Append_false,
SkipError_false);
- REQUIRE(VirtFsDir::exists("test/units.xml") == true);
- REQUIRE(VirtFsDir::exists("test/units123.xml") == false);
+ REQUIRE(VirtFsDir::exists("test//units.xml") == true);
+ REQUIRE(VirtFsDir::exists("test/\\units123.xml") == false);
REQUIRE(VirtFsDir::exists("tesQ/units.xml") == false);
REQUIRE(VirtFsDir::exists("units.xml") == false);
- VirtFsDir::addToSearchPathSilent("data/test",
+ VirtFsDir::addToSearchPathSilent("data//test",
Append_false,
SkipError_false);
- VirtFsDir::addToSearchPathSilent("../data/test",
+ VirtFsDir::addToSearchPathSilent("..//data\\test",
Append_false,
SkipError_false);
- REQUIRE(VirtFsDir::exists("test/units.xml") == true);
+ REQUIRE(VirtFsDir::exists("test\\units.xml") == true);
REQUIRE(VirtFsDir::exists("test/units123.xml") == false);
REQUIRE(VirtFsDir::exists("tesQ/units.xml") == false);
REQUIRE(VirtFsDir::exists("units.xml") == true);
@@ -266,7 +267,7 @@ TEST_CASE("VirtFsDir exists")
VirtFsDir::removeFromSearchPathSilent("data/test");
VirtFsDir::removeFromSearchPathSilent("../data/test");
- REQUIRE(VirtFsDir::exists("test/units.xml") == true);
+ REQUIRE(VirtFsDir::exists("test\\units.xml") == true);
REQUIRE(VirtFsDir::exists("test/units123.xml") == false);
REQUIRE(VirtFsDir::exists("tesQ/units.xml") == false);
REQUIRE(VirtFsDir::exists("units.xml") == false);
@@ -320,12 +321,20 @@ TEST_CASE("VirtFsDir getRealDir")
REQUIRE(VirtFsDir::getRealDir("test") == "data");
REQUIRE(VirtFsDir::getRealDir("test/test.txt") ==
"data");
+ REQUIRE(VirtFsDir::getRealDir("test\\test.txt") ==
+ "data");
+ REQUIRE(VirtFsDir::getRealDir("test//test.txt") ==
+ "data");
}
else
{
REQUIRE(VirtFsDir::getRealDir("test") == "../data");
REQUIRE(VirtFsDir::getRealDir("test/test.txt") ==
"../data");
+ REQUIRE(VirtFsDir::getRealDir("test\\test.txt") ==
+ "../data");
+ REQUIRE(VirtFsDir::getRealDir("test//test.txt") ==
+ "../data");
}
REQUIRE(VirtFsDir::getRealDir("zzz") == "");
@@ -340,6 +349,8 @@ TEST_CASE("VirtFsDir getRealDir")
REQUIRE(VirtFsDir::getRealDir("test") == "data");
REQUIRE(VirtFsDir::getRealDir("test/test.txt") ==
"data");
+ REQUIRE(VirtFsDir::getRealDir("test\\test.txt") ==
+ "data");
REQUIRE(VirtFsDir::getRealDir("test.txt") ==
"data/test");
}
@@ -348,6 +359,8 @@ TEST_CASE("VirtFsDir getRealDir")
REQUIRE(VirtFsDir::getRealDir("test") == "../data");
REQUIRE(VirtFsDir::getRealDir("test/test.txt") ==
"../data");
+ REQUIRE(VirtFsDir::getRealDir("test\\test.txt") ==
+ "../data");
REQUIRE(VirtFsDir::getRealDir("test.txt") ==
"../data/test");
}
@@ -412,13 +425,13 @@ TEST_CASE("VirtFsDir enumerateFiles1")
VirtFsDir::freeList(list);
VirtFsDir::permitLinks(true);
- list = VirtFsDir::enumerateFiles("test");
+ list = VirtFsDir::enumerateFiles("test/");
removeTemp(list->names);
REQUIRE(list->names.size() == cnt2);
VirtFsDir::freeList(list);
VirtFsDir::permitLinks(false);
- list = VirtFsDir::enumerateFiles("test");
+ list = VirtFsDir::enumerateFiles("test\\");
removeTemp(list->names);
REQUIRE(list->names.size() == cnt1);
VirtFsDir::freeList(list);
@@ -509,7 +522,7 @@ TEST_CASE("VirtFsDir isDirectory")
REQUIRE(VirtFsDir::isDirectory("test//dir1") == true);
REQUIRE(VirtFsDir::isDirectory("test//dir1/") == true);
REQUIRE(VirtFsDir::isDirectory("test//dir1//") == true);
- REQUIRE(VirtFsDir::isDirectory("test/dir1/") == true);
+ REQUIRE(VirtFsDir::isDirectory("test\\dir1/") == true);
REQUIRE(VirtFsDir::isDirectory("test/dir1//") == true);
REQUIRE(VirtFsDir::isDirectory("testQ") == false);
REQUIRE(VirtFsDir::isDirectory("testQ/") == false);
@@ -531,6 +544,7 @@ TEST_CASE("VirtFsDir isDirectory")
REQUIRE(VirtFsDir::isDirectory("test") == true);
REQUIRE(VirtFsDir::isDirectory("testQ") == false);
REQUIRE(VirtFsDir::isDirectory("test/dir1") == true);
+ REQUIRE(VirtFsDir::isDirectory("test\\dir1") == true);
VirtFsDir::removeFromSearchPathSilent("data/test");
VirtFsDir::removeFromSearchPathSilent("../data/test");
@@ -567,6 +581,9 @@ TEST_CASE("VirtFsDir openRead")
file = VirtFsDir::openRead("test/units.xml");
REQUIRE(file != nullptr);
VirtFsDir::close(file);
+ file = VirtFsDir::openRead("test\\units.xml");
+ REQUIRE(file != nullptr);
+ VirtFsDir::close(file);
file = VirtFsDir::openRead("test/units123.xml");
REQUIRE(file == nullptr);
file = VirtFsDir::openRead("tesQ/units.xml");