summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorThiago Marcos P. Santos <thiago@mapbox.com>2016-08-17 15:55:59 +0300
committerThiago Marcos P. Santos <thiago@mapbox.com>2016-08-26 16:08:44 +0300
commitaf56f0303133d553723c38df81910c076ba8a89a (patch)
tree7d5f7dba0f572061cf4abb0f8aca582bdc938b78 /platform
parent7a2bfe32f88fee8d6a29f9e26e1f7a293aaee810 (diff)
downloadqtlocation-mapboxgl-af56f0303133d553723c38df81910c076ba8a89a.tar.gz
[Qt][tests] Added tests for set style interface
Diffstat (limited to 'platform')
-rw-r--r--platform/qt/config.cmake1
-rw-r--r--platform/qt/test/qmapboxgl.cpp94
2 files changed, 95 insertions, 0 deletions
diff --git a/platform/qt/config.cmake b/platform/qt/config.cmake
index f22e4c827b..0cc07cc8ae 100644
--- a/platform/qt/config.cmake
+++ b/platform/qt/config.cmake
@@ -44,6 +44,7 @@ macro(mbgl_platform_test)
target_sources(mbgl-test
PRIVATE test/src/main.cpp
PRIVATE platform/qt/test/headless_view_qt.cpp
+ PRIVATE platform/qt/test/qmapboxgl.cpp
PRIVATE platform/default/headless_display.cpp
PRIVATE platform/default/headless_view.cpp
)
diff --git a/platform/qt/test/qmapboxgl.cpp b/platform/qt/test/qmapboxgl.cpp
new file mode 100644
index 0000000000..67b2163ab8
--- /dev/null
+++ b/platform/qt/test/qmapboxgl.cpp
@@ -0,0 +1,94 @@
+#include <mbgl/test/util.hpp>
+#include <mbgl/util/io.hpp>
+
+#include <QApplication>
+#include <QGLWidget>
+#include <QMapbox>
+#include <QMapboxGL>
+
+class QMapboxGLTest : public QObject, public ::testing::Test {
+ Q_OBJECT
+
+public:
+ QMapboxGLTest() : app(argc, const_cast<char**>(&argv)), map(nullptr, settings) {
+ connect(&map, SIGNAL(mapChanged(QMapboxGL::MapChange)),
+ this, SLOT(onMapChanged(QMapboxGL::MapChange)));
+ connect(&map, SIGNAL(needsRendering()),
+ this, SLOT(onNeedsRendering()));
+
+ widget.makeCurrent();
+ QMapbox::initializeGLExtensions();
+
+ map.resize(QSize(512, 512));
+ map.setCoordinateZoom(QMapbox::Coordinate(60.170448, 24.942046), 14);
+ }
+
+ void runUntil(QMapboxGL::MapChange status) {
+ changeCallback = [&](QMapboxGL::MapChange change) {
+ if (change == status) {
+ app.exit();
+ changeCallback = nullptr;
+ }
+ };
+
+ app.exec();
+ }
+
+private:
+ int argc = 1;
+ const char* argv = "mbgl-test";
+
+ QApplication app;
+ QGLWidget widget;
+
+protected:
+ QMapboxGLSettings settings;
+ QMapboxGL map;
+
+ std::function<void(QMapboxGL::MapChange)> changeCallback;
+
+private slots:
+ void onMapChanged(QMapboxGL::MapChange change) {
+ if (changeCallback) {
+ changeCallback(change);
+ }
+ };
+
+ void onNeedsRendering() {
+ map.render();
+ };
+};
+
+TEST_F(QMapboxGLTest, TEST_DISABLED_ON_CI(styleJson)) {
+ QString json = QString::fromStdString(
+ mbgl::util::read_file("test/fixtures/resources/style_vector.json"));
+
+ map.setStyleJson(json);
+ ASSERT_EQ(map.styleJson(), json);
+ runUntil(QMapboxGL::MapChangeDidFinishLoadingMap);
+
+ map.setStyleJson("invalid json");
+ runUntil(QMapboxGL::MapChangeDidFailLoadingMap);
+
+ map.setStyleJson("\"\"");
+ runUntil(QMapboxGL::MapChangeDidFailLoadingMap);
+
+ map.setStyleJson(QString());
+ runUntil(QMapboxGL::MapChangeDidFailLoadingMap);
+}
+
+TEST_F(QMapboxGLTest, TEST_DISABLED_ON_CI(styleUrl)) {
+ QString url(QMapbox::defaultStyles()[0].first);
+
+ map.setStyleUrl(url);
+ ASSERT_EQ(map.styleUrl(), url);
+ runUntil(QMapboxGL::MapChangeDidFinishLoadingMap);
+
+ map.setStyleUrl("invalid://url");
+ runUntil(QMapboxGL::MapChangeDidFailLoadingMap);
+
+ map.setStyleUrl(QString());
+ runUntil(QMapboxGL::MapChangeDidFailLoadingMap);
+}
+
+#include "qmapboxgl.moc"