diff options
author | Alexander Shalamov <alexander.shalamov@mapbox.com> | 2020-01-30 10:57:45 +0200 |
---|---|---|
committer | Alexander Shalamov <alexander.shalamov@mapbox.com> | 2020-02-06 23:54:19 +0200 |
commit | 5789faf11ae2a740927bce599a209883a78b113e (patch) | |
tree | b01c766c2d54f852b70fd22096e688fed4367376 | |
parent | f30aec6c1a4397e524dc885767ccb349856fed0b (diff) | |
download | qtlocation-mapboxgl-5789faf11ae2a740927bce599a209883a78b113e.tar.gz |
[core] Add unit test for global settings object
-rw-r--r-- | next/test/CMakeLists.txt | 1 | ||||
-rw-r--r-- | test/platform/settings.test.cpp | 48 | ||||
-rw-r--r-- | test/test-files.json | 1 |
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", |