Skip to content

Commit

Permalink
#3027 settings: add more test cases
Browse files Browse the repository at this point in the history
Signed-off-by: Patrizio Bekerle <[email protected]>
  • Loading branch information
pbek committed Sep 25, 2024
1 parent 6103454 commit 57211e2
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 3 deletions.
36 changes: 33 additions & 3 deletions tests/unit_tests/testcases/app/test_settingsservice.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,36 @@ void TestSettingsService::testSimpleSetAndRead() {
// Remove the key and test if it was removed
settings.remove(key);
QVERIFY(!settings.contains(key));
QVERIFY(!QSettings().contains(key));
QVERIFY(settings.value(key).toString() != value1);
QVERIFY(settings.value(key).toString() != value2);
QVERIFY(QSettings().value(key).toString() != value1);
QVERIFY(QSettings().value(key).toString() != value2);
}

void TestSettingsService::testClear() {
const auto key = QStringLiteral("test-key");
const auto value = QStringLiteral("test-value");

SettingsService settings;

// Set and test a value
settings.setValue(key, value);
QVERIFY(settings.contains(key));
QVERIFY(settings.value(key).toString() == value);
QVERIFY(settings.allKeys().count() == 1);
QVERIFY(QSettings().allKeys().count() == 1);

// Clear the settings and test if they were removed
settings.clear();
QVERIFY(!settings.contains(key));
QVERIFY(settings.value(key).toString() != value);
QVERIFY(!QSettings().contains(key));
QVERIFY(QSettings().value(key).toString() != value);
QVERIFY(settings.allKeys().isEmpty());
QVERIFY(QSettings().allKeys().isEmpty());
}

void TestSettingsService::testGroupRemove() {
const auto group = QStringLiteral("test-group");
const auto key = QStringLiteral("test-key");
Expand Down Expand Up @@ -94,24 +118,30 @@ void TestSettingsService::testGroupSet() {
}

void TestSettingsService::testArraySetAndRead() {
const auto key = QStringLiteral("test-array");
const auto prefix = QStringLiteral("test-array");
const auto key = QStringLiteral("test-key");
const auto value1 = QStringLiteral("test-value1");
const auto value2 = QStringLiteral("test-value2");

SettingsService settings;

// Set and test an array value
settings.beginWriteArray(key, 2);
settings.beginWriteArray(prefix, 2);
settings.setArrayIndex(0);
settings.setValue(key, value1);
settings.setArrayIndex(1);
settings.setValue(key, value2);
settings.endArray();

QVERIFY(settings.beginReadArray(key) == 2);
QVERIFY(settings.beginReadArray(prefix) == 2);
settings.setArrayIndex(0);
QVERIFY(settings.value(key).toString() == value1);
settings.setArrayIndex(1);
QVERIFY(settings.value(key).toString() == value2);
settings.endArray();

// Index starts from 1 (see https://doc.qt.io/qt-6/qsettings.html#beginWriteArray)
QVERIFY(QSettings().value(prefix + "/1/" + key).toString() == value1);
QVERIFY(QSettings().value(prefix + "/2/" + key).toString() == value2);
QVERIFY(QSettings().value(prefix + "/size").toInt() == 2);
}
1 change: 1 addition & 0 deletions tests/unit_tests/testcases/app/test_settingsservice.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ class TestSettingsService : public QObject {

private Q_SLOTS:
void initTestCase();
void testClear();
void testSimpleSetAndRead();
void testGroupRemove();
void testGroupRead();
Expand Down

0 comments on commit 57211e2

Please sign in to comment.