Kaydet (Commit) 26be5f21 authored tarafından Juergen Funk's avatar Juergen Funk Kaydeden (comit) Thorsten Behrens

unotools: don't go belly-up if temp dir is wrong or empty

When a wrong temp directory was set (e.g. wrong path in xcu ist set),
you get a assert in the LO-Debug Version, this patch avoid this assertion.

Change-Id: I192f682860ad9cddf907e4b239eff36b4bd6072d
Reviewed-on: https://gerrit.libreoffice.org/46846Reviewed-by: 's avatarThorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: 's avatarThorsten Behrens <Thorsten.Behrens@CIB.de>
üst 1b73ed91
......@@ -27,6 +27,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,sal_osl,\
$(eval $(call gb_CppunitTest_use_libraries,sal_osl,\
sal \
utl \
))
# the test uses the library created by Module_DLL
......
......@@ -32,6 +32,9 @@
#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/plugin/TestPlugIn.h>
#include <unotools/tempfile.hxx>
namespace osl_test_file
{
......@@ -137,8 +140,30 @@ void oldtestfile::test_file_004()
#endif
}
class TempFileTest : public CppUnit::TestFixture
{
public:
TempFileTest() {}
void SetTempNameBaseDirectory()
{ // only testing: of not found the directory
OUString path = utl::TempFile::SetTempNameBaseDirectory("file:///not/found/dir");
CPPUNIT_ASSERT_MESSAGE("SetTempNameBaseDirectory must give a empty string back",
path.isEmpty());
}
CPPUNIT_TEST_SUITE(TempFileTest);
CPPUNIT_TEST(SetTempNameBaseDirectory);
CPPUNIT_TEST_SUITE_END();
};
} // namespace osl_test_file
CPPUNIT_TEST_SUITE_REGISTRATION( osl_test_file::oldtestfile);
CPPUNIT_TEST_SUITE_REGISTRATION( osl_test_file::TempFileTest);
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -57,13 +57,18 @@ namespace utl
OUString getParentName( const OUString& aFileName )
{
sal_Int32 lastIndex = aFileName.lastIndexOf( '/' );
OUString aParent = aFileName.copy( 0, lastIndex );
OUString aParent;
if( aParent.endsWith(":") && aParent.getLength() == 6 )
if (lastIndex > -1)
{
aParent = aFileName.copy(0, lastIndex);
if (aParent.endsWith(":") && aParent.getLength() == 6)
aParent += "/";
if( aParent.equalsIgnoreAsciiCase( "file://" ) )
if (aParent.equalsIgnoreAsciiCase("file://"))
aParent = "file:///";
}
return aParent;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment