mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
Added HTTPResponse::getLinks() for unit testing
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@40589 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
parent
7a150c48db
commit
b5848c9b87
@ -99,5 +99,30 @@ class HTTPResponse extends Object {
|
|||||||
function isFinished() {
|
function isFinished() {
|
||||||
return $this->statusCode == 302 || $this->statusCode == 301;
|
return $this->statusCode == 302 || $this->statusCode == 301;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return all the links in the body as an array.
|
||||||
|
* @returns An array of maps. Each map will contain 'id', 'class', and 'href', representing the HTML attributes of the link.
|
||||||
|
*/
|
||||||
|
function getLinks() {
|
||||||
|
$attributes = array('id', 'href', 'class');
|
||||||
|
$links = array();
|
||||||
|
$results = array();
|
||||||
|
|
||||||
|
preg_match_all('/<a[^>]+>/i', $this->body, $links);
|
||||||
|
// $links[0] contains the actual matches
|
||||||
|
foreach($links[0] as $link) {
|
||||||
|
$processedLink = array();
|
||||||
|
foreach($attributes as $attribute) {
|
||||||
|
$matches = array();
|
||||||
|
if(preg_match('/' . $attribute . '\s*=\s*"([^"]+)"/i', $link, $matches)) {
|
||||||
|
$processedLink[$attribute] = $matches[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$results[] = $processedLink;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $results;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user