From 7be1716674db2c4092e267646be2a6f460e7073a Mon Sep 17 00:00:00 2001 From: Sergey Vladimirov Date: Tue, 5 Jul 2011 01:19:31 +0000 Subject: [PATCH] Test correct processing of "sprmPItap" (0x6649) and "sprmPFInTable" (0x2416) git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1142867 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/poi/hwpf/sprm/TestSprms.java | 82 +++++++++++++----- test-data/document/innertable.doc | Bin 0 -> 11776 bytes 2 files changed, 60 insertions(+), 22 deletions(-) create mode 100644 test-data/document/innertable.doc diff --git a/src/scratchpad/testcases/org/apache/poi/hwpf/sprm/TestSprms.java b/src/scratchpad/testcases/org/apache/poi/hwpf/sprm/TestSprms.java index 3bd0309d8d..bc00b2ffd4 100755 --- a/src/scratchpad/testcases/org/apache/poi/hwpf/sprm/TestSprms.java +++ b/src/scratchpad/testcases/org/apache/poi/hwpf/sprm/TestSprms.java @@ -27,35 +27,73 @@ import java.io.InputStream; import junit.framework.TestCase; import org.apache.poi.POIDataSamples; import org.apache.poi.hwpf.HWPFDocument; +import org.apache.poi.hwpf.usermodel.Paragraph; +import org.apache.poi.hwpf.usermodel.Range; + +public class TestSprms extends TestCase +{ + private static HWPFDocument reload( HWPFDocument hwpfDocument ) + throws IOException + { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + hwpfDocument.write( baos ); + return new HWPFDocument( new ByteArrayInputStream( baos.toByteArray() ) ); + } + + /** + * Test correct processing of "sprmPItap" (0x6649) and "sprmPFInTable" + * (0x2416) + */ + public void testInnerTable() throws Exception + { + InputStream resourceAsStream = POIDataSamples.getDocumentInstance() + .openResourceAsStream( "innertable.doc" ); + HWPFDocument hwpfDocument = new HWPFDocument( resourceAsStream ); + resourceAsStream.close(); + + testInnerTable( hwpfDocument ); + hwpfDocument = reload( hwpfDocument ); + testInnerTable( hwpfDocument ); + } + + private void testInnerTable( HWPFDocument hwpfDocument ) + { + Range range = hwpfDocument.getRange(); + for ( int p = 0; p < range.numParagraphs(); p++ ) + { + Paragraph paragraph = range.getParagraph( p ); + char first = paragraph.text().toLowerCase().charAt( 0 ); + if ( '1' <= first && first < '4' ) + { + assertTrue( paragraph.isInTable() ); + assertEquals( 2, paragraph.getTableLevel() ); + } + + if ( 'a' <= first && first < 'z' ) + { + assertTrue( paragraph.isInTable() ); + assertEquals( 1, paragraph.getTableLevel() ); + } + } + } -public class TestSprms extends TestCase { /** * Test correct processing of "sprmPJc" by uncompressor */ - public void testSprmPJc() throws IOException { + public void testSprmPJc() throws IOException + { InputStream resourceAsStream = POIDataSamples.getDocumentInstance() - .openResourceAsStream("Bug49820.doc"); - HWPFDocument hwpfDocument = new HWPFDocument(resourceAsStream); - assertEquals(1, hwpfDocument.getStyleSheet().getParagraphStyle(8) - .getJustification()); - resourceAsStream.close(); - } - - /** - * Test correct processing of "sprmPJc" by compressor and uncompressor - */ - public void testSprmPJcResave() throws IOException { - InputStream resourceAsStream = POIDataSamples.getDocumentInstance() - .openResourceAsStream("Bug49820.doc"); - HWPFDocument hwpfDocument = new HWPFDocument(resourceAsStream); + .openResourceAsStream( "Bug49820.doc" ); + HWPFDocument hwpfDocument = new HWPFDocument( resourceAsStream ); resourceAsStream.close(); - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - hwpfDocument.write(baos); - hwpfDocument = new HWPFDocument( - new ByteArrayInputStream(baos.toByteArray())); + assertEquals( 1, hwpfDocument.getStyleSheet().getParagraphStyle( 8 ) + .getJustification() ); + + hwpfDocument = reload( hwpfDocument ); + + assertEquals( 1, hwpfDocument.getStyleSheet().getParagraphStyle( 8 ) + .getJustification() ); - assertEquals(1, hwpfDocument.getStyleSheet().getParagraphStyle(8) - .getJustification()); } } diff --git a/test-data/document/innertable.doc b/test-data/document/innertable.doc new file mode 100644 index 0000000000000000000000000000000000000000..e437a5fd162ecc42a0326575d7232121421bdcce GIT binary patch literal 11776 zcmeHNTWnNC82)GX>~^=5UY1hYa_Lf*OAtzL3tK7BZc8akq2-cbB5GRNrYP+~FAgLlxt^K*{kO8)SHG$LQ_|dCam!4?FJ2p8fiAb=r6MlS`pDQRCXoaE1yCog}_0=aC(bi4hn^_#r(`R_wsr}Lj{1@{Kd{|aCY zPzh84)xcU{9k3qQ0Mr0MU?WfqYyzmmW`tXk^tNO;*Sb9Qpe>+abvG7x*6a0iM;G}~ z`_je!J9_Tyczhy0JQ+M4A0OP=8GmVNbZBf+?+HgwlGhnOt9Js@b%^Nnx`_PO^6f>l zqHI3KpD8q3rYvazjI=_WLY~ErWL5MGwx)j*Ec1gS;g&Ecx^Fe(d)L$o5+f;d-L?l|ux+18nST-2##y(vS{T3rA zQ6r2R+l?q{EkysVx`z3ST17&#t5m6g3W4^@M&p1HK|WKy3;VqR8Gf{vy4EVT+b8R_ zjT_K@eM!5M_5 zO__r_e^d=3f2GvUwjd~tXc0>`YYo`OR&Y8Iwt+HhWIM}~?PU4hmZ>Edi6#Fbc`5X7**7BwboOl3#E^%0o8@lWf}UA zmQO9a0_&war20dOE%i#+r_T7eEbDa#5eS%TVKAtm?9axisDrc2>_ZOn$cgq)cG}5INwmTnE}X zrS%?yZ&?kN@;Z~7D%EMJQ|OP8WWSj9bz&>KeZz(`{Zb`GF|n2JUD)R*41L$-AXnAW*;bvI~_=o9RJ^owR68USCLoO#B(Fs@Nyz zC2{E8e)F@t_j*T4zj)6lPi_6~7BzVd;F`&F?yWo@w*mY{?g99n%yUN(zp`Xj_(9av}XG!*%o5o1fIJE&bpl=)dFM*PY;b(s*~SD|IyJ z=X44DVAg6HJh?vzTc>j(CmfK+`f^L$rec@O7uQN+mWUnDVTJ+ zdrLF^U^C#X(2QmFna8F~=1kz;LB3{$LATjUI}nC!xi2E#lay;?FPiK_Jxg)lW2+vp z$v=a7_*Ip6%hLiJCtNKawsXm?hb=NMFK>ao1s*F4wBv>(3UmMk(g_^InWX_}1XfBD z(5$I0q#e?^y5S!NVmihXPToDS7Qi{r0DM3Z5CAHGYJhhIAz&L&2k_n?0<;3w{lVWU z?uoU+GF3dt%dOFFKW;VsxYeAyE!llQDF(*Q54YTmu#W&rB*Kv8LsH*Do%~V<`H4Db+a`Bk%pXMhJ zTwt1SBD~-;FZt$C7jk82Mpa6=_lPE37GYR~4}`l}hMUEkY%E(MKF;wVV9oRGpsl(7 z6?0hbxUYW%+t;>%~ z*p^>~87!KS?c9#@MoHSJ$=L?Gu2viDyob>SFW2;Dz`m}3Y-z(VWmYd7u@_lxw0&ga z=_dPHz{Xp>Xg5SQp4ronU@Z`X`*;-S1XB9_L%Z^MT3bM2$yi?f@2ZuW8<*>XH-2v4 zcw@|{1vXt7GeSU9A5MOaQk>!9FFzcXjRnr2C6xeA14JpnV-WAE7vdv1@0N)L9_0VO zIDXRqLz2l%ycloeg9)6%%>y5VFGw#QcwaP`i|_*&tsJlBJA(5!a!Zne-1B&vUaBjE zbiU2AO-|qFsV@(obPd8M(SarFP@I%c*>q;D*?sC-gZ-Y)qo1fp^^-jR`*#@6)x+qK zam|^;BX(RrV4Jz;``aMj12zvYPUZ8p<;!GMr?sp>+&snc@0ck_9fG{cWNPl9dI{}k l)2(+a&pgR|vUhHe$P(mlg?#5N%xweR@kuXt?$rPP{SO_nIl}+| literal 0 HcmV?d00001