File tree Expand file tree Collapse file tree 1 file changed +43
-0
lines changed
Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Original file line number Diff line number Diff line change 88
99namespace Test \Files \Cache ;
1010
11+ use OC \Files \Cache \CacheEntry ;
1112use OC \Files \Cache \Watcher ;
1213use OC \Files \Storage \Storage ;
1314use OC \Files \Storage \Temporary ;
15+ use OCP \Files \Cache \IWatcher ;
16+ use OCP \Files \Storage \IStorage ;
17+ use PHPUnit \Framework \Attributes \DataProvider ;
1418
1519/**
1620 * Class WatcherTest
@@ -192,4 +196,43 @@ private function getTestStorage($scan = true) {
192196 $ this ->storages [] = $ storage ;
193197 return $ storage ;
194198 }
199+
200+ public static function checkFilterProvider (): array {
201+ return [
202+ [null , [
203+ '' => true ,
204+ 'foo ' => true ,
205+ 'foo.txt ' => true ,
206+ ]],
207+ ['/^.+$/ ' , [
208+ '' => false ,
209+ 'foo ' => true ,
210+ 'foo.txt ' => true ,
211+ ]],
212+ ['/^.+\..+$/ ' , [
213+ '' => false ,
214+ 'foo ' => false ,
215+ 'foo.txt ' => true ,
216+ ]]
217+ ];
218+ }
219+
220+ #[DataProvider('checkFilterProvider ' )]
221+ public function testCheckFilter ($ filter , $ paths ) {
222+ $ storage = $ this ->createMock (IStorage::class);
223+ $ storage ->method ('hasUpdated ' )
224+ ->willReturn (true );
225+ $ watcher = new Watcher ($ storage );
226+ $ watcher ->setPolicy (IWatcher::CHECK_ALWAYS );
227+
228+ $ watcher ->setCheckFilter ($ filter );
229+
230+ $ entry = new CacheEntry ([
231+ 'storage_mtime ' => 0 ,
232+ ]);
233+
234+ foreach ($ paths as $ patch => $ shouldUpdate ) {
235+ $ this ->assertEquals ($ shouldUpdate , $ watcher ->needsUpdate ($ patch , $ entry ));
236+ }
237+ }
195238}
You can’t perform that action at this time.
0 commit comments