1<?php 2 3class TestLineBoxNested extends GenericTest { 4 function testLineBoxNested1() { 5 $media = new Media(array('width' => 100, 'height' => 200/mm2pt(1)), 6 array('top'=>0, 'bottom'=>0, 'left'=>0, 'right'=>0)); 7 $tree = $this->runPipeline(' 8<html> 9<head> 10body { font-size: 10pt; line-height: 1; padding: 0; margin: 0; } 11</style> 12</head> 13<body> 14<span id="outer" style="border: solid black 1px;"> 15<span id="inner1" style="background-color: red;">TEXT</span> 16<span id="inner2" style="background-color: green; font-size: 2em;">TEXT</span> 17<span id="inner3" style="background-color: red;">TEXT</span> 18</span> 19</body> 20</html> 21', $media); 22 23 $outer = $tree->get_element_by_id('outer'); 24 $outer_line = $outer->getLineBox(0); 25 26 $inner1 = $tree->get_element_by_id('inner1'); 27 $inner1_line = $inner1->getLineBox(0); 28 29 $inner2 = $tree->get_element_by_id('inner2'); 30 $inner2_line = $inner2->getLineBox(0); 31 32 $inner3 = $tree->get_element_by_id('inner3'); 33 $inner3_line = $inner3->getLineBox(0); 34 35 // Note that it will emulate IE behavior (line box includes all 36 // nested line boxes), which (in my opinion) 37 // is more standard than Firefox (line box height is calculated 38 // using the first child line box). 39 40 $this->assertEqual($outer_line->top, $inner2_line->top); 41 $this->assertEqual($outer_line->bottom, $inner2_line->bottom); 42 $this->assertEqual($inner1_line->bottom, $inner3_line->bottom); 43 $this->assertEqual($inner1_line->top, $inner3_line->top); 44 $this->assertTrue($inner1_line->top < $inner2_line->top); 45 $this->assertTrue($inner1_line->bottom > $inner2_line->bottom); 46 } 47} 48 49?>