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