Skip to content

Commit

Permalink
Add test for QgsExpressionContextScope::takeScopes
Browse files Browse the repository at this point in the history
  • Loading branch information
m-kuhn committed Nov 24, 2017
1 parent abe1a9b commit aaf70de
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions tests/src/core/testqgsexpressioncontext.cpp
Expand Up @@ -43,6 +43,7 @@ class TestQgsExpressionContext : public QObject
void evaluate();
void setFeature();
void setFields();
void takeScopes();

void globalScope();
void projectScope();
Expand Down Expand Up @@ -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" );
Expand Down

0 comments on commit aaf70de

Please sign in to comment.