public void checkChars_3(XmlWriterUtils utils, string tokenType)
        {
            char[] invalidXML = { '\u0000', '\u0008', '\u000B', '\u000C', '\u000E', '\u001F', '\uFFFE', '\uFFFF' };

            XmlWriterSettings wSettings = new XmlWriterSettings();

            wSettings.OmitXmlDeclaration = true;
            wSettings.CheckCharacters    = false;
            wSettings.CloseOutput        = true;

            XmlWriter w = utils.CreateWriter(wSettings);

            CError.Compare(w.Settings.CheckCharacters, false, "Mismatch in CheckCharacters");
            w.WriteStartElement("Root");
            switch (tokenType)
            {
            case "Comment":
                w.WriteComment(invalidXML[2].ToString());
                w.WriteEndElement();
                w.Dispose();
                string exp = utils.IsIndent() ? "<Root>" + Environment.NewLine + "  <!--\u000B-->" + Environment.NewLine + "</Root>" : "<Root><!--\u000B--></Root>";
                Assert.True(utils.CompareString(exp));
                break;

            case "PI":
                w.WriteProcessingInstruction("pi", invalidXML[6].ToString());
                w.WriteEndElement();
                w.Dispose();
                exp = utils.IsIndent() ? "<Root>" + Environment.NewLine + "  <?pi \uFFFE?>" + Environment.NewLine + "</Root>" : "<Root><?pi \uFFFE?></Root>";
                Assert.True(utils.CompareString(exp));
                break;

            case "RawString":
                w.WriteRaw(invalidXML[4].ToString());
                w.WriteEndElement();
                w.Dispose();
                Assert.True(utils.CompareString("<Root>\u000E</Root>"));
                break;

            case "RawChars":
                w.WriteRaw(invalidXML, 6, 2);
                w.WriteEndElement();
                w.Dispose();
                Assert.True(utils.CompareString("<Root>\uFFFE\uFFFF</Root>"));
                break;

            case "CData":
                w.WriteCData(invalidXML[1].ToString());
                w.WriteEndElement();
                w.Dispose();
                Assert.True(utils.CompareString("<Root><![CDATA[\u0008]]></Root>"));
                break;

            default:
                CError.Compare(false, "Invalid param value");
                Assert.True(false);
                break;
            }
        }
        public void writeNode_XmlReader28(XmlWriterUtils utils)
        {
            string    strxml = "<?xml version=\"1.0\" standalone=\"yes\"?><Root />";
            XmlReader xr     = CreateReader(new StringReader(strxml));

            xr.Read();
            if (xr.NodeType != XmlNodeType.XmlDeclaration)
            {
                CError.WriteLine("Reader positioned on {0}", xr.NodeType);
                xr.Dispose();
                return;
            }

            XmlWriterSettings ws = new XmlWriterSettings();

            ws.OmitXmlDeclaration = false;
            XmlWriter w = utils.CreateWriter(ws);

            w.WriteNode(xr, false);
            w.WriteStartElement("Root");
            w.WriteEndElement();
            xr.Dispose();
            w.Dispose();
            strxml = utils.IsIndent() ? "<?xml version=\"1.0\" standalone=\"yes\"?>" + Environment.NewLine + "<Root />" : strxml;
            Assert.True(utils.CompareString(strxml));
        }
Exemple #3
0
        public void close_2(XmlWriterUtils utils)
        {
            XmlWriter w = utils.CreateWriter();

            w.Dispose();
            CError.Equals(w.Settings.Indent, utils.IsIndent(), "Incorrect default value of Indent");
            CError.Equals(w.Settings.CheckCharacters, true, "Incorrect default value of CheckCharacters");
        }
Exemple #4
0
        public void default_5(XmlWriterUtils utils)
        {
            XmlWriterSettings wSettings = new XmlWriterSettings();

            CError.Equals(wSettings.Indent, false, "Incorrect default value of wSettings.Indent");

            XmlWriter w = utils.CreateWriter();

            CError.Equals(w.Settings.Indent, utils.IsIndent(), "Incorrect default value of w.Settings.Indent");
            w.Dispose();
            return;
        }
Exemple #5
0
        public void docType_2(XmlWriterUtils utils)
        {
            using (XmlWriter w = utils.CreateWriter())
            {
                w.WriteDocType("test", null, null, "<!ENTITY e 'abc'>");
                w.WriteStartElement("Root");
                w.WriteEndElement();
            }
            string exp = utils.IsIndent() ?
                         "<!DOCTYPE test [<!ENTITY e 'abc'>]>" + Environment.NewLine + "<Root />" :
                         "<!DOCTYPE test [<!ENTITY e 'abc'>]><Root />";

            Assert.True(utils.CompareString(exp));
        }
Exemple #6
0
        public void docType_5(XmlWriterUtils utils)
        {
            using (XmlWriter w = utils.CreateWriter())
            {
                String docName  = "Root";
                String docValue = "]>";
                w.WriteDocType(docName, null, null, docValue);
                w.WriteStartElement("Root");
                w.WriteEndElement();
            }
            string exp = utils.IsIndent() ? "<!DOCTYPE Root []>]>" + Environment.NewLine + "<Root />" : "<!DOCTYPE Root []>]><Root />";

            Assert.True(utils.CompareString(exp));
        }
Exemple #7
0
        public void docType_1(XmlWriterUtils utils)
        {
            using (XmlWriter w = utils.CreateWriter())
            {
                w.WriteDocType("ROOT", "publicid", "sysid", "<!ENTITY e 'abc'>");
                w.WriteStartElement("ROOT");
                w.WriteEndElement();
            }

            string exp = utils.IsIndent() ?
                         "<!DOCTYPE ROOT PUBLIC \"publicid\" \"sysid\"[<!ENTITY e 'abc'>]>" + Environment.NewLine + "<ROOT />" :
                         "<!DOCTYPE ROOT PUBLIC \"publicid\" \"sysid\"[<!ENTITY e 'abc'>]><ROOT />";

            Assert.True(utils.CompareString(exp));
        }
        public void writeNode_XmlReader39(XmlWriterUtils utils, bool defattr)
        {
            string strxml = "<!DOCTYPE root SYSTEM \"\uD812\uDD12\"><root/>";
            string exp    = utils.IsIndent() ?
                            "<!DOCTYPE root SYSTEM \"\uD812\uDD12\"[]>" + Environment.NewLine + "<root />" :
                            "<!DOCTYPE root SYSTEM \"\uD812\uDD12\"[]><root />";

            using (XmlReader xr = CreateReader(new StringReader(strxml)))
            {
                using (XmlWriter w = utils.CreateWriter())
                {
                    w.WriteNode(xr, defattr);
                }
            }

            Assert.Equal(exp, utils.GetString());
        }
Exemple #9
0
        public void attribute_22(XmlWriterUtils utils)
        {
            string exp = "<test ~f p a~:a1=\"v\" xmlns:~f p A~=\"ns1\"><base ~f p b~:a2=\"v\" ~a p4 ab~:a3=\"v\" xmlns:~a p4 AB~=\"ns2\" /></test>";

            using (XmlWriter w = utils.CreateWriter())
            {
                w.WriteStartElement("test");
                w.WriteAttributeString("p", "a1", "ns1", "v");
                w.WriteStartElement("base");
                w.WriteAttributeString("a2", "ns1", "v");
                w.WriteAttributeString("p", "a3", "ns2", "v");
                w.WriteEndElement();
                w.WriteEndElement();
            }
            exp = utils.IsIndent() ?
                  "<test p:a1=\"v\" xmlns:p=\"ns1\">" + Environment.NewLine + "  <base p:a2=\"v\" p4:a3=\"v\" xmlns:p4=\"ns2\" />" + Environment.NewLine + "</test>" : exp;
            Assert.True(utils.CompareString(exp));
        }
Exemple #10
0
        public void attribute_21(XmlWriterUtils utils)
        {
            using (XmlWriter w = utils.CreateWriter())
            {
                w.WriteStartElement("test");
                w.WriteAttributeString("xmlns", "n1", null, "http://testbasens");
                w.WriteStartElement("base");
                w.WriteAttributeString("id", "http://testbasens", "5");
                w.WriteAttributeString("lang", "http://common", "en");
                w.WriteEndElement();
                w.WriteEndElement();
            }
            string exp = utils.IsIndent() ?
                         "<test xmlns:n1=\"http://testbasens\">" + Environment.NewLine + "  <base n1:id=\"5\" p4:lang=\"en\" xmlns:p4=\"http://common\" />" + Environment.NewLine + "</test>" :
                         "<test xmlns:~f n1 A~=\"http://testbasens\"><base ~f n1 a~:id=\"5\" ~a p4 a~:lang=\"en\" xmlns:~a p4 A~=\"http://common\" /></test>";

            Assert.True(utils.CompareString(exp));
        }
        public void writeNode_XmlReader37(XmlWriterUtils utils, bool defattr)
        {
            string strxml = "<!DOCTYPE root PUBLIC \"\" \"#\"><root/>";
            string exp    = utils.IsIndent() ?
                            "<!DOCTYPE root PUBLIC \"\" \"#\"[]>" + Environment.NewLine + "<root />" :
                            "<!DOCTYPE root PUBLIC \"\" \"#\"[]><root />";

            using (XmlReader xr = CreateReader(new StringReader(strxml)))
                using (XmlWriter w = utils.CreateWriter())
                {
                    while (!xr.EOF)
                    {
                        w.WriteNode(xr, defattr);
                    }
                }

            Assert.True(utils.CompareString(exp));
        }
        public void writeNode_XmlReader20(XmlWriterUtils utils)
        {
            string strxml = "<!DOCTYPE ROOT []><ROOT/>";

            string exp = utils.IsIndent() ?
                         "<!DOCTYPE ROOT []>" + Environment.NewLine + "<ROOT />" :
                         "<!DOCTYPE ROOT []><ROOT />";

            using (XmlReader xr = CreateReader(new StringReader(strxml)))
                using (XmlWriter w = utils.CreateWriter())
                {
                    while (xr.NodeType != XmlNodeType.DocumentType)
                    {
                        xr.Read();
                    }

                    w.WriteNode(xr, false);
                    w.WriteStartElement("ROOT");
                    w.WriteEndElement();
                }

            Assert.Equal(exp, utils.GetString());
        }
        public void checkChars_4(XmlWriterUtils utils, string tokenType, bool checkCharacters)
        {
            XmlWriterSettings wSettings = new XmlWriterSettings();

            wSettings.OmitXmlDeclaration = true;
            wSettings.CheckCharacters    = checkCharacters;
            wSettings.CloseOutput        = true;

            char[]    invalidXML = { '\u0000', '\u0008', '\u000B', '\u000C', '\u000E', '\u001F', '\uFFFE', '\uFFFF' };
            XmlWriter w          = utils.CreateWriter(wSettings);

            try
            {
                w.WriteStartElement("Root");
                switch (tokenType)
                {
                case "Whitespace":
                    w.WriteWhitespace(invalidXML[7].ToString());
                    break;

                case "Surrogate":
                    w.WriteSurrogateCharEntity(invalidXML[7], invalidXML[0]);
                    break;

                case "EntityRef":
                    w.WriteEntityRef(invalidXML[4].ToString());
                    break;

                case "Name":
                    w.WriteName(invalidXML[6].ToString());
                    break;

                case "NmToken":
                    w.WriteNmToken(invalidXML[5].ToString());
                    break;

                case "QName":
                    w.WriteQualifiedName(invalidXML[3].ToString(), "");
                    break;

                default:
                    CError.Compare(false, "Invalid param value");
                    break;
                }
            }
            catch (ArgumentException e)
            {
                CError.WriteLineIgnore("Exception: " + e.ToString());
                //By design
                if ((utils.WriterType == WriterType.UTF8Writer || utils.WriterType == WriterType.UnicodeWriter || utils.WriterType == WriterType.WrappedWriter || utils.IsIndent()) &&
                    (tokenType == "Name" || tokenType == "NmToken"))
                {
                    CError.Compare(w.WriteState, WriteState.Element, "WriteState should be Element");
                }
                else
                {
                    CError.Compare(w.WriteState, WriteState.Error, "WriteState should be Error");
                }
                return;
            }
            finally
            {
                w.Dispose();
            }
            Assert.True(false);
        }