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 <QCoreApplication>
|
||||||
#include <QLocale>
|
#include <QLocale>
|
||||||
|
#include <QSignalSpy>
|
||||||
|
#include <QTest>
|
||||||
|
|
||||||
#include "qgstest.h"
|
#include "qgstest.h"
|
||||||
#include "qgsapplication.h"
|
#include "qgsapplication.h"
|
||||||
#include "qgsmapcanvas.h"
|
#include "qgsmapcanvas.h"
|
||||||
#include "qgsadvanceddigitizingdockwidget.h"
|
#include "qgsadvanceddigitizingdockwidget.h"
|
||||||
|
#include "qgsnumericformat.h"
|
||||||
|
#include "qgsbearingnumericformat.h"
|
||||||
|
|
||||||
class TestQgsAdvancedDigitizingDockWidget : public QObject
|
class TestQgsAdvancedDigitizingDockWidget : public QObject
|
||||||
{
|
{
|
||||||
@ -33,6 +37,7 @@ class TestQgsAdvancedDigitizingDockWidget : public QObject
|
|||||||
void cleanup(); // will be called after every testfunction.
|
void cleanup(); // will be called after every testfunction.
|
||||||
|
|
||||||
void parseUserInput();
|
void parseUserInput();
|
||||||
|
void angleAzimuthVisibility();
|
||||||
};
|
};
|
||||||
|
|
||||||
void TestQgsAdvancedDigitizingDockWidget::initTestCase()
|
void TestQgsAdvancedDigitizingDockWidget::initTestCase()
|
||||||
@ -137,5 +142,33 @@ void TestQgsAdvancedDigitizingDockWidget::parseUserInput()
|
|||||||
QVERIFY( ok );
|
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 )
|
QGSTEST_MAIN( TestQgsAdvancedDigitizingDockWidget )
|
||||||
#include "testqgsadvanceddigitizingdockwidget.moc"
|
#include "testqgsadvanceddigitizingdockwidget.moc"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user