/*! * This program is free software; you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software * Foundation. * * You should have received a copy of the GNU Lesser General Public License along with this * program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html * or from the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * This program 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. * * Copyright (c) 2002-2015 Pentaho Corporation.. All rights reserved. */ package org.pentaho.platform.plugin.services.importexport; import static org.junit.Assert.assertEquals; import org.junit.Test; public class ExportFileNameEncoderTest { @Test public void testEncodeZipFileName() { assertEquals( "", ExportFileNameEncoder.encodeZipFileName( "" ) ); assertEquals( "simpleFileName.extention", ExportFileNameEncoder.encodeZipFileName( "simpleFileName.extention" ) ); assertEquals( "two+words", ExportFileNameEncoder.encodeZipFileName( "two words" ) ); assertEquals( "special+characters%3A%28%2B%29%25%5E", ExportFileNameEncoder.encodeZipFileName( "special characters:(+)%^" ) ); } @Test public void testEncodeZipPathName() { assertEquals( "", ExportFileNameEncoder.encodeZipPathName( "" ) ); assertEquals( "", ExportFileNameEncoder.encodeZipPathName( "/" ) ); assertEquals( ".", ExportFileNameEncoder.encodeZipPathName( "." ) ); assertEquals( "./..", ExportFileNameEncoder.encodeZipPathName( "./.." ) ); assertEquals( "root.dir/mean+dir/leaf+dir_specials%3A%28%2B%29%25%5E", ExportFileNameEncoder.encodeZipPathName( "root.dir/mean dir/leaf dir_specials:(+)%^" ) ); assertEquals( "/root.dir/mean+dir/leaf+dir_specials%3A%28%2B%29%25%5E", ExportFileNameEncoder.encodeZipPathName( "/root.dir/mean dir/leaf dir_specials:(+)%^" ) ); assertEquals( "root.dir/mean+dir/leaf+dir_specials%3A%28%2B%29%25%5E/", ExportFileNameEncoder.encodeZipPathName( "root.dir/mean dir/leaf dir_specials:(+)%^/" ) ); assertEquals( "/root.dir/mean+dir/leaf+dir_specials%3A%28%2B%29%25%5E/", ExportFileNameEncoder.encodeZipPathName( "/root.dir/mean dir/leaf dir_specials:(+)%^/" ) ); } @Test public void testDecodeZipFileName() { assertEquals( "", ExportFileNameEncoder.decodeZipFileName( "" ) ); assertEquals( "simpleFileName.extention", ExportFileNameEncoder.decodeZipFileName( "simpleFileName.extention" ) ); assertEquals( "two words", ExportFileNameEncoder.decodeZipFileName( "two+words" ) ); assertEquals( "special characters:(+)%^", ExportFileNameEncoder.decodeZipFileName( "special+characters%3A%28%2B%29%25%5E" ) ); } @Test public void testDecodeZipPath() { assertEquals( "", ExportFileNameEncoder.decodeZipPath( "" ) ); assertEquals( "", ExportFileNameEncoder.decodeZipPath( "/" ) ); assertEquals( ".", ExportFileNameEncoder.decodeZipPath( "." ) ); assertEquals( "./..", ExportFileNameEncoder.decodeZipPath( "./.." ) ); assertEquals( "root.dir/mean dir/leaf dir_specials:(+)%^", ExportFileNameEncoder.decodeZipPath( "root.dir/mean+dir/leaf+dir_specials%3A%28%2B%29%25%5E" ) ); assertEquals( "/root.dir/mean dir/leaf dir_specials:(+)%^", ExportFileNameEncoder.decodeZipPath( "/root.dir/mean+dir/leaf+dir_specials%3A%28%2B%29%25%5E" ) ); assertEquals( "root.dir/mean dir/leaf dir_specials:(+)%^/", ExportFileNameEncoder.decodeZipPath( "root.dir/mean+dir/leaf+dir_specials%3A%28%2B%29%25%5E/" ) ); assertEquals( "/root.dir/mean dir/leaf dir_specials:(+)%^/", ExportFileNameEncoder.decodeZipPath( "/root.dir/mean+dir/leaf+dir_specials%3A%28%2B%29%25%5E/" ) ); } }