Exemple #1
0
 /**
  * Check all rules in collection
  *
  * @param Subject $subject
  *
  * @return ResultCollection
  */
 public function check(Subject $subject) : ResultCollection
 {
     $resultCollection = new ResultCollection();
     foreach ($this->collection as $rule) {
         $resultCollection->merge($rule->check($subject));
     }
     return $resultCollection;
 }
 /**
  * @covers ::add
  */
 public function testAdd()
 {
     /**
      * @var Result $result
      */
     $result = new Result('', '');
     $resultCollection = new ResultCollection();
     $this->assertSame(0, $resultCollection->count());
     $resultCollection->add($result);
     $this->assertSame(1, $resultCollection->count());
 }
Exemple #3
0
 /**
  * Check title rules
  *
  * @param Subject $subject
  *
  * @return ResultCollection
  */
 public function check(Subject $subject) : ResultCollection
 {
     $resultCollection = new ResultCollection();
     /**
      * Check
      */
     $contextDescription = $subject->getContextDescription();
     $titleTags = $subject->getDom()->getElementsByTagName('title');
     if ($titleTags->length === 0) {
         $resultCollection->add(new Result($contextDescription, 'Title tag is missing'));
     } else {
         if ($titleTags->length === 1) {
             if (strlen($titleTags->item(0)->nodeValue) > 55) {
                 $resultCollection->add(new Result($contextDescription, 'Title is longer than 55 characters'));
             }
         } else {
             $resultCollection->add(new Result($contextDescription, 'There are more than one title tag'));
         }
     }
     return $resultCollection;
 }
Exemple #4
0
 /**
  * Check image rules
  *
  * @param Subject $subject
  *
  * @return ResultCollection
  */
 public function check(Subject $subject) : ResultCollection
 {
     $resultCollection = new ResultCollection();
     /**
      * Check
      */
     $contextDescription = $subject->getContextDescription();
     $imgTags = $subject->getDom()->getElementsByTagName('img');
     /**
      * @var \DOMElement $imgTag
      */
     $missingAltAttributes = 0;
     foreach ($imgTags as $imgTag) {
         $altAttribute = $imgTag->attributes->getNamedItem('alt');
         if (!$altAttribute || empty($altAttribute->nodeValue)) {
             $missingAltAttributes++;
         }
     }
     if ($missingAltAttributes > 0) {
         $resultCollection->add(new Result($contextDescription, "{$missingAltAttributes} img tag is missing alt attribute"));
     }
     return $resultCollection;
 }