/** * Check permissions of directories that are expected to be non-writable for application * * @return void */ public function checkApplicationFilePermissions() { $results = $this->filePermissions->getUnnecessaryWritableDirectoriesForApplication(); if ($results) { $errorMsg = "For security, remove write permissions from these directories: '" . implode("' '", $results) . "'"; $this->log->log($errorMsg); $this->installInfo[self::INFO_MESSAGE][] = $errorMsg; } }
/** * @param array $mockMethods * @param array $expected * @dataProvider getUnnecessaryWritableDirectoriesForApplicationDataProvider */ public function testGetUnnecessaryWritableDirectoriesForApplication(array $mockMethods, array $expected) { $this->directoryListMock->expects($this->at(0))->method('getPath')->with(DirectoryList::CONFIG)->will($this->returnValue(BP . '/app/etc')); $index = 0; foreach ($mockMethods as $mockMethod => $returnValue) { $this->directoryWriteMock->expects($this->at($index))->method($mockMethod)->will($this->returnValue($returnValue)); $index += 1; } $this->assertEquals($expected, array_values($this->filePermissions->getUnnecessaryWritableDirectoriesForApplication())); }