gluon-web-remote

Web remote Administration for big size of gluon routers
git clone git://archive.git.mtrnord.blog/MTRNord/gluon-web-remote.git
Log | Files | Refs | README

DOMNodeComparatorTest.php (4198B)


      1 <?php
      2 /*
      3  * This file is part of the Comparator package.
      4  *
      5  * (c) Sebastian Bergmann <sebastian@phpunit.de>
      6  *
      7  * For the full copyright and license information, please view the LICENSE
      8  * file that was distributed with this source code.
      9  */
     10 
     11 namespace SebastianBergmann\Comparator;
     12 
     13 use DOMNode;
     14 use DOMDocument;
     15 
     16 /**
     17  * @coversDefaultClass SebastianBergmann\Comparator\DOMNodeComparator
     18  *
     19  */
     20 class DOMNodeComparatorTest extends \PHPUnit_Framework_TestCase
     21 {
     22     private $comparator;
     23 
     24     protected function setUp()
     25     {
     26         $this->comparator = new DOMNodeComparator;
     27     }
     28 
     29     public function acceptsSucceedsProvider()
     30     {
     31         $document = new DOMDocument;
     32         $node = new DOMNode;
     33 
     34         return array(
     35           array($document, $document),
     36           array($node, $node),
     37           array($document, $node),
     38           array($node, $document)
     39         );
     40     }
     41 
     42     public function acceptsFailsProvider()
     43     {
     44         $document = new DOMDocument;
     45 
     46         return array(
     47           array($document, null),
     48           array(null, $document),
     49           array(null, null)
     50         );
     51     }
     52 
     53     public function assertEqualsSucceedsProvider()
     54     {
     55         return array(
     56           array(
     57             $this->createDOMDocument('<root></root>'),
     58             $this->createDOMDocument('<root/>')
     59           ),
     60           array(
     61             $this->createDOMDocument('<root attr="bar"></root>'),
     62             $this->createDOMDocument('<root attr="bar"/>')
     63           ),
     64           array(
     65             $this->createDOMDocument('<root><foo attr="bar"></foo></root>'),
     66             $this->createDOMDocument('<root><foo attr="bar"/></root>')
     67           ),
     68           array(
     69             $this->createDOMDocument("<root>\n  <child/>\n</root>"),
     70             $this->createDOMDocument('<root><child/></root>')
     71           ),
     72         );
     73     }
     74 
     75     public function assertEqualsFailsProvider()
     76     {
     77         return array(
     78           array(
     79             $this->createDOMDocument('<root></root>'),
     80             $this->createDOMDocument('<bar/>')
     81           ),
     82           array(
     83             $this->createDOMDocument('<foo attr1="bar"/>'),
     84             $this->createDOMDocument('<foo attr1="foobar"/>')
     85           ),
     86           array(
     87             $this->createDOMDocument('<foo> bar </foo>'),
     88             $this->createDOMDocument('<foo />')
     89           ),
     90           array(
     91             $this->createDOMDocument('<foo xmlns="urn:myns:bar"/>'),
     92             $this->createDOMDocument('<foo xmlns="urn:notmyns:bar"/>')
     93           ),
     94           array(
     95             $this->createDOMDocument('<foo> bar </foo>'),
     96             $this->createDOMDocument('<foo> bir </foo>')
     97           )
     98         );
     99     }
    100 
    101     private function createDOMDocument($content)
    102     {
    103         $document = new DOMDocument;
    104         $document->preserveWhiteSpace = false;
    105         $document->loadXML($content);
    106 
    107         return $document;
    108     }
    109 
    110     /**
    111      * @covers       ::accepts
    112      * @dataProvider acceptsSucceedsProvider
    113      */
    114     public function testAcceptsSucceeds($expected, $actual)
    115     {
    116         $this->assertTrue(
    117           $this->comparator->accepts($expected, $actual)
    118         );
    119     }
    120 
    121     /**
    122      * @covers       ::accepts
    123      * @dataProvider acceptsFailsProvider
    124      */
    125     public function testAcceptsFails($expected, $actual)
    126     {
    127         $this->assertFalse(
    128           $this->comparator->accepts($expected, $actual)
    129         );
    130     }
    131 
    132     /**
    133      * @covers       ::assertEquals
    134      * @dataProvider assertEqualsSucceedsProvider
    135      */
    136     public function testAssertEqualsSucceeds($expected, $actual)
    137     {
    138         $exception = null;
    139 
    140         try {
    141             $this->comparator->assertEquals($expected, $actual);
    142         }
    143 
    144         catch (ComparisonFailure $exception) {
    145         }
    146 
    147         $this->assertNull($exception, 'Unexpected ComparisonFailure');
    148     }
    149 
    150     /**
    151      * @covers       ::assertEquals
    152      * @dataProvider assertEqualsFailsProvider
    153      */
    154     public function testAssertEqualsFails($expected, $actual)
    155     {
    156         $this->setExpectedException(
    157           'SebastianBergmann\\Comparator\\ComparisonFailure',
    158           'Failed asserting that two DOM'
    159         );
    160         $this->comparator->assertEquals($expected, $actual);
    161     }
    162 }