summaryrefslogtreecommitdiff
path: root/test/platform/settings.test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/platform/settings.test.cpp')
-rw-r--r--test/platform/settings.test.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/test/platform/settings.test.cpp b/test/platform/settings.test.cpp
new file mode 100644
index 0000000000..46a8fc7ef9
--- /dev/null
+++ b/test/platform/settings.test.cpp
@@ -0,0 +1,48 @@
+#include <gtest/gtest.h>
+#include <mbgl/platform/settings.hpp>
+
+using namespace mbgl;
+using namespace mbgl::platform;
+
+TEST(Settings, SetAndGet) {
+ using Value = mapbox::base::Value;
+ using Object = mapbox::base::ValueObject;
+
+ auto& settings = Settings::getInstance();
+ auto value = settings.get(EXPERIMENTAL_THREAD_PRIORITY_WORKER);
+ EXPECT_TRUE(value.is<mapbox::base::NullValue>());
+
+ Value lowPrioValue{19.0};
+ settings.set(EXPERIMENTAL_THREAD_PRIORITY_WORKER, lowPrioValue);
+ auto threadPriority = settings.get(EXPERIMENTAL_THREAD_PRIORITY_WORKER);
+ EXPECT_EQ(lowPrioValue, threadPriority);
+ EXPECT_EQ(lowPrioValue, settings.get("mapbox_thread_priority_worker"));
+
+ Value networkPrioValue{-20.0};
+ Value databasePrioValue{-10.0};
+ Object multipleValues{{EXPERIMENTAL_THREAD_PRIORITY_DATABASE, databasePrioValue},
+ {EXPERIMENTAL_THREAD_PRIORITY_NETWORK, networkPrioValue}};
+ settings.set(std::move(multipleValues));
+
+ std::vector<std::string> keys{EXPERIMENTAL_THREAD_PRIORITY_WORKER,
+ EXPERIMENTAL_THREAD_PRIORITY_DATABASE,
+ EXPERIMENTAL_THREAD_PRIORITY_NETWORK,
+ EXPERIMENTAL_THREAD_PRIORITY_FILE};
+
+ auto object = settings.get(keys);
+
+ Object values{{EXPERIMENTAL_THREAD_PRIORITY_WORKER, lowPrioValue},
+ {EXPERIMENTAL_THREAD_PRIORITY_DATABASE, databasePrioValue},
+ {EXPERIMENTAL_THREAD_PRIORITY_NETWORK, networkPrioValue},
+ {EXPERIMENTAL_THREAD_PRIORITY_FILE, Value{}}};
+
+ EXPECT_EQ(values, object);
+
+ values = Object{{EXPERIMENTAL_THREAD_PRIORITY_WORKER, Value{}},
+ {EXPERIMENTAL_THREAD_PRIORITY_DATABASE, Value{}},
+ {EXPERIMENTAL_THREAD_PRIORITY_NETWORK, Value{}},
+ {EXPERIMENTAL_THREAD_PRIORITY_FILE, Value{}}};
+
+ settings.set(values);
+ EXPECT_EQ(values, settings.get(keys));
+}