@Test public void testUniqueFilename() throws Exception { Map result = cloudinary.uploader().upload(SRC_TEST_IMAGE, asMap("use_filename", true, "tags", Arrays.asList(SDK_TEST_TAG, UPLOADER_TAG))); assertTrue(((String) result.get("public_id")).matches("old_logo_[a-z0-9]{6}")); result = cloudinary.uploader().upload(SRC_TEST_IMAGE, asMap("use_filename", true, "unique_filename", false, "tags", Arrays.asList(SDK_TEST_TAG, UPLOADER_TAG))); assertEquals(result.get("public_id"), "old_logo"); }
@Test public void testUploadDataUri() throws IOException { Map result = cloudinary.uploader().upload("data:image/png;base64,iVBORw0KGgoAA\nAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD///+l2Z/dAAAAM0l\nEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4Ug9C9zwz3gVLMDA/A6\nP9/AFGGFyjOXZtQAAAAAElFTkSuQmCC", asMap("tags", Arrays.asList(SDK_TEST_TAG, UPLOADER_TAG))); assertEquals(result.get("width"), 16); assertEquals(result.get("height"), 16); Map<String, Object> to_sign = new HashMap<String, Object>(); to_sign.put("public_id", result.get("public_id")); to_sign.put("version", ObjectUtils.asString(result.get("version"))); String expected_signature = cloudinary.apiSignRequest(to_sign, cloudinary.config.apiSecret); assertEquals(result.get("signature"), expected_signature); }
@Test public void testUploadUrl() throws IOException { Map result = cloudinary.uploader().upload(REMOTE_TEST_IMAGE, asMap("tags", Arrays.asList(SDK_TEST_TAG, UPLOADER_TAG))); assertEquals(result.get("width"), SRC_TEST_IMAGE_W); assertEquals(result.get("height"), SRC_TEST_IMAGE_H); Map<String, Object> to_sign = new HashMap<String, Object>(); to_sign.put("public_id", result.get("public_id")); to_sign.put("version", ObjectUtils.asString(result.get("version"))); String expected_signature = cloudinary.apiSignRequest(to_sign, cloudinary.config.apiSecret); assertEquals(result.get("signature"), expected_signature); }
@Test public void testHeaders() throws IOException { cloudinary.uploader().upload(SRC_TEST_IMAGE, asMap("headers", new String[]{"Link: 1"}, "tags", Arrays.asList(SDK_TEST_TAG, UPLOADER_TAG))); cloudinary.uploader().upload(SRC_TEST_IMAGE, asMap("headers", asMap("Link", "1"), "tags", Arrays.asList(SDK_TEST_TAG, UPLOADER_TAG))); }
@Test public void testText() throws Exception { Map result = cloudinary.uploader().text("hello world", asMap("tags", Arrays.asList(SDK_TEST_TAG, UPLOADER_TAG))); addToDeleteList("text", result.get("public_id").toString()); assertTrue(((Integer) result.get("width")) > 1); assertTrue(((Integer) result.get("height")) > 1); }
@Test public void testAllowedFormats() throws Exception { //should allow whitelisted formats if allowed_formats String[] formats = {"png"}; Map result = cloudinary.uploader().upload(SRC_TEST_IMAGE, asMap("allowed_formats", formats, "tags", Arrays.asList(SDK_TEST_TAG, UPLOADER_TAG))); assertEquals(result.get("format"), "png"); }
@Test public void testFilenameOption() throws Exception { Map result = cloudinary.uploader().upload(SRC_TEST_IMAGE, asMap("filename", "emanelif", "tags", Arrays.asList(SDK_TEST_TAG, UPLOADER_TAG))); assertEquals("emanelif", result.get("original_filename")); }
@Ignore public void testResourcesListingStartAt() throws Exception { // should allow listing resources by start date - make sure your clock // is set correctly!!! Thread.sleep(2000L); java.util.Date startAt = new java.util.Date(); Thread.sleep(2000L); Map response = cloudinary.uploader().upload(SRC_TEST_IMAGE, ObjectUtils.asMap("tags", UPLOAD_TAGS)); ApiResponse listResources = api.resources(ObjectUtils.asMap("type", "upload", "start_at", startAt, "direction", "asc")); List<Map> resources = (List<Map>) listResources.get("resources"); assertEquals(response.get("public_id"), resources.get(0).get("public_id")); }
@Test public void testUnsignedUpload() throws Exception { // should support unsigned uploading using presets Map preset = cloudinary.api().createUploadPreset(asMap("folder", "upload_folder", "unsigned", true)); Map result = cloudinary.uploader().unsignedUpload(SRC_TEST_IMAGE, preset.get("name").toString(), asMap("tags", Arrays.asList(SDK_TEST_TAG, UPLOADER_TAG))); assertTrue(result.get("public_id").toString().matches("^upload_folder\\/[a-z0-9]+$")); cloudinary.api().deleteUploadPreset(preset.get("name").toString(), ObjectUtils.emptyMap()); }
@Test public void testAllowedFormatsWithIllegalFormat() throws Exception { //should prevent non whitelisted formats from being uploaded if allowed_formats is specified boolean errorFound = false; String[] formats = {"jpg"}; try { cloudinary.uploader().upload(SRC_TEST_IMAGE, asMap("allowed_formats", formats, "tags", Arrays.asList(SDK_TEST_TAG, UPLOADER_TAG))); } catch (Exception e) { errorFound = true; } assertTrue(errorFound); }
public void testUploadInvalidUrl() { try { cloudinary.uploader().upload(REMOTE_TEST_IMAGE + "\n", asMap("return_error", true)); fail("Expected exception was not thrown"); } catch (IOException e) { assertEquals(e.getMessage(), "File not found or unreadable: " + REMOTE_TEST_IMAGE + "\n"); } }
@BeforeClass public static void setUpClass() throws IOException { Cloudinary cloudinary = new Cloudinary(); if (cloudinary.config.apiSecret == null) { System.err.println("Please setup environment for Upload test to run"); } cloudinary.uploader().upload(SRC_TEST_IMAGE, asMap("tags", new String[]{SDK_TEST_TAG, UPLOADER_TAG, ARCHIVE_TAG})); cloudinary.uploader().upload(SRC_TEST_IMAGE, asMap("tags", new String[]{SDK_TEST_TAG, UPLOADER_TAG, ARCHIVE_TAG}, "resource_type", "raw")); cloudinary.uploader().upload(SRC_TEST_IMAGE, asMap("tags", new String[]{SDK_TEST_TAG, UPLOADER_TAG, ARCHIVE_TAG}, "transformation", new Transformation().crop("scale").width(10))); }
@Test public void testCategorizationUpdate() { // should support requesting categorization try { Map uploadResult = cloudinary.uploader().upload(SRC_TEST_IMAGE, ObjectUtils.asMap("tags", UPLOAD_TAGS)); api.update((String) uploadResult.get("public_id"), ObjectUtils.asMap("categorization", "illegal")); } catch (Exception e) { assertTrue(e instanceof BadRequest); assertTrue(e.getMessage().matches("^Illegal value(.*)")); } }
@Test public void testRawConvertUpdate() { // should support requesting raw conversion try { Map uploadResult = cloudinary.uploader().upload(SRC_TEST_IMAGE, ObjectUtils.asMap("tags", UPLOAD_TAGS)); api.update((String) uploadResult.get("public_id"), ObjectUtils.asMap("raw_convert", "illegal")); } catch (Exception e) { assertTrue(e instanceof BadRequest); assertTrue(e.getMessage().matches("^Illegal value(.*)")); } }
@Test public void testExplicit() throws IOException { Map result = cloudinary.uploader().explicit("sample", asMap("eager", Collections.singletonList(new Transformation().crop("scale").width(2.0)), "type", "upload", "moderation", "manual")); String url = cloudinary.url().transformation(new Transformation().crop("scale").width(2.0)).format("jpg").version(result.get("version")).generate("sample"); String eagerUrl = (String) ((Map) ((List) result.get("eager")).get(0)).get("url"); String cloudName = cloudinary.config.cloudName; assertEquals(eagerUrl.substring(eagerUrl.indexOf(cloudName)), url.substring(url.indexOf(cloudName))); }
@Test public void testCreateArchiveRaw() throws Exception { Map result = cloudinary.uploader().createArchive(new ArchiveParams().tags(new String[]{ARCHIVE_TAG}).resourceType("raw")); assertEquals(1, result.get("file_count")); cloudinary.api().deleteResources(Arrays.asList(result.get("public_id").toString()), asMap("resource_type", "raw")); }
@Test(expected = NotFound.class) public void test09aDeleteResourcesByPrefix() throws Exception { // should allow deleting resources String public_id = SUFFIX + "_api_test_by_prefix"; cloudinary.uploader().upload(SRC_TEST_IMAGE, ObjectUtils.asMap("public_id", public_id, "tags", UPLOAD_TAGS)); Map resource = api.resource(public_id, ObjectUtils.emptyMap()); assertNotNull(resource); api.deleteResourcesByPrefix(public_id.substring(0, SUFFIX.length() + 10), ObjectUtils.emptyMap()); api.resource(public_id, ObjectUtils.emptyMap()); }
public void testDeleteAllResources() throws Exception { // should allow deleting all resources cloudinary.uploader().upload(SRC_TEST_IMAGE, ObjectUtils.asMap("public_id", API_TEST_5, "tags", UPLOAD_TAGS, "eager", Collections.singletonList(new Transformation().crop("scale").width(2.0)))); Map result = api.resource(API_TEST_5, ObjectUtils.emptyMap()); assertEquals(1, ((org.cloudinary.json.JSONArray) result.get("derived")).length()); api.deleteAllResources(ObjectUtils.asMap("keep_original", true)); result = api.resource(API_TEST_5, ObjectUtils.emptyMap()); // assertEquals(0, ((org.cloudinary.json.JSONArray) // result.get("derived")).size()); }
@Test public void testHeaders() throws Exception { if (cloudinary.config.apiSecret == null) return; cloudinary.uploader().upload(getAssetStream(TEST_IMAGE), ObjectUtils.asMap("headers", new String[]{"Link: 1"})); cloudinary.uploader().upload(getAssetStream(TEST_IMAGE), ObjectUtils.asMap("headers", ObjectUtils.asMap("Link", "1"))); }
@Test public void testModerationRequest() throws Exception { // should support requesting manual moderation if (cloudinary.config.apiSecret == null) return; JSONObject result = new JSONObject(cloudinary.uploader().upload(getAssetStream(TEST_IMAGE), ObjectUtils.asMap("moderation", "manual"))); assertEquals("manual", result.getJSONArray("moderation").getJSONObject(0).getString("kind")); assertEquals("pending", result.getJSONArray("moderation").getJSONObject(0).getString("status")); }