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