Blame view

vendor/ezyang/htmlpurifier/tests/HTMLPurifier/LengthTest.php 2.46 KB
abf1649b   andryeyev   Чистая установка ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
  <?php
  
  class HTMLPurifier_LengthTest extends HTMLPurifier_Harness
  {
  
      public function testConstruct()
      {
          $l = new HTMLPurifier_Length('23', 'in');
          $this->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