<?xml version="1.0" standalone="no"?>
<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
<!--
 Copyright (c) 2003 X-Hive Corporation

 All Rights Reserved. This work is distributed under the W3C(r)
 Software License [1] in the hope that it will be useful, but WITHOUT
 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.

 [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
-->


<!DOCTYPE test SYSTEM "dom3.dtd" [
  <!ENTITY % entities SYSTEM "dom3tests.ent">
  %entities;
]>


<test xmlns="&level3;" name="DOMWriterTest3">
  <metadata>
    <title>DOMWriterTest3</title>
    &creator;
    <description>Serializes a document with a XML declaration for both for 'xml-declaration' configuration values.</description>
    &contributor; &date;
        <subject resource="http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-canSetParameter"/>
        <subject resource="http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407/load-save#LS-LSSerializer-config"/>
  </metadata>

  <var name="configuration"   type="DOMConfiguration"/>
  <var name="XML_DECLARATION" type="DOMString" value='"xml-declaration"'/>
  <var name="stringDoc"       type="DOMString" value='"&lt;?xml version=&apos;1.0&apos;?&gt;&lt;hello&gt;me again&lt;/hello&gt;"'/>
  <var name="writeResult"     type="DOMString"/>
  <var name="xmlDecl"          type="DOMString"/>

  &vars;
  &init;

  <!-- parse the string -->
  <stringData obj="inputSource" value="stringDoc"/>
  <parse  var="document" obj="parser" input="inputSource"/>

  <!-- include xml declaration on serialization -->
  <domConfig var="configuration" obj="writer" interface="LSSerializer"/>

  <setParameter obj="configuration" name="XML_DECLARATION" value="false"/>
  <writeToString var="writeResult" obj="writer" nodeArg="document"/>
  <assertEquals actual="writeResult" expected='"&lt;hello&gt;me again&lt;/hello&gt;"' id="without_xml_declaration" ignoreCase="false"/>

  <setParameter obj="configuration" name="XML_DECLARATION" value="true"/>
  <writeToString var="writeResult" obj="writer" nodeArg="document"/>
  <substring var="xmlDecl" obj="writeResult" beginIndex="0" endIndex="6"/>
  <assertEquals actual="xmlDecl" expected='"&lt;?xml "' id="with_xml_declaration" ignoreCase="false"/>

</test>





