public function validate($field, $input, array $params = array()) { try { if ($input == '' || empty($params['0'])) { return false; } $params = $params['0']; if (empty($params['gcs_access_key']) || empty($params['gcs_secret_key']) || empty($params['gcs_bucket'])) { return false; } $local = new Remote(new Local(dirname($this->getTestFilePath()))); $client = m62Gcs::getRemoteClient($params['gcs_access_key'], $params['gcs_secret_key']); if ($client->doesBucketExist($params['gcs_bucket'])) { $contents = $local->read($this->test_file); $filesystem = new Remote(new m62Gcs($client, $params['gcs_bucket'])); if ($filesystem->has($this->test_file)) { $filesystem->delete($this->test_file); } else { if ($filesystem->write($this->test_file, $contents)) { $filesystem->delete($this->test_file); } } return true; } } catch (\Exception $e) { return false; } } } $rule = new Writable(); \JaegerApp\Validate::addrule($rule->getName(), array($rule, 'validate'), $rule->getErrorMessage());
/** * Tests the name of the rule */ public function testName() { $dir = new Writable(); $this->assertEquals($dir->getName(), 'gcs_bucket_writable'); }