diff --git a/lib/XRay/Formats/Mf2.php b/lib/XRay/Formats/Mf2.php index 82c0875..01b2217 100644 --- a/lib/XRay/Formats/Mf2.php +++ b/lib/XRay/Formats/Mf2.php @@ -571,10 +571,20 @@ class Mf2 extends Format { ]; self::collectSingleValues(['name'], ['url','logo'], $item, $url, $data); + self::collectArrayURLValues(['redirect-uri'], $item, $data, $refs, $http); if(!isset($data['url'])) $data['url'] = $url; + if(isset($mf2['rels']['redirect_uri'])) { + if(!isset($data['redirect-uri'])) $data['redirect-uri'] = []; + $data['redirect-uri'] = array_merge($data['redirect-uri'], $mf2['rels']['redirect_uri']); + } + + if(isset($data['redirect-uri'])) { + $data['redirect-uri'] = array_values(array_unique($data['redirect-uri'])); + } + $response = [ 'data' => $data ]; diff --git a/tests/ParseTest.php b/tests/ParseTest.php index 65906c9..9097739 100644 --- a/tests/ParseTest.php +++ b/tests/ParseTest.php @@ -638,12 +638,13 @@ class ParseTest extends PHPUnit_Framework_TestCase { $body = $response->getContent(); $this->assertEquals(200, $response->getStatusCode()); - $data = json_decode($body); - $this->assertEquals('app', $data->data->type); - $this->assertEquals('http://source.example.com/images/quill.png', $data->data->logo); - $this->assertEquals('Quill', $data->data->name); - $this->assertEquals($url, $data->data->url); - $this->assertObjectNotHasAttribute('photo', $data->data); + $data = json_decode($body, true); + $this->assertEquals('app', $data['data']['type']); + $this->assertEquals('http://source.example.com/images/quill.png', $data['data']['logo']); + $this->assertEquals('Quill', $data['data']['name']); + $this->assertEquals($url, $data['data']['url']); + $this->assertEquals(['http://source.example.com/redirect1','http://source.example.com/redirect2'], $data['data']['redirect-uri']); + $this->assertArrayNotHasKey('photo', $data['data']); } public function testHXApp() { diff --git a/tests/data/source.example.com/h-app b/tests/data/source.example.com/h-app index 1233eea..f82492a 100644 --- a/tests/data/source.example.com/h-app +++ b/tests/data/source.example.com/h-app @@ -7,8 +7,12 @@ Connection: keep-alive Test + + - + + Quill +