[contextualprocess] Improve tests, fix off-by-one
- there's no string representation for a QVariantMap, so it won't be converted; in *debug* output it looks like there's a string there. - off-by-one when diving into compound selectors, spotted by test, now fixed.
This commit is contained in:
parent
28bf4082b3
commit
72dcf886bf
@ -77,7 +77,7 @@ fetch( QString& value, QStringList& selector, int index, const QVariant& v )
|
||||
}
|
||||
const QVariantMap map = v.toMap();
|
||||
const QString& key = selector.at( index );
|
||||
if ( index == selector.length() )
|
||||
if ( index == selector.length() - 1)
|
||||
{
|
||||
value = map.value( key ).toString();
|
||||
return map.contains( key );
|
||||
|
@ -88,6 +88,8 @@ ContextualProcessTests::testProcessListSampleConfig()
|
||||
|
||||
void ContextualProcessTests::testFetch()
|
||||
{
|
||||
Logger::setupLogLevel( Logger::LOGVERBOSE );
|
||||
|
||||
QVariantMap m;
|
||||
// Some keys without sub-map
|
||||
m.insert( QStringLiteral( "carrot" ), true );
|
||||
@ -150,7 +152,7 @@ void ContextualProcessTests::testFetch()
|
||||
ContextualProcessBinding b( QStringLiteral( "berries" ) );
|
||||
QString s;
|
||||
QVERIFY( b.fetch( gs, s ) );
|
||||
QVERIFY( s.contains( QStringLiteral( "QVariant" ) ) );
|
||||
QVERIFY( s.isEmpty() ); // No string representation
|
||||
}
|
||||
{
|
||||
// Compound lookup
|
||||
|
Loading…
Reference in New Issue
Block a user