Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
 
3
class TestWhiteSpace extends GenericTest {
4
  function testWhiteSpace1() {
5
    $tree = $this->runPipeline(file_get_contents('test.white-space.1.html'));
6
 
7
    $element =& $tree->get_element_by_id('div-normal');
8
    $this->assertEqual($this->get_line_box_count($element),
9
                       15,
10
                       'Incorrect line box number in DIV with "white-space: normal" [%s]');
11
 
12
    $element =& $tree->get_element_by_id('div-pre');
13
    $this->assertEqual($this->get_line_box_count($element),
14
                       10,
15
                       'Incorrect line box number in DIV with "white-space: pre" [%s]');
16
 
17
    $element =& $tree->get_element_by_id('div-pre2');
18
    $this->assertEqual($this->get_line_box_count($element),
19
                       9,
20
                       'Incorrect line box number in DIV with "white-space: pre" without leading linefeeds [%s]');
21
 
22
    $element =& $tree->get_element_by_id('div-pre3');
23
    $this->assertEqual($this->get_line_box_count($element),
24
                       11,
25
                       'Incorrect line box number in DIV with "white-space: pre" with trailing empty line [%s]');
26
 
27
    $element =& $tree->get_element_by_id('div-nowrap');
28
    $this->assertEqual($this->get_line_box_count($element),
29
                       2,
30
                       'Incorrect line box number in DIV with "white-space: nowrap" [%s]');
31
 
32
    $element =& $tree->get_element_by_id('div-pre-wrap');
33
    $this->assertEqual($this->get_line_box_count($element),
34
                       21,
35
                       'Incorrect line box number in DIV with "white-space: pre-wrap" [%s]');
36
 
37
    $element =& $tree->get_element_by_id('div-pre-wrap2');
38
    $this->assertEqual($this->get_line_box_count($element),
39
                       20,
40
                       'Incorrect line box number in DIV with "white-space: pre-wrap" without leading linefeeds [%s]');
41
 
42
    $element =& $tree->get_element_by_id('div-pre-line');
43
    $this->assertEqual($this->get_line_box_count($element),
44
                       19,
45
                       'Incorrect line box number in DIV with "white-space: pre-line" with trailing empty line [%s]');
46
  }
47
 
48
  function testWhiteSpace2() {
49
    $tree = $this->runPipeline(file_get_contents('test.white-space.2.html'));
50
 
51
    $element =& $tree->get_element_by_id('div-normal');
52
    $this->assertEqual($this->get_line_box_count($element),
53
                       2,
54
                       'Incorrect line box number in DIV with "white-space: normal" [%s]');
55
 
56
    $element =& $tree->get_element_by_id('div-pre');
57
    $this->assertEqual($this->get_line_box_count($element),
58
                       4,
59
                       'Incorrect line box number in DIV with "white-space: pre" [%s]');
60
 
61
    $element =& $tree->get_element_by_id('div-pre2');
62
    $this->assertEqual($this->get_line_box_count($element),
63
                       3,
64
                       'Incorrect line box number in DIV with "white-space: pre" without leading linefeeds [%s]');
65
 
66
    $element =& $tree->get_element_by_id('div-pre3');
67
    $this->assertEqual($this->get_line_box_count($element),
68
                       4,
69
                       'Incorrect line box number in DIV with "white-space: pre" with trailing empty line [%s]');
70
 
71
    $element =& $tree->get_element_by_id('div-nowrap');
72
    $this->assertEqual($this->get_line_box_count($element),
73
                       1,
74
                       'Incorrect line box number in DIV with "white-space: nowrap" [%s]');
75
 
76
    $element =& $tree->get_element_by_id('div-pre-wrap');
77
    $this->assertEqual($this->get_line_box_count($element),
78
                       2,
79
                       'Incorrect line box number in DIV with "white-space: pre-wrap" [%s]');
80
 
81
    $element =& $tree->get_element_by_id('div-pre-wrap2');
82
    $this->assertEqual($this->get_line_box_count($element),
83
                       2,
84
                       'Incorrect line box number in DIV with "white-space: pre-wrap" without leading linefeeds [%s]');
85
 
86
    $element =& $tree->get_element_by_id('div-pre-line');
87
    $this->assertEqual($this->get_line_box_count($element),
88
                       2,
89
                       'Incorrect line box number in DIV with "white-space: pre-line" with trailing empty line [%s]');
90
  }
91
 
92
  function get_line_box_count(&$box) {
93
    $line_box_count = 0;
94
    $prevous_br = false;
95
    foreach ($box->content as $child) {
96
      if (is_a($child, 'InlineBox')) {
97
        $line_box_count += $child->get_line_box_count();
98
 
99
        $last_box =& $child->get_last();
100
        $previous_br = is_a($last_box, 'BRBox');
101
      } elseif (is_a($child, 'BRBox')) {
102
        if ($previous_br) {
103
          $line_box_count++;
104
        };
105
        $previous_br = true;
106
      } else {
107
        $previous_br = false;
108
      };
109
    };
110
    return $line_box_count;
111
  }
112
}
113
 
114
?>