assertIdentical ( $l->getN (), '23' ); $this->assertIdentical ( $l->getUnit (), 'in' ); } public function testMake() { $l = HTMLPurifier_Length::make ( '+23.4in' ); $this->assertIdentical ( $l->getN (), '+23.4' ); $this->assertIdentical ( $l->getUnit (), 'in' ); } public function testToString() { $l = new HTMLPurifier_Length ( '23', 'in' ); $this->assertIdentical ( $l->toString (), '23in' ); } protected function assertValidate($string, $expect = true) { if ($expect === true) $expect = $string; $l = HTMLPurifier_Length::make ( $string ); $result = $l->isValid (); if ($result === false) $this->assertIdentical ( $expect, false ); else $this->assertIdentical ( $l->toString (), $expect ); } public function testValidate() { $this->assertValidate ( '0' ); $this->assertValidate ( '+0', '0' ); $this->assertValidate ( '-0', '0' ); $this->assertValidate ( '0px' ); $this->assertValidate ( '4.5px' ); $this->assertValidate ( '-4.5px' ); $this->assertValidate ( '3ex' ); $this->assertValidate ( '3em' ); $this->assertValidate ( '3in' ); $this->assertValidate ( '3cm' ); $this->assertValidate ( '3mm' ); $this->assertValidate ( '3pt' ); $this->assertValidate ( '3pc' ); $this->assertValidate ( '3PX', '3px' ); $this->assertValidate ( '3', false ); $this->assertValidate ( '3miles', false ); } /** * * @param $s1 First * string to compare * @param $s2 Second * string to compare * @param $expect 0 * for $s1 == $s2, 1 for $s1 > $s2 and -1 for $s1 < $s2 */ protected function assertComparison($s1, $s2, $expect = 0) { $l1 = HTMLPurifier_Length::make ( $s1 ); $l2 = HTMLPurifier_Length::make ( $s2 ); $r1 = $l1->compareTo ( $l2 ); $r2 = $l2->compareTo ( $l1 ); $this->assertIdentical ( $r1 == 0 ? 0 : ($r1 > 0 ? 1 : - 1), $expect ); $this->assertIdentical ( $r2 == 0 ? 0 : ($r2 > 0 ? 1 : - 1), - $expect ); } public function testCompareTo() { $this->assertComparison ( '12in', '12in' ); $this->assertComparison ( '12in', '12mm', 1 ); $this->assertComparison ( '1px', '1mm', - 1 ); $this->assertComparison ( str_repeat ( '2', 38 ) . 'in', '100px', 1 ); } } // vim: et sw=4 sts=4