Skip to content

Commit 8115d96

Browse files
author
Mike Meier
committed
Fix parse_url expects string, resource given error
1 parent 383742d commit 8115d96

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

src/Resource/Resource.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,10 @@ public function canBeProcessedInPlace($context)
8383
*/
8484
public function getContextForProcessInSinglePlace()
8585
{
86+
if (!is_string($this->original)) {
87+
return null;
88+
}
89+
8690
if (!$this->isLocal()) {
8791
return null;
8892
}
@@ -101,6 +105,10 @@ public function getContextForProcessInSinglePlace()
101105
*/
102106
private function isLocal()
103107
{
108+
if (!is_string($this->original)) {
109+
return false;
110+
}
111+
104112
$data = parse_url($this->original);
105113

106114
return isset($data['path']);

tests/Tests/Resource/ResourceTest.php

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,19 @@ public function testGetTargetAndOriginal()
3030
public function testCanBeProcessedInPlace($expected, $context, $original, $target)
3131
{
3232
$resource = new Resource($original, $target);
33+
$result = $resource->canBeProcessedInPlace($context);
3334

34-
$this->assertInternalType('boolean', $resource->canBeProcessedInPlace($context));
35-
$this->assertEquals($expected, $resource->canBeProcessedInPlace($context));
35+
$this->assertInternalType('boolean', $result);
36+
$this->assertEquals($expected, $result);
37+
}
38+
39+
public function testGetContextForProcessInSinglePlace()
40+
{
41+
$resource = new Resource(fopen(__FILE__, 'rb'), 'file1');
42+
$this->assertNull($resource->getContextForProcessInSinglePlace());
43+
44+
$resource = new Resource('/path/to/file1', 'file1');
45+
$this->assertEquals('/path/to', $resource->getContextForProcessInSinglePlace());
3646
}
3747

3848
public function provideProcessInPlaceData()

0 commit comments

Comments
 (0)