downloadFolder('samples/', ['resource_type' => AssetType::IMAGE]); self::assertStringContainsString('image', $url); // should return valid url. $url = self::$uploadApi->downloadFolder('folder/'); self::assertStringContainsString('generate_archive', $url); // should flatten folder. $url = self::$uploadApi->downloadFolder('folder/', ['flatten_folders' => true]); self::assertStringContainsString('flatten_folders', $url); // should expire_at folder. $url = self::$uploadApi->downloadFolder('folder/', ['expires_at' => time() + 60]); self::assertStringContainsString('expires_at', $url); // should use original file_name of folder. $url = self::$uploadApi->downloadFolder('folder/', ['use_original_filename' => true]); self::assertStringContainsString('use_original_filename', $url); } public function testPrivateDownloadUrl() { $attachmentName = 'my_attachment_name'; $expirationTime = time() + 60; $url = self::$uploadApi->privateDownloadUrl( self::ASSET_ID, self::IMG_EXT, [ "type" => DeliveryType::UPLOAD, "attachment" => $attachmentName, "expires_at" => $expirationTime, ] ); $expectedParts = [ AssetType::IMAGE . '/' . UploadEndPoint::DOWNLOAD, 'public_id=' . self::ASSET_ID, 'format=' . self::IMG_EXT, 'type=' . DeliveryType::UPLOAD, 'attachment=' . $attachmentName, 'expires_at=' . $expirationTime, 'timestamp', 'signature', 'api_key', ]; foreach ($expectedParts as $expectedPart) { self::assertStringContainsString($expectedPart, $url); } } public function testPrivateDownloadUrlAssetType() { $videoUrl = self::$uploadApi->privateDownloadUrl( self::ASSET_ID, self::VID_EXT, [ 'resource_type' => AssetType::VIDEO, ] ); self::assertStringContainsString(AssetType::VIDEO . '/' . UploadEndPoint::DOWNLOAD, $videoUrl); } }