Fix image's isPublic on import
This commit is contained in:
parent
ace148884c
commit
22e598c36d
@ -22,9 +22,7 @@ import org.junit.Before;
|
|||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.HttpMethod;
|
import org.springframework.http.HttpMethod;
|
||||||
import org.springframework.http.MediaType;
|
|
||||||
import org.springframework.mock.web.MockMultipartFile;
|
import org.springframework.mock.web.MockMultipartFile;
|
||||||
import org.springframework.mock.web.MockPart;
|
|
||||||
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
|
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
|
||||||
import org.thingsboard.common.util.JacksonUtil;
|
import org.thingsboard.common.util.JacksonUtil;
|
||||||
import org.thingsboard.server.common.data.ImageDescriptor;
|
import org.thingsboard.server.common.data.ImageDescriptor;
|
||||||
@ -66,7 +64,7 @@ public class ImageControllerTest extends AbstractControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testUploadPngImage() throws Exception {
|
public void testUploadPngImage() throws Exception {
|
||||||
String filename = "my_png_image.png";
|
String filename = "my_png_image.png";
|
||||||
TbResourceInfo imageInfo = uploadImage(HttpMethod.POST, "/api/image", filename, "image/png", PNG_IMAGE, false);
|
TbResourceInfo imageInfo = uploadImage(HttpMethod.POST, "/api/image", filename, "image/png", PNG_IMAGE);
|
||||||
|
|
||||||
assertThat(imageInfo.getTitle()).isEqualTo(filename);
|
assertThat(imageInfo.getTitle()).isEqualTo(filename);
|
||||||
assertThat(imageInfo.getResourceType()).isEqualTo(ResourceType.IMAGE);
|
assertThat(imageInfo.getResourceType()).isEqualTo(ResourceType.IMAGE);
|
||||||
@ -85,7 +83,7 @@ public class ImageControllerTest extends AbstractControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testUploadJpegImage() throws Exception {
|
public void testUploadJpegImage() throws Exception {
|
||||||
String filename = "my_jpeg_image.jpg";
|
String filename = "my_jpeg_image.jpg";
|
||||||
TbResourceInfo imageInfo = uploadImage(HttpMethod.POST, "/api/image", filename, "image/jpeg", JPEG_IMAGE, false);
|
TbResourceInfo imageInfo = uploadImage(HttpMethod.POST, "/api/image", filename, "image/jpeg", JPEG_IMAGE);
|
||||||
|
|
||||||
ImageDescriptor imageDescriptor = imageInfo.getDescriptor(ImageDescriptor.class);
|
ImageDescriptor imageDescriptor = imageInfo.getDescriptor(ImageDescriptor.class);
|
||||||
checkJpegImageDescriptor(imageDescriptor);
|
checkJpegImageDescriptor(imageDescriptor);
|
||||||
@ -97,7 +95,7 @@ public class ImageControllerTest extends AbstractControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testUploadSvgImage() throws Exception {
|
public void testUploadSvgImage() throws Exception {
|
||||||
String filename = "my_svg_image.svg";
|
String filename = "my_svg_image.svg";
|
||||||
TbResourceInfo imageInfo = uploadImage(HttpMethod.POST, "/api/image", filename, "image/svg+xml", SVG_IMAGE, false);
|
TbResourceInfo imageInfo = uploadImage(HttpMethod.POST, "/api/image", filename, "image/svg+xml", SVG_IMAGE);
|
||||||
|
|
||||||
ImageDescriptor imageDescriptor = imageInfo.getDescriptor(ImageDescriptor.class);
|
ImageDescriptor imageDescriptor = imageInfo.getDescriptor(ImageDescriptor.class);
|
||||||
checkSvgImageDescriptor(imageDescriptor);
|
checkSvgImageDescriptor(imageDescriptor);
|
||||||
@ -109,17 +107,17 @@ public class ImageControllerTest extends AbstractControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testUploadImageWithSameFilename() throws Exception {
|
public void testUploadImageWithSameFilename() throws Exception {
|
||||||
String filename = "my_jpeg_image.jpg";
|
String filename = "my_jpeg_image.jpg";
|
||||||
TbResourceInfo imageInfo1 = uploadImage(HttpMethod.POST, "/api/image", filename, "image/jpeg", JPEG_IMAGE, false);
|
TbResourceInfo imageInfo1 = uploadImage(HttpMethod.POST, "/api/image", filename, "image/jpeg", JPEG_IMAGE);
|
||||||
assertThat(imageInfo1.getTitle()).isEqualTo(filename);
|
assertThat(imageInfo1.getTitle()).isEqualTo(filename);
|
||||||
assertThat(imageInfo1.getFileName()).isEqualTo(filename);
|
assertThat(imageInfo1.getFileName()).isEqualTo(filename);
|
||||||
assertThat(imageInfo1.getResourceKey()).isEqualTo(filename);
|
assertThat(imageInfo1.getResourceKey()).isEqualTo(filename);
|
||||||
|
|
||||||
TbResourceInfo imageInfo2 = uploadImage(HttpMethod.POST, "/api/image", filename, "image/jpeg", JPEG_IMAGE, false);
|
TbResourceInfo imageInfo2 = uploadImage(HttpMethod.POST, "/api/image", filename, "image/jpeg", JPEG_IMAGE);
|
||||||
assertThat(imageInfo2.getTitle()).isEqualTo(filename);
|
assertThat(imageInfo2.getTitle()).isEqualTo(filename);
|
||||||
assertThat(imageInfo2.getFileName()).isEqualTo(filename);
|
assertThat(imageInfo2.getFileName()).isEqualTo(filename);
|
||||||
assertThat(imageInfo2.getResourceKey()).isEqualTo("my_jpeg_image_(1).jpg");
|
assertThat(imageInfo2.getResourceKey()).isEqualTo("my_jpeg_image_(1).jpg");
|
||||||
|
|
||||||
TbResourceInfo imageInfo3 = uploadImage(HttpMethod.POST, "/api/image", filename, "image/jpeg", JPEG_IMAGE, false);
|
TbResourceInfo imageInfo3 = uploadImage(HttpMethod.POST, "/api/image", filename, "image/jpeg", JPEG_IMAGE);
|
||||||
assertThat(imageInfo3.getTitle()).isEqualTo(filename);
|
assertThat(imageInfo3.getTitle()).isEqualTo(filename);
|
||||||
assertThat(imageInfo3.getFileName()).isEqualTo(filename);
|
assertThat(imageInfo3.getFileName()).isEqualTo(filename);
|
||||||
assertThat(imageInfo3.getResourceKey()).isEqualTo("my_jpeg_image_(2).jpg");
|
assertThat(imageInfo3.getResourceKey()).isEqualTo("my_jpeg_image_(2).jpg");
|
||||||
@ -128,11 +126,11 @@ public class ImageControllerTest extends AbstractControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testUpdateImage() throws Exception {
|
public void testUpdateImage() throws Exception {
|
||||||
String filename = "my_png_image.png";
|
String filename = "my_png_image.png";
|
||||||
TbResourceInfo imageInfo = uploadImage(HttpMethod.POST, "/api/image", filename, "image/png", PNG_IMAGE, false);
|
TbResourceInfo imageInfo = uploadImage(HttpMethod.POST, "/api/image", filename, "image/png", PNG_IMAGE);
|
||||||
checkPngImageDescriptor(imageInfo.getDescriptor(ImageDescriptor.class));
|
checkPngImageDescriptor(imageInfo.getDescriptor(ImageDescriptor.class));
|
||||||
|
|
||||||
String newFilename = "my_jpeg_image.png";
|
String newFilename = "my_jpeg_image.png";
|
||||||
imageInfo = uploadImage(HttpMethod.PUT, "/api/images/tenant/" + filename, newFilename, "image/jpeg", JPEG_IMAGE, false);
|
imageInfo = uploadImage(HttpMethod.PUT, "/api/images/tenant/" + filename, newFilename, "image/jpeg", JPEG_IMAGE);
|
||||||
|
|
||||||
assertThat(imageInfo.getTitle()).isEqualTo(filename);
|
assertThat(imageInfo.getTitle()).isEqualTo(filename);
|
||||||
assertThat(imageInfo.getResourceKey()).isEqualTo(filename);
|
assertThat(imageInfo.getResourceKey()).isEqualTo(filename);
|
||||||
@ -148,7 +146,7 @@ public class ImageControllerTest extends AbstractControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testUpdateImageInfo() throws Exception {
|
public void testUpdateImageInfo() throws Exception {
|
||||||
String filename = "my_png_image.png";
|
String filename = "my_png_image.png";
|
||||||
TbResourceInfo imageInfo = uploadImage(HttpMethod.POST, "/api/image", filename, "image/png", PNG_IMAGE, false);
|
TbResourceInfo imageInfo = uploadImage(HttpMethod.POST, "/api/image", filename, "image/png", PNG_IMAGE);
|
||||||
ImageDescriptor imageDescriptor = imageInfo.getDescriptor(ImageDescriptor.class);
|
ImageDescriptor imageDescriptor = imageInfo.getDescriptor(ImageDescriptor.class);
|
||||||
|
|
||||||
assertThat(imageInfo.getTitle()).isEqualTo(filename);
|
assertThat(imageInfo.getTitle()).isEqualTo(filename);
|
||||||
@ -167,7 +165,7 @@ public class ImageControllerTest extends AbstractControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testExportImportImage() throws Exception {
|
public void testExportImportImage() throws Exception {
|
||||||
String filename = "my_png_image.png";
|
String filename = "my_png_image.png";
|
||||||
uploadImage(HttpMethod.POST, "/api/image", filename, "image/png", PNG_IMAGE, false);
|
uploadImage(HttpMethod.POST, "/api/image", filename, "image/png", PNG_IMAGE);
|
||||||
|
|
||||||
ImageExportData exportData = doGet("/api/images/tenant/" + filename + "/export", ImageExportData.class);
|
ImageExportData exportData = doGet("/api/images/tenant/" + filename + "/export", ImageExportData.class);
|
||||||
assertThat(exportData.getMediaType()).isEqualTo("image/png");
|
assertThat(exportData.getMediaType()).isEqualTo("image/png");
|
||||||
@ -175,6 +173,8 @@ public class ImageControllerTest extends AbstractControllerTest {
|
|||||||
assertThat(exportData.getTitle()).isEqualTo(filename);
|
assertThat(exportData.getTitle()).isEqualTo(filename);
|
||||||
assertThat(exportData.getResourceKey()).isEqualTo(filename);
|
assertThat(exportData.getResourceKey()).isEqualTo(filename);
|
||||||
assertThat(exportData.getData()).isEqualTo(Base64.getEncoder().encodeToString(PNG_IMAGE));
|
assertThat(exportData.getData()).isEqualTo(Base64.getEncoder().encodeToString(PNG_IMAGE));
|
||||||
|
assertThat(exportData.isPublic()).isTrue();
|
||||||
|
assertThat(exportData.getPublicResourceKey()).isNotEmpty();
|
||||||
|
|
||||||
doDelete("/api/images/tenant/" + filename).andExpect(status().isOk());
|
doDelete("/api/images/tenant/" + filename).andExpect(status().isOk());
|
||||||
|
|
||||||
@ -182,6 +182,8 @@ public class ImageControllerTest extends AbstractControllerTest {
|
|||||||
assertThat(importedImageInfo.getTitle()).isEqualTo(filename);
|
assertThat(importedImageInfo.getTitle()).isEqualTo(filename);
|
||||||
assertThat(importedImageInfo.getResourceKey()).isEqualTo(filename);
|
assertThat(importedImageInfo.getResourceKey()).isEqualTo(filename);
|
||||||
assertThat(importedImageInfo.getFileName()).isEqualTo(filename);
|
assertThat(importedImageInfo.getFileName()).isEqualTo(filename);
|
||||||
|
assertThat(importedImageInfo.isPublic()).isTrue();
|
||||||
|
assertThat(importedImageInfo.getPublicResourceKey()).isEqualTo(exportData.getPublicResourceKey());
|
||||||
checkPngImageDescriptor(importedImageInfo.getDescriptor(ImageDescriptor.class));
|
checkPngImageDescriptor(importedImageInfo.getDescriptor(ImageDescriptor.class));
|
||||||
assertThat(downloadImage("tenant", filename)).containsExactly(PNG_IMAGE);
|
assertThat(downloadImage("tenant", filename)).containsExactly(PNG_IMAGE);
|
||||||
}
|
}
|
||||||
@ -190,11 +192,11 @@ public class ImageControllerTest extends AbstractControllerTest {
|
|||||||
public void testGetImages() throws Exception {
|
public void testGetImages() throws Exception {
|
||||||
loginSysAdmin();
|
loginSysAdmin();
|
||||||
String systemImageName = "my_system_png_image.png";
|
String systemImageName = "my_system_png_image.png";
|
||||||
TbResourceInfo systemImage = uploadImage(HttpMethod.POST, "/api/image", systemImageName, "image/png", PNG_IMAGE, false);
|
TbResourceInfo systemImage = uploadImage(HttpMethod.POST, "/api/image", systemImageName, "image/png", PNG_IMAGE);
|
||||||
|
|
||||||
loginTenantAdmin();
|
loginTenantAdmin();
|
||||||
String tenantImageName = "my_jpeg_image.jpg";
|
String tenantImageName = "my_jpeg_image.jpg";
|
||||||
TbResourceInfo tenantImage = uploadImage(HttpMethod.POST, "/api/image", tenantImageName, "image/jpeg", JPEG_IMAGE, false);
|
TbResourceInfo tenantImage = uploadImage(HttpMethod.POST, "/api/image", tenantImageName, "image/jpeg", JPEG_IMAGE);
|
||||||
|
|
||||||
List<TbResourceInfo> tenantImages = getImages(null, false, 10);
|
List<TbResourceInfo> tenantImages = getImages(null, false, 10);
|
||||||
assertThat(tenantImages).containsOnly(tenantImage);
|
assertThat(tenantImages).containsOnly(tenantImage);
|
||||||
@ -211,7 +213,7 @@ public class ImageControllerTest extends AbstractControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testUploadPublicImage() throws Exception {
|
public void testUploadPublicImage() throws Exception {
|
||||||
String filename = "my_public_image.png";
|
String filename = "my_public_image.png";
|
||||||
TbResourceInfo imageInfo = uploadImage(HttpMethod.POST, "/api/image", filename, "image/png", PNG_IMAGE, true);
|
TbResourceInfo imageInfo = uploadImage(HttpMethod.POST, "/api/image", filename, "image/png", PNG_IMAGE);
|
||||||
|
|
||||||
assertThat(imageInfo.isPublic()).isTrue();
|
assertThat(imageInfo.isPublic()).isTrue();
|
||||||
assertThat(imageInfo.getPublicResourceKey()).hasSize(32);
|
assertThat(imageInfo.getPublicResourceKey()).hasSize(32);
|
||||||
@ -225,7 +227,7 @@ public class ImageControllerTest extends AbstractControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testMakeImagePublic() throws Exception {
|
public void testMakeImagePublic() throws Exception {
|
||||||
String filename = "my_public_image.png";
|
String filename = "my_public_image.png";
|
||||||
TbResourceInfo imageInfo = uploadImage(HttpMethod.POST, "/api/image", filename, "image/png", PNG_IMAGE, false);
|
TbResourceInfo imageInfo = uploadImage(HttpMethod.POST, "/api/image", filename, "image/png", PNG_IMAGE);
|
||||||
String publicKey = imageInfo.getPublicResourceKey();
|
String publicKey = imageInfo.getPublicResourceKey();
|
||||||
assertThat(publicKey).hasSize(32);
|
assertThat(publicKey).hasSize(32);
|
||||||
|
|
||||||
@ -325,13 +327,9 @@ public class ImageControllerTest extends AbstractControllerTest {
|
|||||||
.andReturn().getResponse().getContentAsByteArray();
|
.andReturn().getResponse().getContentAsByteArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
private <R> TbResourceInfo uploadImage(HttpMethod httpMethod, String url, String filename, String mediaType, byte[] content, boolean isPublic) throws Exception {
|
private <R> TbResourceInfo uploadImage(HttpMethod httpMethod, String url, String filename, String mediaType, byte[] content) throws Exception {
|
||||||
MockMultipartFile file = new MockMultipartFile("file", filename, mediaType, content);
|
MockMultipartFile file = new MockMultipartFile("file", filename, mediaType, content);
|
||||||
MockPart publicPart = new MockPart("isPublic", String.valueOf(isPublic).getBytes());
|
var request = MockMvcRequestBuilders.multipart(httpMethod, url).file(file);
|
||||||
publicPart.getHeaders().setContentType(MediaType.APPLICATION_JSON);
|
|
||||||
var request = MockMvcRequestBuilders.multipart(httpMethod, url)
|
|
||||||
.file(file)
|
|
||||||
.part(publicPart);
|
|
||||||
setJwtToken(request);
|
setJwtToken(request);
|
||||||
return readResponse(mockMvc.perform(request).andExpect(status().isOk()), TbResourceInfo.class);
|
return readResponse(mockMvc.perform(request).andExpect(status().isOk()), TbResourceInfo.class);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,22 +16,26 @@
|
|||||||
package org.thingsboard.server.common.data;
|
package org.thingsboard.server.common.data;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
@ApiModel
|
@ApiModel
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Data
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
@Builder
|
@Builder
|
||||||
public class ImageExportData {
|
public class ImageExportData {
|
||||||
|
|
||||||
private final String mediaType;
|
private String mediaType;
|
||||||
private final String fileName;
|
private String fileName;
|
||||||
private final String title;
|
private String title;
|
||||||
private final String resourceKey;
|
private String resourceKey;
|
||||||
private final boolean isPublic;
|
private boolean isPublic;
|
||||||
private final String publicResourceKey;
|
private String publicResourceKey;
|
||||||
private final String data;
|
private String data;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user