1<?php
2
3class TestPagebreakBorder extends GenericTest {
4  function testPagebreakBorder1() {
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>
10<style type="text/css">
11body   { font-size: 10pt; line-height: 1; orphans:0; widows: 0; padding: 0; margin: 0; }
12#first { line-height: 1; height: 180pt; }
13#second { width: 3em; border: solid black 1pt; }
14</style>
15</head>
16<body>
17<div id="first">&nbsp;</div>
18<div id="second"><!--Page break should be here-->
19LINE1
20LINE2
21LINE3
22LINE4
23LINE5
24</div>
25</body>
26</html>
27', $media);
28
29    /**
30     * Calculate page heights
31     */
32    $page_heights = PageBreakLocator::getPages($tree,
33                                               mm2pt($media->real_height()),
34                                               mm2pt($media->height() - $media->margins['top']));
35
36    $first_div  = $tree->get_element_by_id('first');
37    $second_div = $tree->get_element_by_id('second');
38
39    $this->assertEqual(count($page_heights), 2,
40                       sprintf("Two pages expected, got %s",
41                               count($page_heights)));
42    $this->assertEqual($page_heights[0],
43                       $first_div->get_full_height());
44  }
45
46  function testPagebreakBorderTestNoBorder() {
47    $media = new Media(array('width' => 100, 'height' => 200/mm2pt(1)),
48                       array('top'=>0, 'bottom'=>0, 'left'=>0, 'right'=>0));
49    $tree = $this->runPipeline('
50<html>
51<head>
52<style type="text/css">
53body   { font-size: 10pt; line-height: 1; orphans:0; widows: 0; padding: 0; margin: 0; }
54#first { line-height: 1; height: 180pt; }
55#second { width: 3em; }
56</style>
57</head>
58<body>
59<div id="first">&nbsp;</div>
60<div id="second">
61LINE1<!--Page break should be here-->
62LINE2
63LINE3
64LINE4
65LINE5
66</div>
67</body>
68</html>
69', $media);
70
71    /**
72     * Calculate page heights
73     */
74    $page_heights = PageBreakLocator::getPages($tree,
75                                               mm2pt($media->real_height()),
76                                               mm2pt($media->height() - $media->margins['top']));
77
78    $first_div  = $tree->get_element_by_id('first');
79    $second_div = $tree->get_element_by_id('second');
80
81    $this->assertEqual(count($page_heights), 2,
82                       sprintf("Two pages expected, got %s",
83                               count($page_heights)));
84    $this->assertEqual($page_heights[0],
85                       $first_div->get_full_height() + pt2pt(20));
86  }
87}
88
89?>