Fix unit tests

revert-6246b479
Evil Eye 2 years ago
parent eeda48ec50
commit e791d2b498

@ -27,7 +27,7 @@ namespace
{
std::unique_ptr<VFS::Manager> mVFS = TestingOpenMW::createTestVFS({});
EXPECT_EQ(correctSoundPath("sound\\foo.wav", mVFS.get()), "sound/foo.mp3");
EXPECT_EQ(correctSoundPath("SOUND\\foo.WAV", mVFS.get()), "SOUND/foo.mp3");
EXPECT_EQ(correctSoundPath("SOUND\\foo.WAV", mVFS.get()), "sound/foo.mp3");
}
namespace

@ -7,6 +7,7 @@
#include <components/misc/strings/conversion.hpp>
#include <components/vfs/archive.hpp>
#include <components/vfs/manager.hpp>
#include <components/vfs/pathutil.hpp>
namespace TestingOpenMW
{
@ -49,21 +50,25 @@ namespace TestingOpenMW
struct VFSTestData : public VFS::Archive
{
std::map<std::string, VFS::File*> mFiles;
std::map<std::string, VFS::File*, VFS::Path::PathLess> mFiles;
VFSTestData(std::map<std::string, VFS::File*> files)
VFSTestData(std::map<std::string, VFS::File*, VFS::Path::PathLess> files)
: mFiles(std::move(files))
{
}
void listResources(std::map<std::string, VFS::File*>& out) override { out = mFiles; }
void listResources(std::map<std::string, VFS::File*>& out) override
{
for (const auto& [key, value] : mFiles)
out.emplace(VFS::Path::normalizeFilename(key), value);
}
bool contains(const std::string& file) const override { return mFiles.count(file) != 0; }
std::string getDescription() const override { return "TestData"; }
};
inline std::unique_ptr<VFS::Manager> createTestVFS(std::map<std::string, VFS::File*> files)
inline std::unique_ptr<VFS::Manager> createTestVFS(std::map<std::string, VFS::File*, VFS::Path::PathLess> files)
{
auto vfs = std::make_unique<VFS::Manager>();
vfs->addArchive(std::make_unique<VFSTestData>(std::move(files)));

@ -45,6 +45,13 @@ namespace VFS::Path
return std::equal(
std::begin(x), std::end(x), std::begin(y), [](char l, char r) { return normalize(l) == normalize(r); });
}
struct PathLess
{
using is_transparent = void;
bool operator()(std::string_view left, std::string_view right) const { return pathLess(left, right); }
};
}
#endif

Loading…
Cancel
Save