@@ -29,6 +29,7 @@ This file is part of the iText (R) project.
29
29
import com .itextpdf .kernel .geom .Rectangle ;
30
30
import com .itextpdf .kernel .pdf .PdfDocument ;
31
31
import com .itextpdf .kernel .pdf .PdfWriter ;
32
+ import com .itextpdf .kernel .pdf .xobject .PdfFormXObject ;
32
33
import com .itextpdf .layout .Document ;
33
34
import com .itextpdf .layout .Style ;
34
35
import com .itextpdf .layout .borders .SolidBorder ;
@@ -2266,6 +2267,150 @@ public void differentBasisPercentSumGtWidthGrow1Shrink0Test01() {
2266
2267
Assert .assertEquals (200f , rectangleTable .get (0 ).get (2 ).getRectangle ().getWidth (), EPS );
2267
2268
}
2268
2269
2270
+ @ Test
2271
+ public void calculateMinContentWithMinWidthTest () {
2272
+ DivRenderer divRenderer = new DivRenderer (new Div ());
2273
+ divRenderer .setProperty (Property .WIDTH , UnitValue .createPointValue (100 ));
2274
+ divRenderer .setProperty (Property .MIN_WIDTH , UnitValue .createPointValue (30 ));
2275
+
2276
+ FlexUtil .FlexItemCalculationInfo info = createFlexItemCalculationInfo (divRenderer );
2277
+ Assert .assertEquals (30f , info .minContent , EPS );
2278
+
2279
+ divRenderer .setProperty (Property .WIDTH , UnitValue .createPointValue (30 ));
2280
+ divRenderer .setProperty (Property .MIN_WIDTH , UnitValue .createPointValue (100 ));
2281
+
2282
+ info = createFlexItemCalculationInfo (divRenderer );
2283
+ Assert .assertEquals (100f , info .minContent , EPS );
2284
+ }
2285
+
2286
+ @ Test
2287
+ public void calculateMinContentForDivWithContentTest () {
2288
+ Div div = new Div ();
2289
+ div .add (new Div ().setWidth (50 ));
2290
+ IRenderer divRenderer = div .createRendererSubTree ();
2291
+
2292
+ FlexUtil .FlexItemCalculationInfo info = createFlexItemCalculationInfo ((AbstractRenderer ) divRenderer );
2293
+ Assert .assertEquals (50.0f , info .minContent , EPS );
2294
+ }
2295
+
2296
+ @ Test
2297
+ public void calculateMinContentForDivWithWidthTest () {
2298
+ DivRenderer divRenderer = new DivRenderer (new Div ());
2299
+ divRenderer .setProperty (Property .WIDTH , UnitValue .createPointValue (100 ));
2300
+
2301
+ FlexUtil .FlexItemCalculationInfo info = createFlexItemCalculationInfo (divRenderer );
2302
+ Assert .assertEquals (0.0f , info .minContent , EPS );
2303
+ }
2304
+
2305
+ @ Test
2306
+ public void calculateMinContentForDivWithWidthAndContentTest () {
2307
+ Div div = new Div ();
2308
+ div .add (new Div ().setWidth (50 ));
2309
+ IRenderer divRenderer = div .createRendererSubTree ();
2310
+ divRenderer .setProperty (Property .WIDTH , UnitValue .createPointValue (100 ));
2311
+
2312
+ FlexUtil .FlexItemCalculationInfo info = createFlexItemCalculationInfo ((AbstractRenderer ) divRenderer );
2313
+ Assert .assertEquals (50.0f , info .minContent , EPS );
2314
+
2315
+ div = new Div ();
2316
+ div .add (new Div ().setWidth (150 ));
2317
+ divRenderer = div .createRendererSubTree ();
2318
+ divRenderer .setProperty (Property .WIDTH , UnitValue .createPointValue (100 ));
2319
+
2320
+ info = createFlexItemCalculationInfo ((AbstractRenderer ) divRenderer );
2321
+ Assert .assertEquals (100.0f , info .minContent , EPS );
2322
+ }
2323
+
2324
+ @ Test
2325
+ public void calculateMinContentForDivWithWidthMaxWidthAndContentTest () {
2326
+ Div div = new Div ();
2327
+ div .add (new Div ().setWidth (50 ));
2328
+ div .setProperty (Property .MAX_WIDTH , UnitValue .createPointValue (45 ));
2329
+ IRenderer divRenderer = div .createRendererSubTree ();
2330
+ divRenderer .setProperty (Property .WIDTH , UnitValue .createPointValue (100 ));
2331
+
2332
+ FlexUtil .FlexItemCalculationInfo info = createFlexItemCalculationInfo ((AbstractRenderer ) divRenderer );
2333
+ Assert .assertEquals (45.0f , info .minContent , EPS );
2334
+
2335
+ div = new Div ();
2336
+ div .add (new Div ().setWidth (150 ));
2337
+ div .setProperty (Property .MAX_WIDTH , UnitValue .createPointValue (120 ));
2338
+ divRenderer = div .createRendererSubTree ();
2339
+ divRenderer .setProperty (Property .WIDTH , UnitValue .createPointValue (100 ));
2340
+
2341
+ info = createFlexItemCalculationInfo ((AbstractRenderer ) divRenderer );
2342
+ Assert .assertEquals (100.0f , info .minContent , EPS );
2343
+ }
2344
+
2345
+ @ Test
2346
+ public void calculateMinContentForImageTest () {
2347
+ Image image = new Image (new PdfFormXObject (new Rectangle (60 , 150 )));
2348
+ IRenderer imageRenderer = image .createRendererSubTree ();
2349
+
2350
+ FlexUtil .FlexItemCalculationInfo info = createFlexItemCalculationInfo ((AbstractRenderer ) imageRenderer );
2351
+ Assert .assertEquals (60.0f , info .minContent , EPS );
2352
+ }
2353
+
2354
+ @ Test
2355
+ public void calculateMinContentForImageWithHeightTest () {
2356
+ Image image = new Image (new PdfFormXObject (new Rectangle (60 , 150 )));
2357
+ image .setHeight (300 );
2358
+ IRenderer imageRenderer = image .createRendererSubTree ();
2359
+
2360
+ FlexUtil .FlexItemCalculationInfo info = createFlexItemCalculationInfo ((AbstractRenderer ) imageRenderer );
2361
+ Assert .assertEquals (60.0f , info .minContent , EPS );
2362
+
2363
+ image = new Image (new PdfFormXObject (new Rectangle (60 , 150 )));
2364
+ image .setHeight (100 );
2365
+ imageRenderer = image .createRendererSubTree ();
2366
+
2367
+ info = createFlexItemCalculationInfo ((AbstractRenderer ) imageRenderer );
2368
+ Assert .assertEquals (40.0f , info .minContent , EPS );
2369
+ }
2370
+
2371
+ @ Test
2372
+ public void calculateMinContentForImageWithHeightAndMinMaxHeightsTest () {
2373
+ Image image = new Image (new PdfFormXObject (new Rectangle (60 , 150 )));
2374
+ image .setHeight (300 );
2375
+ image .setMinHeight (20 );
2376
+ image .setMaxHeight (100 );
2377
+ IRenderer imageRenderer = image .createRendererSubTree ();
2378
+
2379
+ FlexUtil .FlexItemCalculationInfo info = createFlexItemCalculationInfo ((AbstractRenderer ) imageRenderer );
2380
+ Assert .assertEquals (40.0f , info .minContent , EPS );
2381
+
2382
+ image = new Image (new PdfFormXObject (new Rectangle (60 , 150 )));
2383
+ image .setHeight (100 );
2384
+ image .setMinHeight (20 );
2385
+ image .setMaxHeight (75 );
2386
+ imageRenderer = image .createRendererSubTree ();
2387
+
2388
+ info = createFlexItemCalculationInfo ((AbstractRenderer ) imageRenderer );
2389
+ Assert .assertEquals (30.0f , info .minContent , EPS );
2390
+ }
2391
+
2392
+ @ Test
2393
+ public void calculateMinContentForImageWithHeightAndWidthTest () {
2394
+ Image image = new Image (new PdfFormXObject (new Rectangle (60 , 150 )));
2395
+ image .setHeight (50 );
2396
+ image .setWidth (100 );
2397
+ IRenderer imageRenderer = image .createRendererSubTree ();
2398
+
2399
+ FlexUtil .FlexItemCalculationInfo info = createFlexItemCalculationInfo ((AbstractRenderer ) imageRenderer );
2400
+ Assert .assertEquals (60.0f , info .minContent , EPS );
2401
+
2402
+ image = new Image (new PdfFormXObject (new Rectangle (60 , 150 )));
2403
+ image .setHeight (50 );
2404
+ image .setWidth (50 );
2405
+ imageRenderer = image .createRendererSubTree ();
2406
+
2407
+ info = createFlexItemCalculationInfo ((AbstractRenderer ) imageRenderer );
2408
+ Assert .assertEquals (50.0f , info .minContent , EPS );
2409
+ }
2410
+
2411
+ private static FlexUtil .FlexItemCalculationInfo createFlexItemCalculationInfo (AbstractRenderer renderer ) {
2412
+ return new FlexUtil .FlexItemCalculationInfo (renderer , 0 , 0 , 0 , 0 , false );
2413
+ }
2269
2414
2270
2415
private static List <List <FlexItemInfo >> testFlex (List <UnitValue > flexBasisValues , List <Float > flexGrowValues ,
2271
2416
List <Float > flexShrinkValues ) {
0 commit comments