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?>