@@ -222,6 +222,36 @@ void TestQgsVectorTileLayer::testMbtilesProviderMetadata()
222
222
QgsProviderMetadata *vectorTileMetadata = QgsProviderRegistry::instance ()->providerMetadata ( " mbtilesvectortiles" );
223
223
QVERIFY ( vectorTileMetadata );
224
224
225
+ // not mbtile uris
226
+ QCOMPARE ( vectorTileMetadata->priorityForUri ( QString () ), 0 );
227
+ QCOMPARE ( vectorTileMetadata->validLayerTypesForUri ( QString () ), {} );
228
+
229
+ QCOMPARE ( vectorTileMetadata->priorityForUri ( QStringLiteral ( TEST_DATA_DIR ) + QStringLiteral ( " /points.shp" ) ), 0 );
230
+ QVERIFY ( vectorTileMetadata->validLayerTypesForUri ( QStringLiteral ( TEST_DATA_DIR ) + QStringLiteral ( " /points.shp" ) ).isEmpty () );
231
+ QVERIFY ( vectorTileMetadata->querySublayers ( QStringLiteral ( TEST_DATA_DIR ) + QStringLiteral ( " /points.shp" ) ).isEmpty () );
232
+
233
+ QCOMPARE ( vectorTileMetadata->priorityForUri ( QStringLiteral ( " type=vtpk&url=%1/points.shp" ).arg ( TEST_DATA_DIR ) ), 0 );
234
+ QVERIFY ( vectorTileMetadata->validLayerTypesForUri ( QStringLiteral ( " type=vtpk&url=%1/points.shp" ).arg ( TEST_DATA_DIR ) ).isEmpty () );
235
+ QVERIFY ( vectorTileMetadata->querySublayers ( QStringLiteral ( " type=vtpk&url=%1/points.shp" ).arg ( TEST_DATA_DIR ) ).isEmpty () );
236
+
237
+ // mbtile uris
238
+ QCOMPARE ( vectorTileMetadata->priorityForUri ( QStringLiteral ( " %1/vector_tile/mbtiles_vt.mbtiles" ).arg ( TEST_DATA_DIR ) ), 100 );
239
+ QCOMPARE ( vectorTileMetadata->validLayerTypesForUri ( QStringLiteral ( " %1/vector_tile/mbtiles_vt.mbtiles" ).arg ( TEST_DATA_DIR ) ), {Qgis::LayerType::VectorTile} );
240
+
241
+ QCOMPARE ( vectorTileMetadata->priorityForUri ( QStringLiteral ( " type=mbtiles&url=%1/vector_tile/mbtiles_vt.mbtiles" ).arg ( TEST_DATA_DIR ) ), 100 );
242
+ QCOMPARE ( vectorTileMetadata->validLayerTypesForUri ( QStringLiteral ( " type=mbtiles&url=%1/vector_tile/mbtiles_vt.mbtiles" ).arg ( TEST_DATA_DIR ) ), {Qgis::LayerType::VectorTile} );
243
+
244
+ // test that mbtilesvectortiles provider is the preferred provider for vector tile mbtiles files
245
+ QList<QgsProviderRegistry::ProviderCandidateDetails> candidates = QgsProviderRegistry::instance ()->preferredProvidersForUri ( QStringLiteral ( " type=mbtiles&url=%1/vector_tile/mbtiles_vt.mbtiles" ).arg ( TEST_DATA_DIR ) );
246
+ QCOMPARE ( candidates.size (), 1 );
247
+ QCOMPARE ( candidates.at ( 0 ).metadata ()->key (), QStringLiteral ( " mbtilesvectortiles" ) );
248
+ QCOMPARE ( candidates.at ( 0 ).layerTypes (), QList< Qgis::LayerType >() << Qgis::LayerType::VectorTile );
249
+
250
+ candidates = QgsProviderRegistry::instance ()->preferredProvidersForUri ( QStringLiteral ( " %1/vector_tile/mbtiles_vt.mbtiles" ).arg ( TEST_DATA_DIR ) );
251
+ QCOMPARE ( candidates.size (), 1 );
252
+ QCOMPARE ( candidates.at ( 0 ).metadata ()->key (), QStringLiteral ( " mbtilesvectortiles" ) );
253
+ QCOMPARE ( candidates.at ( 0 ).layerTypes (), QList< Qgis::LayerType >() << Qgis::LayerType::VectorTile );
254
+
225
255
QCOMPARE ( vectorTileMetadata->filters ( Qgis::FileFilterType::VectorTile ), QStringLiteral ( " Mbtiles Vector Tiles (*.mbtiles *.MBTILES)" ) );
226
256
QCOMPARE ( vectorTileMetadata->filters ( Qgis::FileFilterType::PointCloud ), QString () );
227
257
@@ -367,6 +397,16 @@ void TestQgsVectorTileLayer::testVtpkProviderMetadata()
367
397
QCOMPARE ( sublayers.at ( 0 ).uri (), QStringLiteral ( " type=vtpk&url=%1/testvtpk.vtpk" ).arg ( TEST_DATA_DIR ) );
368
398
QCOMPARE ( sublayers.at ( 0 ).type (), Qgis::LayerType::VectorTile );
369
399
400
+ // test that vtpk provider is the preferred provider for vtpk files
401
+ QList<QgsProviderRegistry::ProviderCandidateDetails> candidates = QgsProviderRegistry::instance ()->preferredProvidersForUri ( QStringLiteral ( " type=vtpk&url=%1/testvtpk.vtpk" ).arg ( TEST_DATA_DIR ) );
402
+ QCOMPARE ( candidates.size (), 1 );
403
+ QCOMPARE ( candidates.at ( 0 ).metadata ()->key (), QStringLiteral ( " vtpkvectortiles" ) );
404
+ QCOMPARE ( candidates.at ( 0 ).layerTypes (), QList< Qgis::LayerType >() << Qgis::LayerType::VectorTile );
405
+
406
+ candidates = QgsProviderRegistry::instance ()->preferredProvidersForUri ( QStringLiteral ( TEST_DATA_DIR ) + QStringLiteral ( " /testvtpk.vtpk" ) );
407
+ QCOMPARE ( candidates.size (), 1 );
408
+ QCOMPARE ( candidates.at ( 0 ).metadata ()->key (), QStringLiteral ( " vtpkvectortiles" ) );
409
+ QCOMPARE ( candidates.at ( 0 ).layerTypes (), QList< Qgis::LayerType >() << Qgis::LayerType::VectorTile );
370
410
371
411
QCOMPARE ( vectorTileMetadata->filters ( Qgis::FileFilterType::VectorTile ), QStringLiteral ( " VTPK Vector Tiles (*.vtpk *.VTPK)" ) );
372
412
QCOMPARE ( vectorTileMetadata->filters ( Qgis::FileFilterType::PointCloud ), QString () );
0 commit comments