1<?php 2 3class TestPagebreakTableLines extends GenericTest { 4 /** 5 * Checks if it is possible to make an incorrect page break in a table with 6 * different font size in different cells 7 */ 8 function testPagebreakTableLines1() { 9 $media = new Media(array('width' => 100, 'height' => 200/mm2pt(1)), 10 array('top'=>0, 'bottom'=>0, 'left'=>0, 'right'=>0)); 11 $tree = $this->runPipeline(' 12<html> 13<head> 14<style type="text/css"> 15body { 16 font-size: 10pt; 17 line-height: 1; 18 padding: 0; 19 margin: 0; 20 width: 10pt; 21} 22 23div { 24 width: 10pt; 25 orphans: 0; 26 widows: 0; 27} 28 29td#small { 30 font-size: 20pt; 31 line-height: 1; 32 width: 10pt; 33 vertical-align: top; 34} 35 36td#large { 37 font-size: 30pt; 38 line-height: 1; 39 width: 10pt; 40 vertical-align: top; 41} 42</style> 43</head> 44<body> 45<table cellpadding="0" cellspacing="0"> 46<tr> 47<td id="small"> 48<div> 49SMALL 50SMALL 51SMALL 52SMALL 53SMALL 54SMALL 55SMALL 56SMALL 57SMALL 58SMALL 59</div> 60</td> 61<td id="large"> 62<div> 63LARGE 64LARGE 65LARGE 66LARGE 67LARGE 68LARGE 69LARGE 70</div> 71</td> 72</tr> 73</table> 74</body> 75</html> 76', $media); 77 78 79 $small = $tree->get_element_by_id('small'); 80 $font_size =& $small->getCSSProperty(CSS_FONT_SIZE); 81 $this->assertEqual($font_size->getPoints(), 20); 82 83 $large = $tree->get_element_by_id('large'); 84 $font_size =& $large->getCSSProperty(CSS_FONT_SIZE); 85 $this->assertEqual($font_size->getPoints(), 30); 86 87 $locations = PageBreakLocator::_getBreakLocations($tree); 88 $this->assertEqual(count($locations), 5); 89 90 $page_heights = PageBreakLocator::getPages($tree, 91 mm2pt($media->real_height()), 92 mm2pt($media->height() - $media->margins['top'])); 93 94 $this->assertEqual(count($page_heights), 2, 95 sprintf("Two pages expected, got %s", 96 count($page_heights))); 97 $this->assertEqual($page_heights[0], 98 pt2pt(180)); 99 } 100} 101 102?>