Вход Регистрация
Файл: htmlpurifier-4.3.0/tests/HTMLPurifier/URIDefinitionTest.php
Строк: 67
<?php

class HTMLPurifier_URIDefinitionTest extends HTMLPurifier_URIHarness
{

    protected function 
createFilterMock($expect true$result true$post false$setup true) {
        static 
$i 0;
        
generate_mock_once('HTMLPurifier_URIFilter');
        
$mock = new HTMLPurifier_URIFilterMock();
        if (
$expect$mock->expectOnce('filter');
        else 
$mock->expectNever('filter');
        
$mock->setReturnValue('filter'$result);
        
$mock->setReturnValue('prepare'$setup);
        
$mock->name $i++;
        
$mock->post $post;
        return 
$mock;
    }

    function 
test_filter() {
        
$def = new HTMLPurifier_URIDefinition();
        
$def->addFilter($this->createFilterMock(), $this->config);
        
$def->addFilter($this->createFilterMock(), $this->config);
        
$uri $this->createURI('test');
        
$this->assertTrue($def->filter($uri$this->config$this->context));
    }

    function 
test_filter_earlyAbortIfFail() {
        
$def = new HTMLPurifier_URIDefinition();
        
$def->addFilter($this->createFilterMock(truefalse), $this->config);
        
$def->addFilter($this->createFilterMock(false), $this->config); // never called
        
$uri $this->createURI('test');
        
$this->assertFalse($def->filter($uri$this->config$this->context));
    }

    function 
test_setupMemberVariables_collisionPrecedenceIsHostBaseScheme() {
        
$this->config->set('URI.Host'$host 'example.com');
        
$this->config->set('URI.Base'$base 'http://sub.example.com/foo/bar.html');
        
$this->config->set('URI.DefaultScheme''ftp');
        
$def = new HTMLPurifier_URIDefinition();
        
$def->setup($this->config);
        
$this->assertIdentical($def->host$host);
        
$this->assertIdentical($def->base$this->createURI($base));
        
$this->assertIdentical($def->defaultScheme'http'); // not ftp!
    
}

    function 
test_setupMemberVariables_onlyScheme() {
        
$this->config->set('URI.DefaultScheme''ftp');
        
$def = new HTMLPurifier_URIDefinition();
        
$def->setup($this->config);
        
$this->assertIdentical($def->defaultScheme'ftp');
    }

    function 
test_setupMemberVariables_onlyBase() {
        
$this->config->set('URI.Base''http://sub.example.com/foo/bar.html');
        
$def = new HTMLPurifier_URIDefinition();
        
$def->setup($this->config);
        
$this->assertIdentical($def->host'sub.example.com');
    }

}

// vim: et sw=4 sts=4
Онлайн: 1
Реклама