Skip to content

Commit e29558c

Browse files
committed
Merge branch 'develop'
* develop: We need access to the parent dir to delete files.
2 parents d18c70c + f04ea21 commit e29558c

File tree

2 files changed

+33
-30
lines changed

2 files changed

+33
-30
lines changed

src/PartialCleanDirs.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,9 @@ protected function cleanDir($dir, $keep)
247247
}
248248
foreach ($items as $item) {
249249
try {
250+
// To delete a file we must have access rights on the parent
251+
// directory.
252+
$this->fs->chmod(dirname(realpath($item)), 0777, 0000, true);
250253
$this->fs->chmod($item, 0777, 0000, true);
251254
} catch (IOException $e) {
252255
// If chmod didn't work, try to remove anyway.

tests/PartialCleanDirsTest.php

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -74,98 +74,98 @@ public function testRun() {
7474
$fs = $this->getMockBuilder(\Symfony\Component\Filesystem\Filesystem::class)
7575
->getMock();
7676

77-
$fs->expects($this->at(0))
77+
$fs->expects($this->at(1))
7878
->method('chmod')
7979
->with('dir1', 0777, 0000, true);
80-
$fs->expects($this->at(1))
80+
$fs->expects($this->at(2))
8181
->method('remove')
8282
->with('dir1');
83-
$fs->expects($this->at(2))
83+
$fs->expects($this->at(4))
8484
->method('chmod')
8585
->with('dir2', 0777, 0000, true);
86-
$fs->expects($this->at(3))
86+
$fs->expects($this->at(5))
8787
->method('remove')
8888
->with('dir2');
89-
$fs->expects($this->at(4))
89+
$fs->expects($this->at(7))
9090
->method('chmod')
9191
->with('dir3', 0777, 0000, true);
92-
$fs->expects($this->at(5))
92+
$fs->expects($this->at(8))
9393
->method('remove')
9494
->with('dir3');
95-
$fs->expects($this->at(6))
95+
$fs->expects($this->at(10))
9696
->method('chmod')
9797
->with('dir4', 0777, 0000, true);
98-
$fs->expects($this->at(7))
98+
$fs->expects($this->at(11))
9999
->method('remove')
100100
->with('dir4');
101-
$fs->expects($this->at(8))
101+
$fs->expects($this->at(13))
102102
->method('chmod')
103103
->with('dir5', 0777, 0000, true);
104-
$fs->expects($this->at(9))
104+
$fs->expects($this->at(14))
105105
->method('remove')
106106
->with('dir5');
107-
$fs->expects($this->at(10))
107+
$fs->expects($this->at(16))
108108
->method('chmod')
109109
->with('dir6', 0777, 0000, true);
110-
$fs->expects($this->at(11))
110+
$fs->expects($this->at(17))
111111
->method('remove')
112112
->with('dir6');
113113

114114
// Delete items in path/to/dir2.
115-
$fs->expects($this->at(12))
115+
$fs->expects($this->at(19))
116116
->method('chmod')
117117
->with('dir1', 0777, 0000, true);
118-
$fs->expects($this->at(13))
118+
$fs->expects($this->at(20))
119119
->method('remove')
120120
->with('dir1');
121-
$fs->expects($this->at(14))
121+
$fs->expects($this->at(22))
122122
->method('chmod')
123123
->with('dir2', 0777, 0000, true);
124-
$fs->expects($this->at(15))
124+
$fs->expects($this->at(23))
125125
->method('remove')
126126
->with('dir2');
127-
$fs->expects($this->at(16))
127+
$fs->expects($this->at(25))
128128
->method('chmod')
129129
->with('dir3', 0777, 0000, true);
130-
$fs->expects($this->at(17))
130+
$fs->expects($this->at(26))
131131
->method('remove')
132132
->with('dir3');
133-
$fs->expects($this->at(18))
133+
$fs->expects($this->at(28))
134134
->method('chmod')
135135
->with('dir4', 0777, 0000, true);
136-
$fs->expects($this->at(19))
136+
$fs->expects($this->at(29))
137137
->method('remove')
138138
->with('dir4');
139-
$fs->expects($this->at(20))
139+
$fs->expects($this->at(31))
140140
->method('chmod')
141141
->with('dir5', 0777, 0000, true);
142-
$fs->expects($this->at(21))
142+
$fs->expects($this->at(32))
143143
->method('remove')
144144
->with('dir5');
145-
$fs->expects($this->at(22))
145+
$fs->expects($this->at(34))
146146
->method('chmod')
147147
->with('dir6', 0777, 0000, true);
148-
$fs->expects($this->at(23))
148+
$fs->expects($this->at(35))
149149
->method('remove')
150150
->with('dir6');
151-
$fs->expects($this->at(24))
151+
$fs->expects($this->at(37))
152152
->method('chmod')
153153
->with('dir7', 0777, 0000, true);
154-
$fs->expects($this->at(25))
154+
$fs->expects($this->at(38))
155155
->method('remove')
156156
->with('dir7');
157-
$fs->expects($this->at(26))
157+
$fs->expects($this->at(40))
158158
->method('chmod')
159159
->with('dir8', 0777, 0000, true);
160-
$fs->expects($this->at(27))
160+
$fs->expects($this->at(41))
161161
->method('remove')
162162
->with('dir8');
163163

164164
// Delete items in path/to/dir3.
165-
$fs->expects($this->at(28))
165+
$fs->expects($this->at(43))
166166
->method('chmod')
167167
->with('dir1', 0777, 0000, true);
168-
$fs->expects($this->at(29))
168+
$fs->expects($this->at(44))
169169
->method('remove')
170170
->with('dir1');
171171

0 commit comments

Comments
 (0)