/** * @before */ public function initializeTestFiles() { // Ensure we have the Pony.fm test files if (!static::$initializedFiles) { Storage::disk('local')->makeDirectory('test-files'); $storage = Storage::disk('testing'); // To add new test files, upload them to poniverse.net/files // and add them here with their last-modified date as a Unix // timestamp. $files = ['ponyfm-test.flac' => 1450965707, 'ponyfm-transparent-cover-art.png' => 1451211579]; foreach ($files as $filename => $lastModifiedTimestamp) { if (!$storage->has($filename) || $storage->lastModified($filename) < $lastModifiedTimestamp) { echo "Downloading test file: {$filename}..." . PHP_EOL; $testFileUrl = "https://poniverse.net/files/ponyfm-test-files/{$filename}"; $data = \Httpful\Request::getQuick($testFileUrl); if ($data->code === 200) { $storage->put($filename, $data->body); } else { $this->fail("A necessary test file was unavailable: {$testFileUrl}"); } } } // Delete any unnecessary test files foreach ($storage->allFiles() as $filename) { if (!isset($files[$filename])) { $storage->delete($filename); } } static::$initializedFiles = true; } }
/** * Get the resource from the provided url. * * @param string $url URL for the resource to get. * @return stdClass Returned resource object from the API */ public static function getQuick($url) { return static::checkHttp200Status(Request::getQuick($url)); }