summaryrefslogtreecommitdiff
path: root/sal/qa/osl/file/osl_old_test_file.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sal/qa/osl/file/osl_old_test_file.cxx')
-rw-r--r--sal/qa/osl/file/osl_old_test_file.cxx273
1 files changed, 273 insertions, 0 deletions
diff --git a/sal/qa/osl/file/osl_old_test_file.cxx b/sal/qa/osl/file/osl_old_test_file.cxx
new file mode 100644
index 000000000000..674e685449be
--- /dev/null
+++ b/sal/qa/osl/file/osl_old_test_file.cxx
@@ -0,0 +1,273 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org 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 version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_sal.hxx"
+
+// LLA:
+// this file is converted to use with testshl2
+// original was placed in sal/test/textenc.cxx
+
+#include <stdio.h>
+
+#include <osl/file.h>
+#include <osl/process.h>
+#include <rtl/ustring.hxx>
+#ifdef SAL_UNX
+#include <unistd.h>
+#include <limits.h>
+#include <string.h>
+#include <sys/stat.h>
+#define TEST_VOLUME ""
+#else
+// WINDOWS
+#define TEST_VOLUME "c:/"
+#endif
+
+#include <testshl/simpleheader.hxx>
+
+namespace osl_test_file
+{
+
+// -----------------------------------------------------------------------------
+
+class oldtestfile : public CppUnit::TestFixture
+{
+public:
+ void test_file_001();
+ void test_file_002();
+ void test_file_003();
+ void test_file_004();
+
+ CPPUNIT_TEST_SUITE( oldtestfile );
+ CPPUNIT_TEST( test_file_001 );
+ CPPUNIT_TEST( test_file_002 );
+ CPPUNIT_TEST( test_file_003 );
+ CPPUNIT_TEST( test_file_004 );
+ CPPUNIT_TEST_SUITE_END( );
+};
+
+char *aSource1[] =
+{
+ "a" , "file:///" TEST_VOLUME "bla/a",
+ "a/" , "file:///" TEST_VOLUME "bla/a",
+ "../a" , "file:///" TEST_VOLUME "a" ,
+ "a/.." , "file:///" TEST_VOLUME "bla",
+ "a/../b" , "file:///" TEST_VOLUME "bla/b",
+ ".." , "file:///" TEST_VOLUME "",
+ "a/b/c/d/" , "file:///" TEST_VOLUME "bla/a/b/c/d",
+ "a/./c" , "file:///" TEST_VOLUME "bla/a/c",
+ "file:///bla/blub", "file:///" TEST_VOLUME "bla/blub",
+ 0 , 0
+};
+
+char *aSource2[ ] =
+{
+ "a" , "file:///" TEST_VOLUME "bla/blubs/schnubbel/a",
+ "a/", "file:///" TEST_VOLUME "bla/blubs/schnubbel/a",
+ "../a", "file:///" TEST_VOLUME "bla/blubs/a",
+ "../../a", "file:///" TEST_VOLUME "bla/a",
+ "../../../a", "file:///" TEST_VOLUME "a",
+ "../../../a/b/c/d", "file:///" TEST_VOLUME "a/b/c/d",
+ 0,0
+};
+
+char *aSource3[ ] =
+{
+ ".." , "/a",
+ "../a" , "/a/a",
+ "e/f" , "/c/e/f",
+ "../..", "",
+ 0,0
+};
+
+using namespace rtl;
+
+void oldtestfile::test_file_001()
+{
+#ifdef WIN32
+ return;
+#endif
+
+ OUString base1( RTL_CONSTASCII_USTRINGPARAM( "file:///" TEST_VOLUME "bla" ) );
+ int i;
+ for( i = 0 ; aSource1[i] ; i +=2 )
+ {
+ OUString target;
+ OUString rel = OUString::createFromAscii( aSource1[i] );
+ oslFileError e = osl_getAbsoluteFileURL( base1.pData, rel.pData , &target.pData );
+ CPPUNIT_ASSERT_MESSAGE("failure #1", osl_File_E_None == e );
+ if( osl_File_E_None == e )
+ {
+ CPPUNIT_ASSERT_MESSAGE("failure #1.1", target.equalsAscii( aSource1[i+1] ) );
+ }
+ OString o = OUStringToOString( target , RTL_TEXTENCODING_ASCII_US );
+ OString obase = OUStringToOString( base1 , RTL_TEXTENCODING_ASCII_US );
+ fprintf( stderr, "%d %s + %s = %s\n" ,e, obase.getStr(), aSource1[i], o.pData->buffer );
+ }
+
+ OUString err1( RTL_CONSTASCII_USTRINGPARAM( "../.." ) );
+ OUString target;
+ CPPUNIT_ASSERT_MESSAGE("failure #11", osl_File_E_None != osl_getAbsoluteFileURL( base1.pData , err1.pData , &target.pData ) );
+
+}
+
+void oldtestfile::test_file_002()
+{
+#ifdef WIN32
+ return;
+#endif
+
+ OUString base2( RTL_CONSTASCII_USTRINGPARAM( "file:///" TEST_VOLUME "bla/blubs/schnubbel" ) );
+ int i;
+ for( i = 0 ; aSource2[i] ; i +=2 )
+ {
+ OUString target;
+ OUString rel = OUString::createFromAscii( aSource2[i] );
+ oslFileError e = osl_getAbsoluteFileURL( base2.pData, rel.pData , &target.pData );
+ CPPUNIT_ASSERT_MESSAGE("failure #2", osl_File_E_None == e );
+ if( osl_File_E_None == e )
+ {
+ CPPUNIT_ASSERT_MESSAGE("failure #2.1", target.equalsAscii( aSource2[i+1] ) );
+ }
+ OString o = OUStringToOString( target , RTL_TEXTENCODING_ASCII_US );
+ OString obase = OUStringToOString( base2 , RTL_TEXTENCODING_ASCII_US );
+// fprintf( stderr, "%d %s + %s = %s\n" ,e, obase.getStr(), aSource2[i], o.pData->buffer );
+ }
+}
+
+void oldtestfile::test_file_003()
+{
+#ifdef WIN32
+ return;
+#endif
+
+ // links !
+#ifdef UNX
+ int i;
+ char buf[PATH_MAX];
+ if( getcwd( buf, PATH_MAX ) )
+ {
+ char buf2[PATH_MAX];
+ strcpy( buf2 , buf );
+ strcat( buf2, "/a" );
+
+ if( 0 == mkdir( buf2 , S_IRWXG | S_IRWXO | S_IRWXU ) )
+ {
+ strcat( buf2, "/b" );
+ if( 0 == mkdir( buf2, S_IRWXU | S_IRWXO | S_IRWXU ) )
+ {
+ if( 0 == symlink( buf2 , "c" ) )
+ {
+ OUString dir;
+ osl_getProcessWorkingDir( &(dir.pData) );
+
+ OUString base3 = dir;
+ base3 += OUString( RTL_CONSTASCII_USTRINGPARAM( "/c" ) );
+ for( i = 0 ; aSource3[i] ; i +=2 )
+ {
+ OUString target;
+ OUString rel = OUString::createFromAscii( aSource3[i] );
+ oslFileError e = osl_getAbsoluteFileURL( base3.pData, rel.pData , &target.pData );
+ CPPUNIT_ASSERT_MESSAGE("failure #3", osl_File_E_None == e );
+ if( osl_File_E_None == e )
+ {
+ CPPUNIT_ASSERT_MESSAGE("failure #4", target.getLength() >= dir.getLength() );
+ if( target.getLength() >= dir.getLength() )
+ {
+ int j;
+ for( j = dir.getLength() ;
+ j < target.getLength() &&
+ aSource3[i+1][j-dir.getLength()] == target[j] ; j++ );
+ CPPUNIT_ASSERT_MESSAGE("failure #5", j == target.getLength() );
+ }
+ }
+ OString o = OUStringToOString( target , RTL_TEXTENCODING_ASCII_US );
+ OString obase = OUStringToOString( base3 , RTL_TEXTENCODING_ASCII_US );
+ fprintf( stderr, "%d %s + %s = %s\n" ,e, obase.getStr(), aSource3[i], o.pData->buffer );
+ }
+ unlink( "c" );
+ }
+ else
+ {
+ CPPUNIT_ASSERT_MESSAGE("failure #6", 0 );
+ }
+ rmdir( "a/b" );
+ }
+ else
+ {
+ CPPUNIT_ASSERT_MESSAGE("failure #7", 0 );
+ }
+ rmdir( "a" );
+ }
+ else
+ {
+ CPPUNIT_ASSERT_MESSAGE("failure #8", 0 );
+ }
+ }
+ else
+ {
+ CPPUNIT_ASSERT_MESSAGE("failure #9", 0 );
+ }
+#endif
+}
+
+void oldtestfile::test_file_004()
+{
+#ifdef WIN32
+ return;
+#endif
+
+ OUString base4( RTL_CONSTASCII_USTRINGPARAM( "file:///" TEST_VOLUME "bla/" ) );
+ int i;
+ for( i = 0 ; aSource1[i] ; i +=2 )
+ {
+ OUString target;
+ OUString rel = OUString::createFromAscii( aSource1[i] );
+ oslFileError e = osl_getAbsoluteFileURL( base4.pData, rel.pData , &target.pData );
+ CPPUNIT_ASSERT_MESSAGE("failure #10", osl_File_E_None == e );
+ if( osl_File_E_None == e )
+ {
+ CPPUNIT_ASSERT_MESSAGE("failure #10.1", target.equalsAscii( aSource1[i+1] ) );
+ }
+ OString o = OUStringToOString( target , RTL_TEXTENCODING_ASCII_US );
+ OString obase = OUStringToOString( base4 , RTL_TEXTENCODING_ASCII_US );
+ fprintf( stderr, "%d %s + %s = %s\n" ,e, obase.getStr(), aSource1[i], o.pData->buffer );
+ }
+
+
+// fprintf( stderr, "test_file done\n" );
+}
+
+} // namespace osl_test_file
+
+// -----------------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_test_file::oldtestfile, "osl_File" );
+
+// -----------------------------------------------------------------------------
+NOADDITIONAL;
+