Skip to content
Permalink
Browse files

Add test for QgsExpressionContextScope::takeScopes

  • Loading branch information
m-kuhn committed Nov 24, 2017
1 parent abe1a9b commit aaf70de71eb323dfe70c0a66815f872ba5be0e3a
Showing with 31 additions and 0 deletions.
  1. +31 −0 tests/src/core/testqgsexpressioncontext.cpp
@@ -43,6 +43,7 @@ class TestQgsExpressionContext : public QObject
void evaluate();
void setFeature();
void setFields();
void takeScopes();

void globalScope();
void projectScope();
@@ -511,6 +512,36 @@ void TestQgsExpressionContext::setFields()
QCOMPARE( contextWithScope.fields().at( 0 ).name(), QString( "testfield" ) );
}

void TestQgsExpressionContext::takeScopes()
{
QgsExpressionContextUtils::setGlobalVariable( QStringLiteral( "test_global" ), "testval" );

QgsProject *project = QgsProject::instance();
QgsExpressionContextUtils::setProjectVariable( project, QStringLiteral( "test_project" ), "testval" );

QgsExpressionContext context;

QgsExpressionContextScope *projectScope = QgsExpressionContextUtils::projectScope( project );

QgsExpressionContextScope *globalScope = QgsExpressionContextUtils::globalScope();
context << globalScope
<< projectScope;

QCOMPARE( context.variable( "test_global" ).toString(), QString( "testval" ) );
QCOMPARE( context.variable( "test_project" ).toString(), QString( "testval" ) );

auto scopes = context.takeScopes();

QCOMPARE( scopes.length(), 2 );
Q_ASSERT( scopes.at( 0 )->hasVariable( "test_global" ) );
Q_ASSERT( scopes.at( 1 )->hasVariable( "test_project" ) );

qDeleteAll( scopes );

Q_ASSERT( !context.variable( "test_global" ).isValid() );
Q_ASSERT( !context.variable( "test_project" ).isValid() );
}

void TestQgsExpressionContext::globalScope()
{
QgsExpressionContextUtils::setGlobalVariable( QStringLiteral( "test" ), "testval" );

0 comments on commit aaf70de

Please sign in to comment.
You can’t perform that action at this time.