Ejemplo n.º 1
0
        public void ReadScript()
        {
            string         input;
            HtmlTextReader reader;
            StringReader   sr;

            // Basic open close tag with text
            input  = "<Script type='javascript'> console.log('<a>some tag</a>') </script>";
            sr     = new StringReader(input);
            reader = new HtmlTextReader(sr);
            Assert.AreEqual(ParseState.Text, reader.ParseState); Assert.AreEqual("", reader.ReadNext());
            Assert.AreEqual(ParseState.OpenTag, reader.ParseState); Assert.AreEqual("script", reader.ReadNext());
            Assert.AreEqual(ParseState.AttributeName, reader.ParseState); Assert.AreEqual("type", reader.ReadNext());
            Assert.AreEqual(ParseState.AttributeValue, reader.ParseState); Assert.AreEqual("javascript", reader.ReadNext());
            Assert.AreEqual(ParseState.AttributeName, reader.ParseState); Assert.AreEqual("", reader.ReadNext());
            Assert.AreEqual(ParseState.Text, reader.ParseState); Assert.AreEqual(" console.log('<a>some tag</a>') ", reader.ReadRCData("script"));
            Assert.AreEqual(ParseState.Text, reader.ParseState); Assert.AreEqual("", reader.ReadNext());
            Assert.AreEqual(ParseState.Done, reader.ParseState);
        }
Ejemplo n.º 2
0
        internal static KeyValuePair <string, ParseState>[] ReadAll(HtmlTextReader reader)
        {
            List <KeyValuePair <string, ParseState> > toks = new List <KeyValuePair <string, ParseState> >();

            while (reader.ParseState != ParseState.Done)
            {
                toks.Add(new KeyValuePair <string, ParseState>(reader.ReadNext(), reader.ParseState));
            }
            return(toks.ToArray());
        }
Ejemplo n.º 3
0
        public void ReadNext()
        {
            string         input;
            HtmlTextReader reader;
            StringReader   sr;

            // Basic open close tag with text
            input  = " <a href='www.foobar.com'>Click me</a> ";
            sr     = new StringReader(input);
            reader = new HtmlTextReader(sr);

            // Starts in text
            Assert.AreEqual(ParseState.Text, reader.ParseState);

            // There was no text, so should be empty
            Assert.AreEqual(" ", reader.ReadNext());

            // Open tag
            Assert.AreEqual(ParseState.OpenTag, reader.ParseState);
            Assert.AreEqual("a", reader.ReadNext());

            // href
            Assert.AreEqual(ParseState.AttributeName, reader.ParseState);
            Assert.AreEqual("href", reader.ReadNext());

            // www.foobar.com
            Assert.AreEqual(ParseState.AttributeValue, reader.ParseState);
            Assert.AreEqual("www.foobar.com", reader.ReadNext());

            // Need to keep reading attributes until we get an empty one
            Assert.AreEqual(ParseState.AttributeName, reader.ParseState);
            Assert.AreEqual(String.Empty, reader.ReadNext());

            // Click me
            Assert.AreEqual(ParseState.Text, reader.ParseState);
            Assert.AreEqual("Click me", reader.ReadNext());

            // Close tag
            Assert.AreEqual(ParseState.CloseTag, reader.ParseState);
            Assert.AreEqual("a", reader.ReadNext());

            Assert.AreEqual(ParseState.Text, reader.ParseState);
        }