1<?php 2 3class TestTableColumnWidth extends GenericTest { 4 function testTableColumnWidth1() { 5 $media = new Media(array('width' => 100, 6 'height' => 200/mm2pt(1)), 7 array('top'=>0, 8 'bottom'=>0, 9 'left'=>0, 10 'right'=>0)); 11 $tree = $this->runPipeline(file_get_contents('test.table.column.width.1.html'), 12 $media, 13 $pipeline); 14 $large = $tree->get_element_by_id('large'); 15 16 $real_width = max($pipeline->output_driver->stringwidth('LARGE', 'Times-Roman', 'iso-8859-1', pt2pt(30)), 17 pt2pt(10)); 18 19 $width =& $large->getCSSProperty(CSS_WIDTH); 20 $this->assertTrue($width->isConstant()); 21 $this->assertEqual($width->width, $real_width); 22 $this->assertEqual($large->get_width(), $real_width); 23 } 24 25 function testTableColumnWidth2() { 26 $media = new Media(array('width' => 100, 27 'height' => 200/mm2pt(1)), 28 array('top'=>0, 29 'bottom'=>0, 30 'left'=>0, 31 'right'=>0)); 32 $tree = $this->runPipeline(file_get_contents('test.table.column.width.2.html'), 33 $media, 34 $pipeline); 35 $large = $tree->get_element_by_id('large'); 36 37 $real_width = pt2pt(150); 38 39 $width =& $large->getCSSProperty(CSS_WIDTH); 40 $this->assertTrue($width->isConstant()); 41 $this->assertEqual($width->width, $real_width); 42 $this->assertEqual($large->get_width(), $real_width); 43 } 44 45 function testTableColumnWidth3() { 46 $media = null; 47 $tree = $this->runPipeline(file_get_contents('test.table.column.width.3.html'), $media); 48 49 $container_table =& $tree->get_element_by_id('table'); 50 $cell =& $tree->get_element_by_id('container-cell'); 51 $table =& $tree->get_element_by_id('contained-table'); 52 53 $this->assertEqual($container_table->get_width(), mm2pt($media->real_width())); 54 $this->assertTrue($cell->get_width() >= $table->get_width(), 55 sprintf("Cell width (%s) is less than content table width (%s)", 56 $cell->get_width(), 57 $table->get_width())); 58 } 59 60 function testTableColumnWidth4() { 61 $media = null; 62 $tree = $this->runPipeline(file_get_contents('test.table.column.width.4.html'), $media); 63 64 $container_table =& $tree->get_element_by_id('table'); 65 $cell1 =& $tree->get_element_by_id('cell1'); 66 $cell2 =& $tree->get_element_by_id('cell2'); 67 $cell =& $tree->get_element_by_id('container-cell'); 68 69 $this->assertEqual($container_table->get_width(), mm2pt($media->real_width()) * 0.9); 70 71 $container_cell_width = $cell->get_width(); 72 $container_cell_min_width = $cell->content[0]->get_width(); 73 $this->assertTrue($container_cell_min_width <= $container_cell_width, 74 sprintf('Container cell width (%s) is less than content minimal width (%s)', 75 $container_cell_width, 76 $container_cell_min_width)); 77 78 $cell_width = $cell1->get_width() + $cell2->get_width() + $cell->get_width(); 79 $table_width = $container_table->get_width(); 80 $this->assertTrue($cell_width <= 81 $table_width, 82 sprintf('Total cell width (%s) is greater than table width (%s)', 83 $cell_width, 84 $table_width)); 85 } 86} 87 88?>