#include "mpvuserconfig.h" #include using namespace Qt::Literals::StringLiterals; class MpvUserConfigTest : public QObject { Q_OBJECT private Q_SLOTS: void expandsConfigDirPaths() { const auto prepared = MpvUserConfig::prepare(u"glsl-shaders=\"~~/shaders/a.glsl\"\ninclude=~~home/extra.conf\n"_s, u"/home/me/.config/mpv"_s); QCOMPARE(prepared.content, u"glsl-shaders=\"/home/me/.config/mpv/shaders/a.glsl\"\ninclude=/home/me/.config/mpv/extra.conf\n"_s); QVERIFY(prepared.skippedOptions.isEmpty()); } void skipsOptionsThatBreakEmbedding() { const QString conf = u"# comment\nvo=gpu-next\nhwdec=auto\n[big]\nno-fs\n--idle=no\n vo = gpu\nvolume=50\n"_s; const auto prepared = MpvUserConfig::prepare(conf, u"/c"_s); QCOMPARE(prepared.skippedOptions, (QStringList{u"vo"_s, u"fs"_s, u"idle"_s})); QCOMPARE(prepared.content, u"# comment\n# skipped by QtPotato: vo=gpu-next\nhwdec=auto\n[big]\n# skipped by QtPotato: no-fs\n" "# skipped by QtPotato: --idle=no\n# skipped by QtPotato: vo = gpu\nvolume=50\n"_s); } void keepsSimilarlyNamedOptions() { // "vo" must not catch "volume" or "vo-..." style options. const auto prepared = MpvUserConfig::prepare(u"volume=70\nvideo-sync=display-resample\nfs-screen=1\n"_s, u"/c"_s); QVERIFY(prepared.skippedOptions.isEmpty()); } }; QTEST_GUILESS_MAIN(MpvUserConfigTest) #include "mpvuserconfigtest.moc"