public void TestLoopbackSimpleRTFTableGetsTable() { using (Stream sIn = new FileStream(TESTFILE_DIR + "SimpleRTFTable_document.xml", FileMode.Open)) { FcsToRtfWriter writerOut = new FcsToRtfWriter(); writerOut.RememberElementsWritten = true; ParsingContext context = new ParsingContext(); context.SetDefaultStartContext(); context.ParsingBody = true; Parser pft = new Parser(sIn, new BodyConsumer(context), writerOut); pft.Parse(); List<DocElement> elemsBefore = writerOut.ListOfWrittenElements(); Workshare.Compositor.FCSFilters.Reader readBack = new Workshare.Compositor.FCSFilters.Reader(); readBack.ExtractRTFFileCollectionFromWriter(writerOut); List<DocElement> elemsAfter = readBack.ReadBackAllElementsFromFileCollection(); int iCountBefore = elemsBefore.Count; int iCountAfter = elemsAfter.Count; Assert.IsTrue(iCountAfter <= iCountBefore, "Seem to have invented extra elements in teh loop back"); } }
public void TestLoopbackSimpleRTFTableGetsGridInfo() { using (Stream sIn = new FileStream(TESTFILE_DIR + "SimpleRTFTable_document.xml", FileMode.Open)) { Workshare.Compositor.FCSFilters.FcsToRtfWriter writerOut = new Workshare.Compositor.FCSFilters.FcsToRtfWriter(); writerOut.RememberElementsWritten = true; ParsingContext context = new ParsingContext(); context.SetDefaultStartContext(); context.ParsingBody = true; Parser pft = new Parser(sIn, new BodyConsumer(context), writerOut); pft.Parse(); List<DocElement> elemsBefore = writerOut.ListOfWrittenElements(); Workshare.Compositor.FCSFilters.Reader readBack = new Workshare.Compositor.FCSFilters.Reader(); readBack.ExtractRTFFileCollectionFromWriter(writerOut); List<DocElement> elemsAfter = readBack.ReadBackAllElementsFromFileCollection(); int iCountBefore = elemsBefore.Count; int iCountAfter = elemsAfter.Count; // At 28-11-2007 count was 15, which is wrong, but will evolve to correctednessness with time, cups of coffee and several Hob Nobbs int iIndex = 14; Assert.AreEqual(DocElementTypes.WPtable, elemsAfter[iIndex].Type); Table tableEnd = elemsAfter[iIndex] as Table; Assert.IsFalse(tableEnd.IsStart); Assert.IsTrue(tableEnd.IsEnd); TableGrid grid = tableEnd.TableGrid; Assert.IsNotNull(grid); Assert.IsNotNull(grid.ColumnWidths); Assert.AreEqual(2, grid.ColumnWidths.Count); Assert.AreEqual(1242, grid.ColumnWidths[0]); Assert.AreEqual(993, grid.ColumnWidths[1]); } }
public void TestLoopbackRTFTableGetsCellBorderInfo() { using (Stream sIn = new FileStream(TESTFILE_DIR + "DocumentExplicitTableAndCellBorders.xml", FileMode.Open)) { Workshare.Compositor.FCSFilters.FcsToRtfWriter writerOut = new Workshare.Compositor.FCSFilters.FcsToRtfWriter(); writerOut.RememberElementsWritten = true; ParsingContext context = new ParsingContext(); context.SetDefaultStartContext(); context.ParsingBody = true; Parser pft = new Parser(sIn, new BodyConsumer(context), writerOut); pft.Parse(); List<DocElement> elemsBefore = writerOut.ListOfWrittenElements(); Workshare.Compositor.FCSFilters.Reader readBack = new Workshare.Compositor.FCSFilters.Reader(); readBack.ExtractRTFFileCollectionFromWriter(writerOut); List<DocElement> elemsAfter = readBack.ReadBackAllElementsFromFileCollection(); int iCountBefore = elemsBefore.Count; int iCountAfter = elemsAfter.Count; int iIndex = 6; Assert.AreEqual(DocElementTypes.WPtableCell, elemsAfter[iIndex].Type); TableCell cell2End = elemsAfter[iIndex] as TableCell; Assert.IsFalse(cell2End.IsStart); Assert.IsTrue(cell2End.IsEnd); Assert.IsNotNull(cell2End.CellFormatting.Border); Assert.AreEqual(Border.BorderStyle.SingleThickness, cell2End.CellFormatting.Border.Top.BorderLineStyle); Assert.AreEqual(Border.BorderStyle.SingleThickness, cell2End.CellFormatting.Border.Left.BorderLineStyle); Assert.AreEqual(Border.BorderStyle.SingleThickness, cell2End.CellFormatting.Border.Bottom.BorderLineStyle); Assert.AreEqual(Border.BorderStyle.SingleThickness, cell2End.CellFormatting.Border.Right.BorderLineStyle); Assert.AreEqual(4, cell2End.CellFormatting.Border.Top.PenWidth); Assert.AreEqual(4, cell2End.CellFormatting.Border.Left.PenWidth); Assert.AreEqual(4, cell2End.CellFormatting.Border.Bottom.PenWidth); Assert.AreEqual(4, cell2End.CellFormatting.Border.Right.PenWidth); } }
public void TestLoopbackRTFTableGetsTableBorderInfo() { using (Stream sIn = new FileStream(TESTFILE_DIR + "DocumentWithExplicitTableBorder.xml", FileMode.Open)) { Workshare.Compositor.FCSFilters.FcsToRtfWriter writerOut = new Workshare.Compositor.FCSFilters.FcsToRtfWriter(); writerOut.RememberElementsWritten = true; ParsingContext context = new ParsingContext(); context.SetDefaultStartContext(); context.ParsingBody = true; Parser pft = new Parser(sIn, new BodyConsumer(context), writerOut); pft.Parse(); List<DocElement> elemsBefore = writerOut.ListOfWrittenElements(); Workshare.Compositor.FCSFilters.Reader readBack = new Workshare.Compositor.FCSFilters.Reader(); readBack.ExtractRTFFileCollectionFromWriter(writerOut); List<DocElement> elemsAfter = readBack.ReadBackAllElementsFromFileCollection(); int iCountBefore = elemsBefore.Count; int iCountAfter = elemsAfter.Count; int iIndex = 14; Assert.AreEqual(DocElementTypes.WPtable, elemsAfter[iIndex].Type); Table tableEnd = elemsAfter[iIndex] as Table; Assert.IsFalse(tableEnd.IsStart); Assert.IsTrue(tableEnd.IsEnd); Assert.IsNotNull(tableEnd.TableProperties); Assert.IsNotNull(tableEnd.TableProperties.TableBorders); Assert.IsNotNull(tableEnd.TableProperties.TableBorders.Top); Border borderTableTop = tableEnd.TableProperties.TableBorders.Top; Assert.AreEqual(Border.BorderStyle.Dashed, borderTableTop.BorderLineStyle); Assert.AreEqual(8, borderTableTop.PenWidth); Assert.IsNotNull(tableEnd.TableProperties.TableBorders.Left); Border borderTableLeft = tableEnd.TableProperties.TableBorders.Left; Assert.AreEqual(Border.BorderStyle.SingleThickness, borderTableLeft.BorderLineStyle); Assert.AreEqual(8, borderTableLeft.PenWidth); Assert.IsNotNull(tableEnd.TableProperties.TableBorders.Bottom); Border borderTableBottom = tableEnd.TableProperties.TableBorders.Bottom; Assert.AreEqual(Border.BorderStyle.None, borderTableBottom.BorderLineStyle); Assert.AreEqual(0, borderTableBottom.PenWidth); Assert.IsNotNull(tableEnd.TableProperties.TableBorders.Right); Border borderTableRight = tableEnd.TableProperties.TableBorders.Right; Assert.AreEqual(Border.BorderStyle.Double, borderTableRight.BorderLineStyle); Assert.AreEqual(8, borderTableRight.PenWidth); Assert.IsNotNull(tableEnd.TableProperties.TableBorders.HorizontalInside); Border borderTableHorizontalInside = tableEnd.TableProperties.TableBorders.HorizontalInside; Assert.AreEqual(Border.BorderStyle.SingleThickness, borderTableHorizontalInside.BorderLineStyle); Assert.AreEqual(4, borderTableHorizontalInside.PenWidth); Assert.IsNotNull(tableEnd.TableProperties.TableBorders.VerticalInside); Border borderTableVerticalInside = tableEnd.TableProperties.TableBorders.VerticalInside; Assert.AreEqual(Border.BorderStyle.SingleThickness, borderTableVerticalInside.BorderLineStyle); Assert.AreEqual(6, borderTableVerticalInside.PenWidth); } }