mirror of
https://github.com/Heretek-AI/GDevelop.git
synced 2026-07-24 03:54:34 -04:00
68 lines
2.0 KiB
C++
68 lines
2.0 KiB
C++
/*
|
|
* GDevelop Core
|
|
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
|
* This project is released under the MIT License.
|
|
*/
|
|
/**
|
|
* @file Tests covering common features of GDevelop Core.
|
|
*/
|
|
#include "catch.hpp"
|
|
#include "GDCore/String.h"
|
|
#include "GDCore/Events/Parsers/VariableParser.h"
|
|
|
|
namespace
|
|
{
|
|
class TestVariableParserCallbacks : public gd::VariableParserCallbacks
|
|
{
|
|
public:
|
|
TestVariableParserCallbacks(gd::String &debugStr) : VariableParserCallbacks(), debugStr(debugStr) {}
|
|
|
|
virtual void OnRootVariable(gd::String variableName)
|
|
{
|
|
debugStr += "OnRootVariable(" + variableName + ")\n";
|
|
}
|
|
|
|
virtual void OnChildVariable(gd::String variableName)
|
|
{
|
|
debugStr += "OnChildVariable(" + variableName + ")\n";
|
|
}
|
|
|
|
virtual void OnChildSubscript(gd::String stringExpression)
|
|
{
|
|
debugStr += "OnChildSubscript(" + stringExpression + ")\n";
|
|
}
|
|
|
|
private:
|
|
gd::String &debugStr;
|
|
};
|
|
}
|
|
|
|
TEST_CASE( "VariableParser", "[common][events]" ) {
|
|
SECTION("Basics") {
|
|
{
|
|
gd::String str;
|
|
TestVariableParserCallbacks callbacks(str);
|
|
gd::VariableParser parser("myVar");
|
|
parser.Parse(callbacks);
|
|
|
|
REQUIRE( str == "OnRootVariable(myVar)\n" );
|
|
}
|
|
{
|
|
gd::String str;
|
|
TestVariableParserCallbacks callbacks(str);
|
|
gd::VariableParser parser("myVar.child1.child2");
|
|
parser.Parse(callbacks);
|
|
|
|
REQUIRE( str == "OnRootVariable(myVar)\nOnChildVariable(child1)\nOnChildVariable(child2)\n" );
|
|
}
|
|
{
|
|
gd::String str;
|
|
TestVariableParserCallbacks callbacks(str);
|
|
gd::VariableParser parser("myVar[ToString(i) + \"é\"].child");
|
|
parser.Parse(callbacks);
|
|
|
|
REQUIRE( str == "OnRootVariable(myVar)\nOnChildSubscript(ToString(i) + \"é\")\nOnChildVariable(child)\n" );
|
|
}
|
|
}
|
|
}
|