summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Shalamov <alexander.shalamov@mapbox.com>2020-01-30 10:57:45 +0200
committerAlexander Shalamov <alexander.shalamov@mapbox.com>2020-02-06 23:54:19 +0200
commit5789faf11ae2a740927bce599a209883a78b113e (patch)
treeb01c766c2d54f852b70fd22096e688fed4367376
parentf30aec6c1a4397e524dc885767ccb349856fed0b (diff)
downloadqtlocation-mapboxgl-5789faf11ae2a740927bce599a209883a78b113e.tar.gz
[core] Add unit test for global settings object
-rw-r--r--next/test/CMakeLists.txt1
-rw-r--r--test/platform/settings.test.cpp48
-rw-r--r--test/test-files.json1
3 files changed, 50 insertions, 0 deletions
diff --git a/next/test/CMakeLists.txt b/next/test/CMakeLists.txt
index a9814aa033..0dde4bd219 100644
--- a/next/test/CMakeLists.txt
+++ b/next/test/CMakeLists.txt
@@ -22,6 +22,7 @@ add_library(
${MBGL_ROOT}/test/math/clamp.test.cpp
${MBGL_ROOT}/test/math/minmax.test.cpp
${MBGL_ROOT}/test/math/wrap.test.cpp
+ ${MBGL_ROOT}/test/platform/settings.test.cpp
${MBGL_ROOT}/test/programs/symbol_program.test.cpp
${MBGL_ROOT}/test/renderer/backend_scope.test.cpp
${MBGL_ROOT}/test/renderer/image_manager.test.cpp
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));
+}
diff --git a/test/test-files.json b/test/test-files.json
index dbf81f031b..1c70565de8 100644
--- a/test/test-files.json
+++ b/test/test-files.json
@@ -23,6 +23,7 @@
"test/math/clamp.test.cpp",
"test/math/minmax.test.cpp",
"test/math/wrap.test.cpp",
+ "test/platform/settings.test.cpp",
"test/programs/symbol_program.test.cpp",
"test/renderer/backend_scope.test.cpp",
"test/renderer/image_manager.test.cpp",