@@ -577,6 +577,7 @@ public void testOtherRaw() {
577577 assertThat (tokenise ("{%raw%}?" ).get (2 ).getType (), is (LiquidLexer .OtherRaw ));
578578 }
579579
580+ // https://github.com/bkiers/Liqp/issues/317
580581 @ Test
581582 public void testInlineComment () {
582583
@@ -599,6 +600,48 @@ public void testInlineComment() {
599600 " ###############################-\n " ));
600601 }
601602
603+ // https://github.com/bkiers/Liqp/issues/317
604+ @ Test
605+ public void testInlineCommentInTag () {
606+ String source =
607+ "{% # for i in (1..3) -%}\n " +
608+ "{{ i }}\n " +
609+ "{% # endfor %}" ;
610+
611+ List <Token > tokens = tokenise (source );
612+
613+ Object [][] expected = {
614+ new Object [] { LiquidLexer .TagStart , "{%" },
615+ new Object [] { LiquidLexer .WS2 , " " },
616+ new Object [] { LiquidLexer .CommentInTagId , "# for i in (1..3) " },
617+ new Object [] { LiquidLexer .TagEnd , "-%}\n " },
618+ new Object [] { LiquidLexer .OutStart , "{{" },
619+ new Object [] { LiquidLexer .WS , " " },
620+ new Object [] { LiquidLexer .Id , "i" },
621+ new Object [] { LiquidLexer .WS , " " },
622+ new Object [] { LiquidLexer .OutEnd , "}}" },
623+ new Object [] { LiquidLexer .Other , "\n " },
624+ new Object [] { LiquidLexer .TagStart , "{%" },
625+ new Object [] { LiquidLexer .WS2 , " " },
626+ new Object [] { LiquidLexer .CommentInTagId , "# endfor " },
627+ new Object [] { LiquidLexer .TagEnd , "%}" }
628+ };
629+
630+ assertThat (tokens .size (), is (expected .length ));
631+
632+ int index = 0 ;
633+
634+ for (Object [] test : expected ) {
635+
636+ Token token = tokens .get (index );
637+
638+ assertThat (token .getType (), is (test [0 ]));
639+ assertThat (token .getText (), is (test [1 ]));
640+
641+ index ++;
642+ }
643+ }
644+
602645 private static Token singleToken (String source ) {
603646 return singleToken (source , false , true );
604647 }
0 commit comments