/* * Copyright (C) 2012 eXo Platform SAS. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.exoplatform.upload; import java.io.File; import java.io.IOException; import org.exoplatform.component.test.AbstractKernelTest; import org.exoplatform.component.test.ConfigurationUnit; import org.exoplatform.component.test.ConfiguredBy; import org.exoplatform.component.test.ContainerScope; import org.junit.Test; @ConfiguredBy({ @ConfigurationUnit(scope = ContainerScope.PORTAL, path = "conf/services/upload-service.xml") }) public class TestCorrectFileName extends AbstractKernelTest { private static final String tmpDir = System.getProperty("java.io.tmpdir"); UploadService uploadService; @Override protected void beforeRunBare() { super.beforeRunBare(); uploadService = getContainer().getComponentInstanceOfType(UploadService.class); } @Test public void testCorrectFileName() { String fileName; fileName = "test_abcdef0123456789.ext"; fileName = uploadService.correctFileName(fileName); assertEquals("test_abcdef0123456789.ext", fileName); assertFileCreation(fileName); fileName = "test~`!@#$%^&*()-=+_.ext"; fileName = uploadService.correctFileName(fileName); assertEquals("test~`!@#$%^&_()-=+_.ext", fileName); assertFileCreation(fileName); fileName = "test[]{}\\|.ext"; fileName = uploadService.correctFileName(fileName); assertEquals("test[]{}__.ext", fileName); assertFileCreation(fileName); fileName = "test;:\"'.ext"; fileName = uploadService.correctFileName(fileName); assertEquals("test;__'.ext", fileName); assertFileCreation(fileName); fileName = "test_tên tiếng việt.mở rộng"; fileName = uploadService.correctFileName(fileName); assertEquals("test_tên tiếng việt.mở rộng", fileName); assertFileCreation(fileName); fileName = "test_越南人的名字。扩展"; fileName = uploadService.correctFileName(fileName); assertEquals("test_越南人的名字。扩展", fileName); assertFileCreation(fileName); fileName = "test_В'єтнамські імена. розширення"; fileName = uploadService.correctFileName(fileName); assertEquals("test_В'єтнамські імена. розширення", fileName); assertFileCreation(fileName); fileName = "test_베트남어 이름. 확장"; fileName = uploadService.correctFileName(fileName); assertEquals("test_베트남어 이름. 확장", fileName); assertFileCreation(fileName); fileName = "test_वियतनामी नामों. विस्तार"; fileName = uploadService.correctFileName(fileName); assertEquals("test_वियतनामी नामों. विस्तार", fileName); assertFileCreation(fileName); fileName = "test_ベトナム語名。拡大"; fileName = uploadService.correctFileName(fileName); assertEquals("test_ベトナム語名。拡大", fileName); assertFileCreation(fileName); fileName = "test_ਵੀਅਤਨਾਮੀ ਨਾਮ. ਵਿਸਤਾਰ"; fileName = uploadService.correctFileName(fileName); assertEquals("test_ਵੀਅਤਨਾਮੀ ਨਾਮ. ਵਿਸਤਾਰ", fileName); assertFileCreation(fileName); fileName = "test_Вьетнамские имена. расширение"; fileName = uploadService.correctFileName(fileName); assertEquals("test_Вьетнамские имена. расширение", fileName); assertFileCreation(fileName); } private void assertFileCreation(String fileName) { String file = tmpDir + File.separator + fileName; File f = new File(file); f.deleteOnExit(); try { f.createNewFile(); } catch (IOException ex) { fail("Can not create file with name: " + fileName); } } }