Add unit tests

This commit is contained in:
Yoann Quenach de Quivillic 2025-07-03 22:57:54 +02:00 committed by Nyall Dawson
parent 91e25e8051
commit 122bf8dba9
4 changed files with 59 additions and 4 deletions

View File

@ -115,7 +115,7 @@ bool QgsLayoutItemRegistry::removeLayoutItemType( int typeId )
if ( !mMetadata.contains( typeId ) )
return false;
mMetadata.remove( typeId );
emit multiFrameTypeRemoved( typeId );
emit typeRemoved( typeId );
return true;
}
@ -139,7 +139,7 @@ bool QgsLayoutItemRegistry::removeLayoutMultiFrameType( int typeId )
if ( !mMultiFrameMetadata.contains( typeId ) )
return false;
mMultiFrameMetadata.remove( typeId );
emit typeRemoved( typeId );
emit multiFrameTypeRemoved( typeId );
return true;
}

View File

@ -244,7 +244,7 @@ void TestQgsLayoutItem::registry()
QVERIFY( !registry.addLayoutItemType( metadata ) );
QCOMPARE( spyTypeAdded.count(), 1 );
//retrieve metadata
// retrieve metadata
QVERIFY( !registry.itemMetadata( -1 ) );
QCOMPARE( registry.itemMetadata( 2 )->visibleName(), QStringLiteral( "my type" ) );
QCOMPARE( registry.itemMetadata( 2 )->visiblePluralName(), QStringLiteral( "my types" ) );
@ -261,7 +261,24 @@ void TestQgsLayoutItem::registry()
registry.resolvePaths( 2, props, QgsPathResolver(), true );
QVERIFY( props.isEmpty() );
//test populate
// Test remove item type
QgsLayoutItemMetadata *metadata_42 = new QgsLayoutItemMetadata( 42, QStringLiteral( "my other type" ), QStringLiteral( "my other types" ), create, resolve );
QVERIFY( registry.addLayoutItemType( metadata_42 ) );
QCOMPARE( registry.itemTypes().count(), 2 );
QCOMPARE( spyTypeAdded.value( 1 ).at( 0 ).toInt(), 42 );
const QSignalSpy spyTypeRemoved( &registry, &QgsLayoutItemRegistry::typeRemoved );
QVERIFY( registry.removeLayoutItemType( 2 ) ); // Remove by id
QCOMPARE( spyTypeRemoved.count(), 1 );
QCOMPARE( spyTypeRemoved.value( 0 ).at( 0 ).toInt(), 2 );
QCOMPARE( registry.itemTypes().count(), 1 );
QVERIFY( registry.removeLayoutItemType( metadata_42 ) ); // Remove by metadata
QCOMPARE( spyTypeRemoved.count(), 2 );
QCOMPARE( spyTypeRemoved.value( 1 ).at( 0 ).toInt(), 42 );
QCOMPARE( registry.itemTypes().count(), 0 );
// test populate
QgsLayoutItemRegistry reg2;
QVERIFY( reg2.itemTypes().isEmpty() );
QVERIFY( reg2.populate() );

View File

@ -538,6 +538,23 @@ void TestQgsLayoutMultiFrame::registry()
QCOMPARE( props.size(), 1 );
registry.resolvePaths( QgsLayoutItemRegistry::PluginItem + 1, props, QgsPathResolver(), true );
QVERIFY( props.isEmpty() );
// Test remove multi frame type
QgsLayoutMultiFrameMetadata *metadata_42 = new QgsLayoutMultiFrameMetadata( QgsLayoutItemRegistry::PluginItem + 42, QStringLiteral( "TestMultiFrame42" ), create, resolve );
QVERIFY( registry.addLayoutMultiFrameType( metadata_42 ) );
QCOMPARE( registry.itemTypes().count(), 2 );
QCOMPARE( spyTypeAdded.value( 1 ).at( 0 ).toInt(), QgsLayoutItemRegistry::PluginItem + 42 );
const QSignalSpy spyTypeRemoved( &registry, &QgsLayoutItemRegistry::multiFrameTypeRemoved );
QVERIFY( registry.removeLayoutMultiFrameType( QgsLayoutItemRegistry::PluginItem + 1 ) ); // Remove by id
QCOMPARE( spyTypeRemoved.count(), 1 );
QCOMPARE( spyTypeRemoved.value( 0 ).at( 0 ).toInt(), QgsLayoutItemRegistry::PluginItem + 1 );
QCOMPARE( registry.itemTypes().count(), 1 );
QVERIFY( registry.removeLayoutMultiFrameType( metadata_42 ) ); // Remove by metadata
QCOMPARE( spyTypeRemoved.count(), 2 );
QCOMPARE( spyTypeRemoved.value( 1 ).at( 0 ).toInt(), QgsLayoutItemRegistry::PluginItem + 42 );
QCOMPARE( registry.itemTypes().count(), 0 );
}
void TestQgsLayoutMultiFrame::deleteFrame()

View File

@ -328,6 +328,27 @@ void TestQgsLayoutView::guiRegistry()
QCOMPARE( item->type(), QgsLayoutItemRegistry::LayoutItem + 101 );
QCOMPARE( static_cast<TestItem *>( item )->mFlag, 2 );
delete item;
// test removing item metadata
QCOMPARE( registry.itemMetadataIds().count(), 3 );
const QSignalSpy spyTypeRemoved( &registry, &QgsLayoutItemGuiRegistry::typeRemoved );
QVERIFY( registry.removeLayoutItemGuiMetadata( QgsLayoutItemRegistry::LayoutItem + 101 ) );
QCOMPARE( registry.itemMetadataIds().count(), 2 );
QVERIFY( registry.removeLayoutItemGuiMetadata( QgsLayoutItemRegistry::LayoutItem + 101 ) );
QCOMPARE( registry.itemMetadataIds().count(), 1 );
QVERIFY( registry.removeLayoutItemGuiMetadata( QgsLayoutItemRegistry::LayoutItem + 101 ) );
QCOMPARE( registry.itemMetadataIds().count(), 0 );
QCOMPARE( registry.removeLayoutItemGuiMetadata( QgsLayoutItemRegistry::LayoutItem + 101 ), false );
QCOMPARE( spyTypeRemoved.count(), 3 );
QCOMPARE( registry.itemMetadataIds().count(), 0 );
// test removing item group
const QSignalSpy spyGroupRemoved( &registry, &QgsLayoutItemGuiRegistry::groupRemoved );
QVERIFY( registry.removeItemGroup( QStringLiteral( "g1" ) ) );
QCOMPARE( spyGroupRemoved.count(), 1 );
QCOMPARE( spyGroupRemoved.at( 0 ).at( 0 ).toString(), QStringLiteral( "g1" ) );
// can't remove group again
QVERIFY( !registry.removeItemGroup( QStringLiteral( "g1" ) ) );
}
void TestQgsLayoutView::rubberBand()