1<?php
2
3class TestLeftPercentage extends GenericTest {
4  function TestLeftPercentage1() {
5    $tree = $this->runPipeline('
6<html>
7<head>
8<style type="text/css">
9#wrapper { width: 100mm; position: relative; }
10#div0 { position: absolute; top: 0; left:   0%; }
11#div1 { position: absolute; top: 0; left:  20%; }
12#div2 { position: absolute; top: 0; left:  40%; }
13#div3 { position: absolute; top: 0; left:  60%; }
14#div4 { position: absolute; top: 0; left:  80%; }
15#div5 { position: absolute; top: 0; left: 100%; }
16</style>
17</head>
18<body>
19<div id="wrapper">
20<div id="div0">DIV1</div>
21<div id="div1">DIV1</div>
22<div id="div2">DIV1</div>
23<div id="div3">DIV1</div>
24<div id="div4">DIV1</div>
25<div id="div5">DIV1</div>
26</div>
27</body>
28</html>
29');
30
31
32    $wrapper = $tree->get_element_by_id('wrapper');
33    for ($i=0; $i<=5; $i++) {
34      $div = $tree->get_element_by_id(sprintf('div%d', $i));
35      $this->assertEqual($wrapper->get_left() + $wrapper->get_width() / 5 * $i,
36                         $div->get_left());
37    };
38  }
39
40  function TestLeftPercentage2() {
41    $tree = $this->runPipeline('
42<html>
43<head>
44<style type="text/css">
45#wrapper { width: 100mm; position: relative; }
46.offset {
47  position: absolute;
48  top: 0px;
49  left: 0px;
50}
51</style>
52</head>
53<body>
54<div id="wrapper">
55<div id="div0" class="offset" style="left:   0%">DIV1</div>
56<div id="div1" class="offset" style="left:  20%">DIV1</div>
57<div id="div2" class="offset" style="left:  40%">DIV1</div>
58<div id="div3" class="offset" style="left:  60%">DIV1</div>
59<div id="div4" class="offset" style="left:  80%">DIV1</div>
60<div id="div5" class="offset" style="left: 100%">DIV1</div>
61</div>
62</body>
63</html>
64');
65
66
67    $wrapper = $tree->get_element_by_id('wrapper');
68    for ($i=0; $i<=5; $i++) {
69      $div_id = sprintf('div%d', $i);
70      $div = $tree->get_element_by_id($div_id);
71      $this->assertEqual($wrapper->get_left() + $wrapper->get_width() / 5 * $i,
72                         $div->get_left());
73    };
74  }
75
76  function TestLeftPercentage3() {
77    $tree = $this->runPipeline('
78<html><head>
79<style type="text/css">
80<!--
81.timeContainer {
82  position: relative;
83  top: 0px;
84  left: 0px;
85  width: 80%;
86}
87
88.time {
89	position: absolute;
90	top: 0px;
91	left: 0px;
92}
93-->
94</style>
95</head>
96<body>
97<div id="wrapper" class="timecontainer">
98<div id="div0" class="time" style="left: 0%">08:00</div>
99<div id="div1" class="time" style="left: 20%">10:00</div>
100<div id="div2" class="time" style="left: 40%">12:00</div>
101<div id="div3" class="time" style="left: 60%">14:00</div>
102<div id="div4" class="time" style="left: 80%">16:00</div>
103<div id="div5" class="time" style="left: 100%">18:00</div>
104</div>
105</body></html>
106', $media, $pipeline, $context, $postponed);
107
108    $wrapper = $tree->get_element_by_id('wrapper');
109    for ($i=0; $i<=5; $i++) {
110      $div_id = sprintf('div%d', $i);
111      $div = $tree->get_element_by_id($div_id);
112      $this->assertEqual($wrapper->get_left() + $wrapper->get_width() / 5 * $i,
113                         $div->get_left());
114    };
115  }
116}
117
118?>