fix: honor DirectoryIsValid create flag; unbreak Windows CI tests
DirectoryIsValid() ignored try_to_create_if_not_exists and always called mkpath(). On the Windows CI runner (which may create dirs at the drive root) PathWidget validation both created bogus directories and never flagged invalid paths; on Linux the mkpath just failed. - filefunctions: only mkpath when try_to_create_if_not_exists is set - TaskProjectLoadTest: Project::set_filename() stores native separators on Windows, normalize before comparing paths - DialogProjectProperties: use a nonexistent file inside a temp dir instead of a fixed /definitely/... path that prior tests may have partially created on a writable drive
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
#include <QGroupBox>
|
||||
#include <QLineEdit>
|
||||
#include <QStandardPaths>
|
||||
#include <QTemporaryDir>
|
||||
#include <QTreeWidget>
|
||||
#include <QXmlStreamReader>
|
||||
#include <QXmlStreamWriter>
|
||||
@@ -803,8 +804,13 @@ TEST(DialogProjectProperties, OcioValidationTogglesOnInvalidFilename)
|
||||
auto *ocio_edit = dialog.findChild<QLineEdit *>();
|
||||
ASSERT_NE(ocio_edit, nullptr);
|
||||
|
||||
// A bad config path flags the line edit as invalid (red text)
|
||||
ocio_edit->setText(QStringLiteral("/definitely/not/a/config.ocio"));
|
||||
// A bad config path flags the line edit as invalid (red text). Use a
|
||||
// nonexistent file inside a temp dir: a fixed absolute path is not
|
||||
// guaranteed to stay nonexistent on every platform (e.g. an earlier test
|
||||
// may have created parts of it on a writable drive).
|
||||
QTemporaryDir dir;
|
||||
ASSERT_TRUE(dir.isValid());
|
||||
ocio_edit->setText(dir.filePath(QStringLiteral("nonexistent.ocio")));
|
||||
EXPECT_TRUE(ocio_edit->styleSheet().contains(QStringLiteral("red")));
|
||||
|
||||
// Restoring an empty (default) filename clears the error again
|
||||
|
||||
@@ -312,7 +312,9 @@ TEST_F(TaskProjectLoadTest, LoadingValidProjectSucceeds)
|
||||
|
||||
olive::Project *loaded = task.GetLoadedProject();
|
||||
ASSERT_NE(loaded, nullptr);
|
||||
EXPECT_EQ(loaded->filename(), path);
|
||||
// Project::set_filename() stores native separators on Windows
|
||||
EXPECT_EQ(QDir::fromNativeSeparators(loaded->filename()),
|
||||
QDir::fromNativeSeparators(path));
|
||||
EXPECT_FALSE(loaded->nodes().isEmpty());
|
||||
|
||||
delete loaded;
|
||||
|
||||
Reference in New Issue
Block a user