mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-04 00:04:03 -04:00
Add test for the new code path
This commit is contained in:
parent
bcfd875f53
commit
6b70a12e2f
@ -14,11 +14,15 @@
|
||||
***************************************************************************/
|
||||
#include <QCoreApplication>
|
||||
#include <QLocale>
|
||||
#include <QSignalSpy>
|
||||
#include <QTest>
|
||||
|
||||
#include "qgstest.h"
|
||||
#include "qgsapplication.h"
|
||||
#include "qgsmapcanvas.h"
|
||||
#include "qgsadvanceddigitizingdockwidget.h"
|
||||
#include "qgsnumericformat.h"
|
||||
#include "qgsbearingnumericformat.h"
|
||||
|
||||
class TestQgsAdvancedDigitizingDockWidget : public QObject
|
||||
{
|
||||
@ -33,6 +37,7 @@ class TestQgsAdvancedDigitizingDockWidget : public QObject
|
||||
void cleanup(); // will be called after every testfunction.
|
||||
|
||||
void parseUserInput();
|
||||
void angleAzimuthVisibility();
|
||||
};
|
||||
|
||||
void TestQgsAdvancedDigitizingDockWidget::initTestCase()
|
||||
@ -137,5 +142,33 @@ void TestQgsAdvancedDigitizingDockWidget::parseUserInput()
|
||||
QVERIFY( ok );
|
||||
}
|
||||
|
||||
void TestQgsAdvancedDigitizingDockWidget::angleAzimuthVisibility()
|
||||
{
|
||||
// Checks that azimuth is visibible even if the angle constraint is locked
|
||||
// See: issue GH #61587
|
||||
QgsProject::instance()->clear();
|
||||
QgsMapCanvas canvas;
|
||||
canvas.mapSettings().setDestinationCrs( QgsCoordinateReferenceSystem( QStringLiteral( "EPSG:3857" ) ) );
|
||||
QgsAdvancedDigitizingDockWidget widget { &canvas };
|
||||
widget.setCadEnabled( true );
|
||||
widget.setPoints( { QgsPointXY( 0, 0 ), QgsPointXY( 1, 0 ) } );
|
||||
widget.mAngleConstraint->setLockMode( QgsAdvancedDigitizingDockWidget::CadConstraint::HardLock );
|
||||
widget.mAngleConstraint->setValue( 45 );
|
||||
QCOMPARE( widget.mAngleConstraint->lockMode(), QgsAdvancedDigitizingDockWidget::CadConstraint::HardLock );
|
||||
|
||||
QSignalSpy spy( &widget, &QgsAdvancedDigitizingDockWidget::valueBearingChanged );
|
||||
|
||||
// Add one point at 45 degrees angle
|
||||
const QgsPoint point( 2, 1 );
|
||||
widget.addPoint( point );
|
||||
widget.updateUnlockedConstraintValues( point );
|
||||
|
||||
QCOMPARE( spy.count(), 1 );
|
||||
QList<QVariant> args = spy.takeFirst();
|
||||
const QgsNumericFormatContext context;
|
||||
const QString bearingText { QgsProject::instance()->displaySettings()->bearingFormat()->formatDouble( 45, context ) };
|
||||
QCOMPARE( args.at( 0 ).toString(), bearingText );
|
||||
}
|
||||
|
||||
QGSTEST_MAIN( TestQgsAdvancedDigitizingDockWidget )
|
||||
#include "testqgsadvanceddigitizingdockwidget.moc"
|
||||
|
Loading…
x
Reference in New Issue
Block a user