package cn.iocoder.yudao.module.infra.framework.file.core.utils; import org.junit.jupiter.api.Test; import org.springframework.mock.web.MockHttpServletResponse; import java.nio.charset.StandardCharsets; import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertEquals; /** * {@link FileTypeUtils} 的单元测试 */ public class FileTypeUtilsTest { @Test public void testWriteAttachment_contentDispositionEncodeFilename() throws Exception { // 准备参数 MockHttpServletResponse response = new MockHttpServletResponse(); byte[] content = "test".getBytes(StandardCharsets.UTF_8); // 调用 FileTypeUtils.writeAttachment(response, "中文 100%+文件.txt", content); // 断言 assertEquals("attachment;filename=\"__ 100%+__.txt\";" + "filename*=UTF-8''%E4%B8%AD%E6%96%87%20100%25+%E6%96%87%E4%BB%B6.txt", response.getHeader("Content-Disposition")); assertArrayEquals(content, response.getContentAsByteArray()); } }