@@ -55,6 +55,30 @@ TEST_F(ExtendsTest, SimpleBlockExtends)
5555 EXPECT_STREQ (expectedResult.c_str (), result.c_str ());
5656}
5757
58+ TEST_F (ExtendsTest, DISABLED_TwoLevelBlockExtends)
59+ {
60+ m_templateFs->AddFile (" base.j2tpl" , " Hello World! ->{% block b1 %}{% endblock %}<-" );
61+ m_templateFs->AddFile (" derived.j2tpl" , R"( {% extends "base.j2tpl" %}{%block b1%}Extended block!{%block innerB1%}=>innerB1 content<={%endblock%}{%endblock%})" );
62+ m_templateFs->AddFile (" derived2.j2tpl" , R"( {% extends "derived.j2tpl" %}{%block innerB1%}derived2 block{{super()}}{%endblock%})" );
63+
64+ auto baseTpl = m_env.LoadTemplate (" base.j2tpl" );
65+ auto tpl = m_env.LoadTemplate (" derived.j2tpl" );
66+ auto tpl2 = m_env.LoadTemplate (" derived2.j2tpl" );
67+
68+ std::string baseResult = baseTpl.RenderAsString (jinja2::ValuesMap{});
69+ std::cout << baseResult << std::endl;
70+ std::string expectedResult = " Hello World! -><-" ;
71+ EXPECT_STREQ (expectedResult.c_str (), baseResult.c_str ());
72+ std::string result = tpl.RenderAsString (jinja2::ValuesMap{});
73+ std::cout << result << std::endl;
74+ expectedResult = " Hello World! ->Extended block!<-" ;
75+ EXPECT_STREQ (expectedResult.c_str (), result.c_str ());
76+ std::string result2 = tpl2.RenderAsString (jinja2::ValuesMap{});
77+ std::cout << result2 << std::endl;
78+ expectedResult = " Hello World! ->Extended block b1!<- ->Extended block b2!<-" ;
79+ EXPECT_STREQ (expectedResult.c_str (), result2.c_str ());
80+ }
81+
5882TEST_F (ExtendsTest, DoubleBlocksExtends)
5983{
6084 m_templateFs->AddFile (" base.j2tpl" , " Hello World! ->{% block b1 %}{% endblock %}<- ->{% block b2 %}{% endblock b2%}<-" );
0 commit comments