public void ParseShouldLeaveCursorOneTokenPastTheParagraphBoundary()
        {
            var parserNode = new OoxmlNodeTd(new OoxmlScanner(
                                                 new Source(@"<w:body>
                                <w:p>
                                    <w:pPr>
                                        <w:i />
                                    </w:pPr>
                                </w:p>
                            </w:body>")
                                                 ));

            parserNode.NextToken();
            while (parserNode.CurrentToken.Keyword != KeywordToken.PreviousParagraph)
            {
                parserNode.NextToken();
            }
            var sut = new PreviousParagraphStatementParser(parserNode);

            sut.Parse(parserNode.CurrentToken);

            var currentToken = parserNode.CurrentToken;

            Assert.AreEqual(KeywordToken.Close, currentToken.Keyword);
            Assert.AreEqual("w:p", currentToken.Text);
        }
Exemple #2
0
        public void ParseWillNotParseAnyTagsOutsideOfW_Document()
        {
            var testInput = @"<pkg:package>
                                <pkg:xmlData><w:document>
                                <w:body>
                                    <w:p testAttrib=""test"">
                                    <w:pPr>
                                        <w:b />
                                    </w:pPr>
                                    </w:p>
                            </w:body></w:document></pkg:xmlData>
                            <pkg:part pkg:name=""/word/footnotes.xml"" pkg:contentType=""application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml"">
                                <pkg:xmlData>
                                    <w:footnote w:type=""separator"" w:id="" - 1"">
                                        <w:p w:rsidR = ""00644911"" w:rsidRDefault = ""00644911"" w:rsidP = ""00230A5E"">
                                            <w:pPr>
                                                <w:spacing w:after=""0"" w:line = ""240"" w:lineRule=""auto"" />
                                            </ w:pPr >
                                            <w:r>                   
                                                <w:separator/>
                                            </w:r>
                                        </w:p>
                                    </w:footnote>                      
                                </pkg:xmlData>
                            <pkg:part>
                          </pkg:package>
";
            var a         = new OoxmlNodeTd(new OoxmlScanner(new Source(testInput)));

            a.Parse(true);

            Assert.AreEqual(KeywordToken.Body, a.Root.Root.Type);
        }
Exemple #3
0
        public static INode ParseString(string text, bool shouldAnalyze = false)
        {
            OoxmlNodeTd parent = new OoxmlNodeTd(new OoxmlScanner(new Source(text)));

            //parent.Use(new ElementToAttributeAnalyzer());
            //parent.Use(new AttributeCopierAnalyzer());
            parent.Parse(shouldAnalyze);

            return(parent.Root.Root);
        }
Exemple #4
0
        public void CurrentTokenDoesNotMoveCharForward()
        {
            var testInput = @"<w:p testAttrib=""test"">ok jim</w:p>";
            var a         = new OoxmlNodeTd(new OoxmlScanner(new Source(testInput)));

            a.NextToken();
            Assert.AreEqual(a.CurrentToken.Keyword, KeywordToken.STARTING_ELEMENT);
            a.NextToken();
            Assert.AreEqual(a.CurrentToken.Keyword, KeywordToken.Paragraph);

            Assert.AreEqual(a.CurrentToken.Keyword, KeywordToken.Paragraph);
        }
Exemple #5
0
        public void ParseReturnsBodyAsRootNodeWhereAppropriate()
        {
            // new DirectoryInfo(Environment.CurrentDirectory).Parent.Parent.FullName
            var pathCurrentDirectory = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory)
                                       .Parent?
                                       .Parent?
                                       .FullName + "/Data/RootNodeTest.xml";

            var testInput = File.ReadAllText(pathCurrentDirectory);
            var a         = new OoxmlNodeTd(new OoxmlScanner(new Source(testInput)));

            a.Parse(true);

            Assert.AreEqual(KeywordToken.Body, a.Root.Root.Type);
        }
Exemple #6
0
        public void TestBasicNode()
        {
            var testInput = @"<w:p testAttrib=""test"" another=""testagain"">ok jim</w:p>";

            var program = new OoxmlNodeTd(new OoxmlScanner(new Source(testInput)));

            program.Parse();

            var rootNode = program.Root.Root;

            Assert.AreEqual(KeywordToken.Paragraph, rootNode.Type);
            Assert.AreEqual("test", rootNode.GetAttribute("unknown"));
            Assert.AreEqual("testagain", rootNode.GetAttribute("unknown_2"));
            Assert.AreEqual("ok jim", rootNode.Children.First().GetAttribute("Text"));
        }
Exemple #7
0
        public void ShouldRunsAnalyzersOnParse()
        {
            var analyzer = new Mock <Analyzer>(MockBehavior.Strict);

            analyzer.Setup(z => z.Analyze(It.IsAny <INode>()))
            .Returns <INode>(n => n);

            var testInput = @"<w:p testAttrib=""test"">ok jim</w:p>";
            var a         = new OoxmlNodeTd(new OoxmlScanner(new Source(testInput)));

            a.Use(analyzer.Object);
            a.Parse();

            analyzer.Verify(z => z.Analyze(It.IsAny <INode>()));
        }
        public void ParseShouldLeaveCursorOneTokenPastTheWordBoundary()
        {
            var parserNode = new OoxmlNodeTd(new OoxmlScanner(
                                                 new Source(@"<w:body>
                                <w:p>
                                    <w:t>Testing this string</w:t>
                                </w:p>
                            </w:body>")
                                                 ));

            parserNode.NextToken();
            while (parserNode.CurrentToken.Keyword != KeywordToken.StringLiteral)
            {
                parserNode.NextToken();
            }
            var Sut = new OoxmlToHtml.Parsers.StringLiteralStatementParser(parserNode);

            Sut.Parse(parserNode.CurrentToken);

            Assert.AreEqual(KeywordToken.Close, parserNode.CurrentToken.Keyword);
        }
Exemple #9
0
        public void ParsePassesDefaultAnalyzersResultsToCustomAnalyzers()
        {
            var analyzer = new Mock <Analyzer>(MockBehavior.Strict);

            analyzer.Setup(z => z.Analyze(It.IsAny <INode>()))
            .Returns <INode>(n =>
            {
                Assert.AreEqual(bool.TrueString, n.GetAttribute("bold"));
                return(n);
            });

            var testInput = @"<w:p testAttrib=""test"">
                                <w:pPr>
                                    <w:b />
                                </w:pPr>
                              </w:p>";
            var a         = new OoxmlNodeTd(new OoxmlScanner(new Source(testInput)));

            a.Use(analyzer.Object);
            a.Parse(true);
        }
Exemple #10
0
        public void ParseDoesRunThroughDefaultAnalyzersWhenSpecified()
        {
            var analyzer = new Mock <Analyzer>(MockBehavior.Strict);

            analyzer.Setup(z => z.Analyze(It.IsAny <INode>()))
            .Returns <INode>(n => n);

            var testInput = @"<w:p testAttrib=""test"">
                                <w:pPr>
                                    <w:b />
                                </w:pPr>
                                <w:r>
                                    <w:t>ok jim</w:t>
                                </w:r>
                              </w:p>";
            var a         = new OoxmlNodeTd(new OoxmlScanner(new Source(testInput)));

            a.Parse(true);

            Assert.AreEqual(bool.TrueString, a.Root.Root.GetAttribute("bold"));
        }
Exemple #11
0
        public void ParseDoesNotRunThroughDefaultAnalyzersWhenSpecified()
        {
            var analyzer = new Mock <Analyzer>(MockBehavior.Strict);

            analyzer.Setup(z => z.Analyze(It.IsAny <INode>()))
            .Returns <INode>(n => n);

            var testInput = @"<w:p testAttrib=""test"">
                                <w:pPr>
                                    <w:b />
                                </w:pPr>
                                <w:r>
                                    <w:t>ok jim</w:t>
                                </w:r>
                              </w:p>";
            var a         = new OoxmlNodeTd(new OoxmlScanner(new Source(testInput)));

            a.Parse();

            Assert.Throws <KeyNotFoundException>(() => a.Root.Root.GetAttribute("bold"));
        }
Exemple #12
0
        public void TestContainerElementInsideContainerElement()
        {
            var testInput = @"<w:p>
                                <w:pPr>
                                    <w:color w:val=""FF0000"" />
                                </w:pPr>
                                <w:t>testing me too</w:t>
                              </w:p>";

            var program = new OoxmlNodeTd(new OoxmlScanner(new Source(testInput)));

            program.Parse();

            var rootNode = program.Root.Root;

            Assert.AreEqual(KeywordToken.Paragraph, rootNode.Type);
            //Assert.AreEqual(KeywordToken.Color, rootNode.Children[0].Children[0].Type);
            // Assert.AreEqual("FF0000", rootNode.GetAttribute("fontColor"));
            //Assert.AreEqual(KeywordToken.Text, rootNode.Children[1].Type);
            //Assert.AreEqual("testing me too", rootNode.Children[1].Children[0].GetAttribute("value"));
            //Assert.AreEqual(2, rootNode.Children.Count);
        }
 public TextStatementParser(OoxmlNodeTd parent) : base(parent)
 {
 }
Exemple #14
0
 protected ElementNode(OoxmlNodeTd parser)
 {
     this.parser = parser.parser;
 }
 public ParagraphStyleStatementParser(OoxmlNodeTd parent) : base(parent)
 {
 }
Exemple #16
0
 public StringLiteralStatementParser(OoxmlNodeTd parent)
 {
     this._parser = parent.parser;
 }
 public UnknownElementParser(OoxmlNodeTd parent) : base(parent)
 {
 }
 protected AttributeNode(OoxmlNodeTd parent) : base(parent)
 {
 }
 public PreviousParagraphStatementParser(OoxmlNodeTd parent) : base(parent)
 {
 }
 public GenericElementNode(OoxmlNodeTd parent, KeywordToken token) : base(parent)
 {
     AttributeName = token;
 }
 public ValueAttribute(OoxmlNodeTd parent) : base(parent)
 {
 }
 public ItalicStatementParser(OoxmlNodeTd parent) : base(parent)
 {
 }
Exemple #23
0
 public ColorStatementNode(OoxmlNodeTd parser) : base(parser)
 {
 }
 public UnknownStringLiteralAttribute(OoxmlNodeTd parent) : base(parent)
 {
 }