@@ -534,96 +534,115 @@ public virtual void NothingLayoutResult() {
534534 }
535535
536536 [ NUnit . Framework . Test ]
537- public virtual void UpdateSpecialScriptLayoutResultsNonTextRenderer ( ) {
538- IDictionary < int , LayoutResult > specialScriptLayoutResults = new Dictionary < int , LayoutResult > ( ) ;
537+ public virtual void ResetTextSequenceLayoutResultsBecauseOfNonTextRenderer ( ) {
538+ IDictionary < int , LayoutResult > textRendererLayoutResults = new Dictionary < int , LayoutResult > ( ) ;
539539 TextLayoutResult res = new TextLayoutResult ( LayoutResult . NOTHING , new LayoutArea ( 0 , new Rectangle ( 0 , 0 , 10
540540 , 10 ) ) , null , null , null ) ;
541- specialScriptLayoutResults . Put ( 0 , res ) ;
542- NUnit . Framework . Assert . IsFalse ( specialScriptLayoutResults . IsEmpty ( ) ) ;
541+ textRendererLayoutResults . Put ( 0 , res ) ;
543542 TabRenderer tabRenderer = new TabRenderer ( new Tab ( ) ) ;
544543 LineRenderer . MinMaxWidthOfTextRendererSequenceHelper minMaxWidthOfTextRendererSequenceHelper = new LineRenderer . MinMaxWidthOfTextRendererSequenceHelper
545544 ( 0f , 0f , false ) ;
546545 AbstractWidthHandler widthHandler = new MaxSumWidthHandler ( new MinMaxWidth ( ) ) ;
547- PdfDocument pdfDocument = new PdfDocument ( new PdfWriter ( new MemoryStream ( ) ) ) ;
548- Document document = new Document ( pdfDocument ) ;
549546 LineRenderer lineRenderer = new LineRenderer ( ) ;
550- lineRenderer . SetParent ( document . GetRenderer ( ) ) ;
551- lineRenderer . AddChild ( tabRenderer ) ;
552- lineRenderer . UpdateSpecialScriptLayoutResults ( specialScriptLayoutResults , tabRenderer , 1 , res , minMaxWidthOfTextRendererSequenceHelper
547+ lineRenderer . ResetTextSequenceIfItEnded ( textRendererLayoutResults , false , tabRenderer , 1 , minMaxWidthOfTextRendererSequenceHelper
553548 , false , widthHandler ) ;
554- NUnit . Framework . Assert . IsTrue ( specialScriptLayoutResults . IsEmpty ( ) ) ;
549+ NUnit . Framework . Assert . IsTrue ( textRendererLayoutResults . IsEmpty ( ) ) ;
555550 }
556551
557552 [ NUnit . Framework . Test ]
558- public virtual void UpdateSpecialScriptLayoutResultsFloatingRenderer ( ) {
559- IDictionary < int , LayoutResult > specialScriptLayoutResults = new Dictionary < int , LayoutResult > ( ) ;
553+ public virtual void ResetTextSequenceLayoutResultsBecauseOfFloatingRenderer ( ) {
554+ IDictionary < int , LayoutResult > textRendererLayoutResults = new Dictionary < int , LayoutResult > ( ) ;
560555 TextLayoutResult res = new TextLayoutResult ( LayoutResult . NOTHING , new LayoutArea ( 0 , new Rectangle ( 0 , 0 , 10
561556 , 10 ) ) , null , null , null ) ;
562- int childPosToRemain = 0 ;
563- specialScriptLayoutResults . Put ( childPosToRemain , res ) ;
564- NUnit . Framework . Assert . IsFalse ( specialScriptLayoutResults . IsEmpty ( ) ) ;
565- Tab tab = new Tab ( ) ;
566- tab . SetProperty ( Property . FLOAT , FloatPropertyValue . RIGHT ) ;
567- TabRenderer tabRenderer = new TabRenderer ( tab ) ;
557+ int childPosAlreadyAdded = 0 ;
558+ textRendererLayoutResults . Put ( childPosAlreadyAdded , res ) ;
559+ iText . Layout . Element . Text text = new iText . Layout . Element . Text ( "float" ) ;
560+ text . SetProperty ( Property . FLOAT , FloatPropertyValue . RIGHT ) ;
561+ TextRenderer tabRenderer = new TextRenderer ( text ) ;
568562 LineRenderer . MinMaxWidthOfTextRendererSequenceHelper minMaxWidthOfTextRendererSequenceHelper = new LineRenderer . MinMaxWidthOfTextRendererSequenceHelper
569563 ( 0f , 0f , false ) ;
570564 AbstractWidthHandler widthHandler = new MaxSumWidthHandler ( new MinMaxWidth ( ) ) ;
571- PdfDocument pdfDocument = new PdfDocument ( new PdfWriter ( new MemoryStream ( ) ) ) ;
572- Document document = new Document ( pdfDocument ) ;
573565 LineRenderer lineRenderer = new LineRenderer ( ) ;
574- lineRenderer . SetParent ( document . GetRenderer ( ) ) ;
575- lineRenderer . AddChild ( tabRenderer ) ;
566+ int childPosDuringResetAttempt = 1 ;
567+ lineRenderer . ResetTextSequenceIfItEnded ( textRendererLayoutResults , false , tabRenderer , childPosDuringResetAttempt
568+ , minMaxWidthOfTextRendererSequenceHelper , true , widthHandler ) ;
569+ NUnit . Framework . Assert . IsTrue ( textRendererLayoutResults . IsEmpty ( ) ) ;
570+ }
571+
572+ [ NUnit . Framework . Test ]
573+ public virtual void UpdateSpecialScriptLayoutResultsNonTextRenderer ( ) {
574+ IDictionary < int , LayoutResult > textRendererLayoutResults = new Dictionary < int , LayoutResult > ( ) ;
575+ Tab tab = new Tab ( ) ;
576+ TabRenderer tabRenderer = new TabRenderer ( tab ) ;
577+ LineRenderer lineRenderer = new LineRenderer ( ) ;
576578 int childPosNotToBeAdded = 1 ;
577- lineRenderer . UpdateSpecialScriptLayoutResults ( specialScriptLayoutResults , tabRenderer , childPosNotToBeAdded
578- , res , minMaxWidthOfTextRendererSequenceHelper , false , widthHandler ) ;
579- NUnit . Framework . Assert . IsTrue ( specialScriptLayoutResults . ContainsKey ( childPosToRemain ) ) ;
580- NUnit . Framework . Assert . IsFalse ( specialScriptLayoutResults . ContainsKey ( childPosNotToBeAdded ) ) ;
579+ lineRenderer . UpdateSpecialScriptLayoutResults ( textRendererLayoutResults , tabRenderer , childPosNotToBeAdded
580+ , new LayoutResult ( LayoutResult . FULL , new LayoutArea ( 1 , new Rectangle ( 10 , 10 ) ) , null , null , null ) ) ;
581+ NUnit . Framework . Assert . IsTrue ( textRendererLayoutResults . IsEmpty ( ) ) ;
581582 }
582583
583584 [ NUnit . Framework . Test ]
584- public virtual void UpdateSpecialScriptLayoutResultsTextRendererWithNoSpecialScripts ( ) {
585+ public virtual void ResetSpecialScriptTextSequenceBecauseOfTextRendererWithNoSpecialScripts ( ) {
585586 IDictionary < int , LayoutResult > specialScriptLayoutResults = new Dictionary < int , LayoutResult > ( ) ;
586587 LayoutResult res = new LayoutResult ( LayoutResult . NOTHING , new LayoutArea ( 0 , new Rectangle ( 0 , 0 , 10 , 10 ) ) ,
587588 null , null ) ;
588589 specialScriptLayoutResults . Put ( 0 , res ) ;
589- NUnit . Framework . Assert . IsFalse ( specialScriptLayoutResults . IsEmpty ( ) ) ;
590590 TextRenderer textRenderer = new TextRenderer ( new iText . Layout . Element . Text ( "whatever" ) ) ;
591- PdfDocument pdfDocument = new PdfDocument ( new PdfWriter ( new MemoryStream ( ) ) ) ;
592- Document document = new Document ( pdfDocument ) ;
593591 LineRenderer lineRenderer = new LineRenderer ( ) ;
594- lineRenderer . SetParent ( document . GetRenderer ( ) ) ;
595- lineRenderer . AddChild ( textRenderer ) ;
596592 LineRenderer . MinMaxWidthOfTextRendererSequenceHelper minMaxWidthOfTextRendererSequenceHelper = new LineRenderer . MinMaxWidthOfTextRendererSequenceHelper
597593 ( 0f , 0f , false ) ;
598594 AbstractWidthHandler widthHandler = new MaxSumWidthHandler ( new MinMaxWidth ( ) ) ;
599- lineRenderer . UpdateSpecialScriptLayoutResults ( specialScriptLayoutResults , textRenderer , 1 , res , minMaxWidthOfTextRendererSequenceHelper
595+ lineRenderer . ResetTextSequenceIfItEnded ( specialScriptLayoutResults , true , textRenderer , 1 , minMaxWidthOfTextRendererSequenceHelper
600596 , true , widthHandler ) ;
601597 NUnit . Framework . Assert . IsTrue ( specialScriptLayoutResults . IsEmpty ( ) ) ;
602598 }
603599
604600 [ NUnit . Framework . Test ]
605- public virtual void UpdateSpecialScriptLayoutResultsTextRendererWithSpecialScripts ( ) {
601+ public virtual void UpdateSpecialScriptLayoutResultsTextRendererWithNoSpecialScripts ( ) {
606602 IDictionary < int , LayoutResult > specialScriptLayoutResults = new Dictionary < int , LayoutResult > ( ) ;
603+ TextRenderer textRenderer = new TextRenderer ( new iText . Layout . Element . Text ( "whatever" ) ) ;
607604 LayoutResult res = new LayoutResult ( LayoutResult . NOTHING , new LayoutArea ( 0 , new Rectangle ( 0 , 0 , 10 , 10 ) ) ,
608605 null , null ) ;
609- int firstKey = - 1 ;
606+ LineRenderer lineRenderer = new LineRenderer ( ) ;
607+ lineRenderer . UpdateSpecialScriptLayoutResults ( specialScriptLayoutResults , textRenderer , 1 , res ) ;
608+ NUnit . Framework . Assert . IsTrue ( specialScriptLayoutResults . IsEmpty ( ) ) ;
609+ }
610+
611+ [ NUnit . Framework . Test ]
612+ public virtual void NotResetSpecialScriptTextSequenceBecauseOfTextRendererWithSpecialScripts ( ) {
613+ IDictionary < int , LayoutResult > specialScriptLayoutResults = new Dictionary < int , LayoutResult > ( ) ;
614+ LayoutResult res = new LayoutResult ( LayoutResult . NOTHING , new LayoutArea ( 0 , new Rectangle ( 0 , 0 , 10 , 10 ) ) ,
615+ null , null ) ;
616+ int firstKey = 0 ;
610617 specialScriptLayoutResults . Put ( firstKey , res ) ;
611- NUnit . Framework . Assert . IsFalse ( specialScriptLayoutResults . IsEmpty ( ) ) ;
612618 TextRenderer textRenderer = new TextRenderer ( new iText . Layout . Element . Text ( "whatever" ) ) ;
613- textRenderer . SetSpecialScriptsWordBreakPoints ( new List < int > ( JavaUtil . ArraysAsList ( - 1 ) ) ) ;
614- PdfDocument pdfDocument = new PdfDocument ( new PdfWriter ( new MemoryStream ( ) ) ) ;
615- Document document = new Document ( pdfDocument ) ;
619+ textRenderer . SetSpecialScriptsWordBreakPoints ( new List < int > ( JavaCollectionsUtil . SingletonList ( - 1 ) ) ) ;
616620 LineRenderer lineRenderer = new LineRenderer ( ) ;
617- lineRenderer . SetParent ( document . GetRenderer ( ) ) ;
618- lineRenderer . AddChild ( textRenderer ) ;
619621 LineRenderer . MinMaxWidthOfTextRendererSequenceHelper minMaxWidthOfTextRendererSequenceHelper = new LineRenderer . MinMaxWidthOfTextRendererSequenceHelper
620622 ( 0f , 0f , false ) ;
621623 AbstractWidthHandler widthHandler = new MaxSumWidthHandler ( new MinMaxWidth ( ) ) ;
622624 int secondKey = firstKey + 1 ;
623- lineRenderer . UpdateSpecialScriptLayoutResults ( specialScriptLayoutResults , textRenderer , secondKey , res , minMaxWidthOfTextRendererSequenceHelper
625+ lineRenderer . ResetTextSequenceIfItEnded ( specialScriptLayoutResults , true , textRenderer , secondKey , minMaxWidthOfTextRendererSequenceHelper
624626 , true , widthHandler ) ;
627+ NUnit . Framework . Assert . AreEqual ( 1 , specialScriptLayoutResults . Count ) ;
628+ NUnit . Framework . Assert . IsTrue ( specialScriptLayoutResults . ContainsKey ( firstKey ) ) ;
629+ }
630+
631+ [ NUnit . Framework . Test ]
632+ public virtual void UpdateSpecialScriptLayoutResultsTextRendererWithSpecialScripts ( ) {
633+ IDictionary < int , LayoutResult > specialScriptLayoutResults = new Dictionary < int , LayoutResult > ( ) ;
634+ LayoutResult res = new LayoutResult ( LayoutResult . NOTHING , new LayoutArea ( 0 , new Rectangle ( 0 , 0 , 10 , 10 ) ) ,
635+ null , null ) ;
636+ int firstKey = 0 ;
637+ specialScriptLayoutResults . Put ( firstKey , res ) ;
638+ TextRenderer textRenderer = new TextRenderer ( new iText . Layout . Element . Text ( "whatever" ) ) ;
639+ textRenderer . SetSpecialScriptsWordBreakPoints ( new List < int > ( JavaCollectionsUtil . SingletonList ( - 1 ) ) ) ;
640+ LineRenderer lineRenderer = new LineRenderer ( ) ;
641+ int secondKey = firstKey + 1 ;
642+ lineRenderer . UpdateSpecialScriptLayoutResults ( specialScriptLayoutResults , textRenderer , secondKey , res ) ;
625643 NUnit . Framework . Assert . IsTrue ( specialScriptLayoutResults . ContainsKey ( firstKey ) ) ;
626644 NUnit . Framework . Assert . IsTrue ( specialScriptLayoutResults . ContainsKey ( secondKey ) ) ;
645+ NUnit . Framework . Assert . AreEqual ( 2 , specialScriptLayoutResults . Count ) ;
627646 }
628647
629648 [ NUnit . Framework . Test ]
0 commit comments