Author: atsushi
Date: 2005-03-24 06:26:02 -0500 (Thu, 24 Mar 2005)
New Revision: 42201

Modified:
   trunk/mcs/class/System.XML/Test/System.Xml.Xsl/ChangeLog
   trunk/mcs/class/System.XML/Test/System.Xml.Xsl/XslTransformTests.cs
Log:
2005-03-24  Atsushi Enomoto  <[EMAIL PROTECTED]>

        * XslTransformTests.cs : added (extra) test which verifies that
          XslTransform.Load() and .Transform() does not hold reference to
          stylesheet/instance XPathNavigator inside its internals.



Modified: trunk/mcs/class/System.XML/Test/System.Xml.Xsl/ChangeLog
===================================================================
--- trunk/mcs/class/System.XML/Test/System.Xml.Xsl/ChangeLog    2005-03-24 
10:31:13 UTC (rev 42200)
+++ trunk/mcs/class/System.XML/Test/System.Xml.Xsl/ChangeLog    2005-03-24 
11:26:02 UTC (rev 42201)
@@ -1,3 +1,9 @@
+2005-03-24  Atsushi Enomoto  <[EMAIL PROTECTED]>
+
+       * XslTransformTests.cs : added (extra) test which verifies that
+         XslTransform.Load() and .Transform() does not hold reference to
+         stylesheet/instance XPathNavigator inside its internals.
+
 2005-03-23  Atsushi Enomoto  <[EMAIL PROTECTED]>
 
        * XslTransformTests.cs : added test that examines if XSLT rejects

Modified: trunk/mcs/class/System.XML/Test/System.Xml.Xsl/XslTransformTests.cs
===================================================================
--- trunk/mcs/class/System.XML/Test/System.Xml.Xsl/XslTransformTests.cs 
2005-03-24 10:31:13 UTC (rev 42200)
+++ trunk/mcs/class/System.XML/Test/System.Xml.Xsl/XslTransformTests.cs 
2005-03-24 11:26:02 UTC (rev 42201)
@@ -216,5 +216,40 @@
                        new XslTransform ().Load (new XPathDocument (
                                new StringReader (xsl)));
                }
+
+               [Test]
+               [Category ("NotDotNet")]
+               public void DontHoldStylesheetReference ()
+               {
+                       // This test is optional. Examines whether Load() does
+                       // not hold loaded stylesheet XPathNavigator internally.
+                       XslTransform t = new XslTransform ();
+                       WeakReference wr = StylesheetLoad (t, "<xsl:transform 
xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'/>");
+                       GC.Collect (0);
+                       GC.Collect (2);
+                       Assert ("load", !wr.IsAlive);
+                       wr = StylesheetTransform (t, "<root/>");
+                       GC.Collect (0);
+                       GC.Collect (2);
+                       Assert ("transform", !wr.IsAlive);
+               }
+
+               private WeakReference StylesheetLoad (XslTransform t, string 
xsl)
+               {
+                       XPathDocument doc = new XPathDocument (
+                               new StringReader (xsl));
+                       WeakReference wr = new WeakReference (doc);
+                       t.Load (doc);
+                       return wr;
+               }
+
+               private WeakReference StylesheetTransform (XslTransform t, 
string xml)
+               {
+                       XPathDocument doc = new XPathDocument (
+                               new StringReader (xml));
+                       WeakReference wr = new WeakReference (doc);
+                       t.Transform (doc, null, TextWriter.Null, null);
+                       return wr;
+               }
        }
 }

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to