1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
/*
* Xournal++
*
* This file is part of the Xournal UnitTests
*
* @author Xournal++ Team
* https://github.com/xournalpp/xournalpp
*
* @license GNU GPLv2 or later
*/
#include <gtest/gtest.h>
#include "control/settings/Settings.h"
TEST(SettingsTest, testLoadDoesNotThrowForNonExistingFilePath) {
Settings settings{"non-existing-file-path"};
EXPECT_NO_THROW(settings.load());
}
// Rudimentary test for Settings save/load - very crude
TEST(SettingsTest, testReadWrite) {
auto saveReloadTest = [&](const fs::path& dir) {
std::cout << "Test saving in " << dir << std::endl;
const fs::path outPath = dir / "xournalpp-test-units_Settings_testReadWrite.xml";
if (fs::exists(outPath)) {
std::cout << "Removing file (already exist): " << dir << std::endl;
fs::remove(outPath);
};
Settings settings(outPath);
settings.transactionStart();
settings.setAudioDisabled(true); // bool
settings.setDefaultSaveName(u8"foo/bar€_%H"); // u8string
settings.setPreferredLocale("es"); // string
settings.setPageTemplate("wasd"); // string
settings.setDisplayDpi(123); // int
settings.setStabilizerDrag(3.1415); // double
settings.setBackgroundColor(Color(123, 45, 67)); // Color
settings.setColorPaletteSetting("foo/bar€_palette"); // path
settings.setEraserVisibility(ERASER_VISIBILITY_HOVER); // enum
settings.setFont(XojFont{"myfontname italic 34"}); // Font
settings.latexSettings.editorFont = XojFont{"myfonttest 52"}; // Font
settings.setPreloadPagesAfter(145); // unsigned int
settings.transactionEnd(); // calls save()
Settings loaded(outPath);
loaded.load();
// For each type, we test one that has been changed and one that should be default
EXPECT_EQ(settings.isAudioDisabled(), loaded.isAudioDisabled()); // bool
EXPECT_EQ(settings.isAutoloadPdfXoj(), loaded.isAutoloadPdfXoj()); // bool
EXPECT_EQ(settings.getDefaultSaveName(), loaded.getDefaultSaveName()); // u8string
EXPECT_EQ(settings.getDefaultPdfExportName(), loaded.getDefaultPdfExportName()); // u8string
EXPECT_EQ(settings.getPreferredLocale(), loaded.getPreferredLocale()); // string
EXPECT_EQ(settings.getPageTemplate(), loaded.getPageTemplate()); // string
EXPECT_EQ(settings.getDisplayDpi(), loaded.getDisplayDpi()); // int
EXPECT_EQ(settings.getAddHorizontalSpaceAmountLeft(), loaded.getAddHorizontalSpaceAmountLeft()); // int
EXPECT_EQ(settings.getStabilizerDrag(), loaded.getStabilizerDrag()); // double
EXPECT_EQ(settings.getCursorHighlightBorderWidth(), loaded.getCursorHighlightBorderWidth()); // double
EXPECT_EQ(settings.getBackgroundColor(), loaded.getBackgroundColor()); // Color
EXPECT_EQ(settings.getActiveSelectionColor(), loaded.getActiveSelectionColor()); // Color
EXPECT_EQ(settings.getColorPaletteSetting(), loaded.getColorPaletteSetting()); // path
EXPECT_EQ(settings.getLastOpenPath(), loaded.getLastOpenPath()); // path
EXPECT_EQ(settings.getEraserVisibility(), loaded.getEraserVisibility()); // enum
EXPECT_EQ(settings.getActiveViewMode(), loaded.getActiveViewMode()); // enum
EXPECT_EQ(settings.getFont().getName(), loaded.getFont().getName()); // Font
EXPECT_EQ(settings.getFont().getSize(), loaded.getFont().getSize()); // Font
EXPECT_EQ(settings.latexSettings.editorFont.getName(), loaded.latexSettings.editorFont.getName()); // Font
EXPECT_EQ(settings.latexSettings.editorFont.getSize(), loaded.latexSettings.editorFont.getSize()); // Font
EXPECT_EQ(settings.getPreloadPagesAfter(), loaded.getPreloadPagesAfter()); // unsigned int
EXPECT_EQ(settings.getPreloadPagesBefore(), loaded.getPreloadPagesBefore()); // unsigned int
fs::remove(outPath);
};
saveReloadTest(fs::temp_directory_path());
}
|