expectOnce ( 'filter' );
else
$mock->expectNever ( 'filter' );
$mock->setReturnValue ( 'filter', $result );
$mock->setReturnValue ( 'prepare', $setup );
$mock->name = $i ++;
$mock->post = $post;
return $mock;
}
public 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 ) );
}
public function test_filter_earlyAbortIfFail() {
$def = new HTMLPurifier_URIDefinition ();
$def->addFilter ( $this->createFilterMock ( true, false ), $this->config );
$def->addFilter ( $this->createFilterMock ( false ), $this->config ); // never called
$uri = $this->createURI ( 'test' );
$this->assertFalse ( $def->filter ( $uri, $this->config, $this->context ) );
}
public 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!
}
public function test_setupMemberVariables_onlyScheme() {
$this->config->set ( 'URI.DefaultScheme', 'ftp' );
$def = new HTMLPurifier_URIDefinition ();
$def->setup ( $this->config );
$this->assertIdentical ( $def->defaultScheme, 'ftp' );
}
public 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