PHPIDS
Current file: /home/mario/workspace/php-ids.org/trunk/lib/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/Enum.php
Legend: executed not executed dead code

  Coverage
  Classes Methods Lines
Total
100.00 %100.00%
100.00% 1 / 1
33.33 %33.33%
33.33% 1 / 3
50.00 %50.00%
50.00% 7 / 14
 
HTMLPurifier_AttrDef_Enum
100.00 %100.00%
100.00% 1 / 1
33.33 %33.33%
33.33% 1 / 3
50.00 %50.00%
50.00% 7 / 14
 public function __construct($valid_values = array ( ), $case_sensitive = false)
0.00 %0.00%
0.00% 0 / 1
100.00 %100.00%
100.00% 0 / 0
 public function validate($string, $config, $context)
100.00 %100.00%
100.00% 1 / 1
100.00 %100.00%
100.00% 6 / 6
 public function make($string)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 7


       1                 : <?php                                                                       
       2                 :                                                                             
       3                 : // Enum = Enumerated                                                        
       4                 : /**                                                                         
       5                 :  * Validates a keyword against a list of valid values.                      
       6                 :  * @warning The case-insensitive compare of this function uses PHP's        
       7                 :  *          built-in strtolower and ctype_lower functions, which may        
       8                 :  *          cause problems with international comparisons                   
       9                 :  */                                                                         
      10               1 : class HTMLPurifier_AttrDef_Enum extends HTMLPurifier_AttrDef                
      11                 : {                                                                           
      12                 :                                                                             
      13                 :     /**                                                                     
      14                 :      * Lookup table of valid values.                                        
      15                 :      * @todo Make protected                                                 
      16                 :      */                                                                     
      17                 :     public $valid_values   = array();                                       
      18                 :                                                                             
      19                 :     /**                                                                     
      20                 :      * Bool indicating whether or not enumeration is case sensitive.        
      21                 :      * @note In general this is always case insensitive.                    
      22                 :      */                                                                     
      23                 :     protected $case_sensitive = false; // values according to W3C spec      
      24                 :                                                                             
      25                 :     /**                                                                     
      26                 :      * @param $valid_values List of valid values                            
      27                 :      * @param $case_sensitive Bool indicating whether or not case sensitive 
      28                 :      */                                                                     
      29                 :     public function __construct(                                            
      30                 :         $valid_values = array(), $case_sensitive = false                    
      31                 :     ) {                                                                     
      32                 :         $this->valid_values = array_flip($valid_values);                    
      33                 :         $this->case_sensitive = $case_sensitive;                            
      34                 :     }                                                                       
      35                 :                                                                             
      36                 :     public function validate($string, $config, $context) {                  
      37               2 :         $string = trim($string);                                            
      38               2 :         if (!$this->case_sensitive) {                                       
      39                 :             // we may want to do full case-insensitive libraries            
      40               2 :             $string = ctype_lower($string) ? $string : strtolower($string); 
      41               2 :         }                                                                   
      42               2 :         $result = isset($this->valid_values[$string]);                      
      43                 :                                                                             
      44               2 :         return $result ? $string : false;                                   
      45                 :     }                                                                       
      46                 :                                                                             
      47                 :     /**                                                                     
      48                 :      * @param $string In form of comma-delimited list of case-insensitive   
      49                 :      *      valid values. Example: "foo,bar,baz". Prepend "s:" to make      
      50                 :      *      case sensitive                                                  
      51                 :      */                                                                     
      52                 :     public function make($string) {                                         
      53               0 :         if (strlen($string) > 2 && $string[0] == 's' && $string[1] == ':') {
      54               0 :             $string = substr($string, 2);                                   
      55               0 :             $sensitive = true;                                              
      56               0 :         } else {                                                            
      57               0 :             $sensitive = false;                                             
      58                 :         }                                                                   
      59               0 :         $values = explode(',', $string);                                    
      60               0 :         return new HTMLPurifier_AttrDef_Enum($values, $sensitive);          
      61                 :     }                                                                       
      62                 :                                                                             
      63                 : }                                                                           
      64                 :                                                                             

Generated by PHPUnit 3.3.1 and Xdebug 2.0.2 at Thu Sep 25 18:42:10 CEST 2008.