From 329fd1f509cbf9686329e374e534e7d69b632952 Mon Sep 17 00:00:00 2001
From: Martin Stjernholm <mast@lysator.liu.se>
Date: Wed, 9 Feb 2000 01:27:36 +0100
Subject: [PATCH] Some tests for entities in arguments to unparsed tags. One
 test changed due to different tag parsing when no callbacks are registered.

Rev: src/modules/Parser/testsuite.in:1.25
---
 src/modules/Parser/testsuite.in | 29 ++++++++++++++++++++++-------
 1 file changed, 22 insertions(+), 7 deletions(-)

diff --git a/src/modules/Parser/testsuite.in b/src/modules/Parser/testsuite.in
index 46078aed85..6eb25c54e2 100644
--- a/src/modules/Parser/testsuite.in
+++ b/src/modules/Parser/testsuite.in
@@ -124,7 +124,7 @@ test_any([[
 ]], "x [ <t a='> -- ] {<t a=} -->");
 
 // Current context functions
-test_any([[
+test_any([[{
   object p = Parser.HTML();
   p->lazy_entity_end (1);
   p->add_tag (
@@ -147,8 +147,10 @@ test_any([[
 	   return ({"Q(", p->current(), "|", p->tag_name(), "|",
 		    (string) p->tag_content(), ")"});
 	 }, "p");
-  return p->finish ("<t a=&e; <t>> <q <\"' &e; p> &e<c x=y -- >x</c> &e; ")->read();
-]], "T(<t a=&e; <t>>|t|0) Q(<q <\"' &e; p>|q| <\"' &e; ) &eC(<c x=y -- >x</c>|c|x) E(&e;|e|0) ");
+  return p->finish ("<t a=&e; <t>> <q <\"' &e; p> "
+		    "&e<c x=y -- >x</c> &e; <x &e; q=&e;>")->read();
+}]], ("T(<t a=&e; <t>>|t|0) Q(<q <\"' &e; p>|q| <\"' &e; ) "
+      "&eC(<c x=y -- >x</c>|c|x) E(&e;|e|0) <x &e; q=E(&e;|e|0)>"));
 
 // Argument quoting
 test_any([[
@@ -340,18 +342,20 @@ test_any([[{
 			 });
   p->add_entity ("e", lambda (object p) {
 			if (e++ < 3) {p->write_out ((string) e); throw (e);}
-			return ({"|", (string) e});
+			array res = ({"|", (string) e});
+			e = 0;
+			return res;
 		      });
   p->add_quote_tag ("q", lambda (object p, string s) {
 			   if (q++ < 3) {p->write_out ((string) q); throw (q);}
 			   return ({"|", (string) q});
 			 },
 		    "q");
-  if (catch (p->finish ("<t> <c> <t> &e; </c> &e; <q &e; q>")))
+  if (catch (p->finish ("<t> <c> <t> &e; </c> &e; <q &e; q> <x a=&e; &e;>")))
     for (int i; i < 20; i++)
       if (!catch (p->finish())) break;
   return p->read();
-}]], "123|4 123|4 123|4 123|4")
+}]], "123|4 123|4 123|4 123|4 123<x a=|4 &e;>")
 
 // Mixed mode
 test_any([[
@@ -470,7 +474,18 @@ test_any([[
   p->_set_entity_callback (lambda (object p, string s) {return ({"[",s,"]"});});
   p->_set_data_callback (lambda (object p, string s) {return ({"{",s,"}"});});
   return p->finish ("&abc|&abc<>&abc;")->read();
-]], "{&abc|}{&abc<>}[&abc;]{}");
+]], "{&abc|}{&abc}<>[&abc;]{}");
+test_any([[{
+  object p = Parser.HTML();
+  p->add_entity ("e", "x");
+  return p->finish("&e")->read();
+}]], "&e");
+test_any([[{
+  object p = Parser.HTML();
+  p->lazy_entity_end (1);
+  p->add_entity ("e", "x");
+  return p->finish("&e")->read();
+}]], "&e");
 
 // Recursive parsing in tags
 test_any([[
-- 
GitLab