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