Rev 17 | Rev 20 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 17 | Rev 19 | ||
|---|---|---|---|
| Line 28... | Line 28... | ||
| 28 |    * @var Array[string=>string]
 | 
            28 |    * @var Array[string=>string]
 | 
          
| 29 |    */
 | 
            29 |    */
 | 
          
| 30 | protected $urns = array();  | 
            30 | protected $urns = array();  | 
          
| 31 | 31 | ||
| 32 |   /**
 | 
            32 |   /**
 | 
          
| - | 33 |    * <code>true</code> generates form controls for submitting test case
 | 
          |
| - | 34 |    * results
 | 
          |
| - | 35 |    *
 | 
          |
| - | 36 |    * @var bool
 | 
          |
| - | 37 |    */
 | 
          |
| - | 38 | protected $testcase = false;  | 
          |
| - | 39 | ||
| - | 40 |   /**
 | 
          |
| 33 |    * The list of language features
 | 
            41 |    * The list of language features
 | 
          
| 34 |    *
 | 
            42 |    *
 | 
          
| 35 |    * @var array[Features]
 | 
            43 |    * @var array[Features]
 | 
          
| 36 |    */
 | 
            44 |    */
 | 
          
| 37 | protected $items = array();  | 
            45 | protected $items = array();  | 
          
| Line 51... | Line 59... | ||
| 51 |    */
 | 
            59 |    */
 | 
          
| 52 | public function __construct($a)  | 
            60 | public function __construct($a)  | 
          
| 53 |   {
 | 
            61 |   {
 | 
          
| 54 | $aVars = get_class_vars(get_class($this));  | 
            62 | $aVars = get_class_vars(get_class($this));  | 
          
| 55 | 63 | ||
| - | 64 | ||
| 56 | while ((list($key, $value) = each($aVars)))  | 
            65 | foreach ($aVars as $key => $value)  | 
          
| 57 |     {
 | 
            66 |     {
 | 
          
| 58 | if (isset($a[$key]))  | 
            67 | if (isset($a[$key]))  | 
          
| 59 |       {
 | 
            68 |       {
 | 
          
| 60 | $this->$key = $a[$key];  | 
            69 | $this->$key = $a[$key];  | 
          
| 61 |       }
 | 
            70 |       }
 | 
          
| 62 |     }
 | 
            71 |     }
 | 
          
| 63 | 72 | ||
| 64 |     /* Inform items of ourself so that URNs can be used for links */
 | 
            73 |     /* Inform items of ourself so that URNs can be used for links */
 | 
          
| 65 | if (is_array($this->items))  | 
            74 | if (is_array($this->items))  | 
          
| 66 |     {
 | 
            75 |     {
 | 
          
| 67 | foreach ($this->items as &$item)  | 
            76 | foreach ($this->items as &$item)  | 
          
| 68 |       {
 | 
            77 |       {
 | 
          
| Line 81... | Line 90... | ||
| 81 |         }
 | 
            90 |         }
 | 
          
| 82 |       }
 | 
            91 |       }
 | 
          
| 83 |     }
 | 
            92 |     }
 | 
          
| 84 |   }
 | 
            93 |   }
 | 
          
| 85 | 94 | ||
| - | 95 |   /*
 | 
          |
| - | 96 |    * Protected properties may be read, but not written
 | 
          |
| - | 97 |    */
 | 
          |
| - | 98 | public function __get($property)  | 
          |
| - | 99 |   {
 | 
          |
| - | 100 | if (property_exists(get_class($this), $property))  | 
          |
| - | 101 |     {
 | 
          |
| - | 102 | return $this->$property;  | 
          |
| - | 103 |     }
 | 
          |
| - | 104 |   }
 | 
          |
| - | 105 | ||
| 86 | public function printHeaders()  | 
            106 | public function printHeaders()  | 
          
| 87 |   {
 | 
            107 |   {
 | 
          
| 88 | foreach ($this->versions as $ver)  | 
            108 | foreach ($this->versions as $key => $ver)  | 
          
| 89 |     {
 | 
            109 |     {
 | 
          
| - | 110 | if ($key || $this->testcase)  | 
          |
| - | 111 |       {
 | 
          |
| 90 | ?>
 | 
            112 | ?>
 | 
          
| 91 | <th><?php echo $ver; ?></th>  | 
            113 | <th><?php echo $ver; ?></th>  | 
          
| 92 | <?php
 | 
            114 | <?php
 | 
          
| - | 115 |       }
 | 
          |
| 93 |     }
 | 
            116 |     }
 | 
          
| 94 |   }
 | 
            117 |   }
 | 
          
| 95 | 118 | ||
| 96 |   /**
 | 
            119 |   /**
 | 
          
| 97 |    * Prints the list of features.
 | 
            120 |    * Prints the list of features.
 | 
          
| Line 220... | Line 243... | ||
| 220 |    */
 | 
            243 |    */
 | 
          
| 221 | public function __construct($params = array())  | 
            244 | public function __construct($params = array())  | 
          
| 222 |   {
 | 
            245 |   {
 | 
          
| 223 | $aVars = get_class_vars(__CLASS__);  | 
            246 | $aVars = get_class_vars(__CLASS__);  | 
          
| 224 | 247 | ||
| 225 | while ((list($key, $value) = each($aVars)))  | 
            248 | foreach ($aVars as $key => $value)  | 
          
| 226 |     {
 | 
            249 |     {
 | 
          
| 227 | if (isset($params[$key]))  | 
            250 | if (isset($params[$key]))  | 
          
| 228 |       {
 | 
            251 |       {
 | 
          
| 229 | $this->$key = $params[$key];  | 
            252 | $this->$key = $params[$key];  | 
          
| 230 |       }
 | 
            253 |       }
 | 
          
| Line 417... | Line 440... | ||
| 417 |               array('self', 'shl'),*/
 | 
            440 |               array('self', 'shl'),*/
 | 
          
| 418 | preg_replace('/…/', '…', $this->content)/*)*/;  | 
            441 | preg_replace('/…/', '…', $this->content)/*)*/;  | 
          
| 419 |             ?></th>
 | 
            442 |             ?></th>
 | 
          
| 420 | <?php
 | 
            443 | <?php
 | 
          
| 421 | $versions = $this->versions;  | 
            444 | $versions = $this->versions;  | 
          
| - | 445 | $testcase = false;  | 
          |
| 422 | if (!is_null($this->list))  | 
            446 | if (!is_null($this->list))  | 
          
| 423 |     {
 | 
            447 |     {
 | 
          
| 424 | $versions =& $this->list->versions;  | 
            448 | $versions =& $this->list->versions;  | 
          
| - | 449 | $testcase = $this->list->testcase;  | 
          |
| 425 |     }
 | 
            450 |     }
 | 
          
| 426 | 451 | ||
| 427 | static $row = 0;  | 
            452 | static $row = 0;  | 
          
| 428 | $row++;  | 
            453 | $row++;  | 
          
| 429 | 454 | ||
| Line 433... | Line 458... | ||
| 433 | foreach ($versions as $key => $value)  | 
            458 | foreach ($versions as $key => $value)  | 
          
| 434 |     {
 | 
            459 |     {
 | 
          
| 435 | $column++;  | 
            460 | $column++;  | 
          
| 436 | $id = "td$row-$column";  | 
            461 | $id = "td$row-$column";  | 
          
| 437 | $ver = isset($thisVersions[$key]) ? $thisVersions[$key] : '';  | 
            462 | $ver = isset($thisVersions[$key]) ? $thisVersions[$key] : '';  | 
          
| - | 463 | if ($key || $testcase)  | 
          |
| - | 464 |       {
 | 
          |
| 438 | ?>
 | 
            465 | ?>
 | 
          
| 439 |           <td<?php
 | 
            466 |           <td<?php
 | 
          
| 440 | if (!$key)  | 
            467 | if (!$key)  | 
          
| 441 |                 {
 | 
            468 |             {
 | 
          
| 442 | echo " id='$id'";  | 
            469 | echo " id='$id'";  | 
          
| 443 |                 }
 | 
            470 |             }
 | 
          
| 444 | 471 | ||
| 445 | echo $this->getAssumed($ver) . $this->getTested($ver);  | 
            472 | echo $this->getAssumed($ver) . $this->getTested($ver);  | 
          
| 446 | 473 | ||
| 447 | if (!$key)  | 
            474 | if (!$key)  | 
          
| 448 |             {
 | 
            475 |             {
 | 
          
| 449 | if (!empty($ver))  | 
            476 | if (!empty($ver))  | 
          
| Line 457... | Line 484... | ||
| 457 | FEATURES_ENCODING  | 
            484 | FEATURES_ENCODING  | 
          
| 458 |                     )
 | 
            485 |                     )
 | 
          
| 459 | . '"';  | 
            486 | . '"';  | 
          
| 460 |               }
 | 
            487 |               }
 | 
          
| 461 |               else
 | 
            488 |               else
 | 
          
| 462 |               {
 | 
            489 |             {
 | 
          
| 463 | echo ' title="Not applicable: No automated test case'  | 
            490 | echo ' title="Not applicable: No automated test case'  | 
          
| 464 | . ' is available for this feature. If possible, please'  | 
            491 | . ' is available for this feature. If possible, please'  | 
          
| 465 | . ' click the feature code in the first column to run'  | 
            492 | . ' click the feature code in the first column to run'  | 
          
| 466 | . ' a manual test."';  | 
            493 | . ' a manual test."';  | 
          
| 467 |               }
 | 
            494 |               }
 | 
          
| 468 |             }
 | 
            495 |             }
 | 
          
| - | 496 |             else
 | 
          |
| - | 497 |           {
 | 
          |
| - | 498 | echo ' title="'  | 
          |
| - | 499 | . htmlspecialchars(  | 
          |
| - | 500 | preg_replace('/<.*?>/', '', $value),  | 
          |
| - | 501 | ENT_COMPAT, FEATURES_ENCODING)  | 
          |
| - | 502 | . '"';  | 
          |
| - | 503 |             }
 | 
          |
| 469 | ?>><?php  | 
            504 | ?>><?php  | 
          
| 470 | if ($key)  | 
            505 | if ($key)  | 
          
| 471 |             {
 | 
            506 |             {
 | 
          
| 472 | echo $this->getVer($ver);  | 
            507 | echo $this->getVer($ver);  | 
          
| 473 | 508 | ||
| Line 476... | Line 511... | ||
| 476 |               {
 | 
            511 |               {
 | 
          
| 477 | echo $ver['footnote'];  | 
            512 | echo $ver['footnote'];  | 
          
| 478 |               }
 | 
            513 |               }
 | 
          
| 479 |             }
 | 
            514 |             }
 | 
          
| 480 |             else
 | 
            515 |             else
 | 
          
| 481 |             {
 | 
            516 |           {
 | 
          
| 482 | if (!empty($ver))  | 
            517 | if (!empty($ver) && $testcase)  | 
          
| 483 |               {
 | 
            518 |               {
 | 
          
| 484 |                 ?><script type="text/javascript">
 | 
            519 |                 ?><script type="text/javascript">
 | 
          
| 485 | // <![CDATA[  | 
            520 | // <![CDATA[  | 
          
| 486 | var s = test(<?php echo $ver; ?>, '<span title="Supported">+<\/span>',  | 
            521 | var s = test(<?php echo $ver; ?>,  | 
          
| - | 522 | '<input title="Supported" name="<?php echo htmlspecialchars($this->title, ENT_COMPAT, FEATURES_ENCODING); ?>" value="+" readonly>',  | 
          |
| 487 | '<span title="Not supported">−<\/span>');  | 
            523 | '<input title="Not supported" name="<?php echo htmlspecialchars($this->title, ENT_COMPAT, FEATURES_ENCODING); ?>" value="−" readonly>');  | 
          
| 488 |   tryThis("document.write(s);",
 | 
            524 |   jsx.tryThis("document.write(s);",
 | 
          
| 489 |           "document.getElementById('<?php echo $id; ?>').appendChild("
 | 
            525 |           "document.getElementById('<?php echo $id; ?>').appendChild("
 | 
          
| 490 | + "document.createTextNode(s));");  | 
            526 | + "document.createTextNode(s));");  | 
          
| 491 | // ]]>  | 
            527 | // ]]>  | 
          
| 492 | </script><?php
 | 
            528 | </script><?php
 | 
          
| 493 |               }
 | 
            529 |               }
 | 
          
| 494 |               else
 | 
            530 |               else
 | 
          
| 495 |               {
 | 
            531 |             {
 | 
          
| 496 | echo '<abbr>N/A</abbr>';  | 
            532 | echo '<abbr>N/A</abbr>';  | 
          
| 497 |               }
 | 
            533 |               }
 | 
          
| 498 |             }
 | 
            534 |             }
 | 
          
| 499 |             ?></td>
 | 
            535 |             ?></td>
 | 
          
| 500 | <?php
 | 
            536 | <?php
 | 
          
| - | 537 |       }
 | 
          |
| 501 |     }
 | 
            538 |     }
 | 
          
| 502 | ?>
 | 
            539 | ?>
 | 
          
| 503 | </tr>  | 
            540 | </tr>  | 
          
| 504 | <?php
 | 
            541 | <?php
 | 
          
| 505 |   }
 | 
            542 |   }
 |