don't run wxPATH_NORM_LONG test on systems where the short file names are disabled

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59974 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2009-04-01 21:49:47 +00:00
parent 27aec6b6fc
commit 525711d7a3

View File

@ -24,6 +24,10 @@
#include "wx/filename.h"
#include "wx/filefn.h"
#ifdef __WXMSW__
#include "wx/msw/registry.h"
#endif // __WXMSW__
// ----------------------------------------------------------------------------
// local functions
// ----------------------------------------------------------------------------
@ -345,9 +349,6 @@ void FileNameTestCase::TestNormalize()
{ ".\\foo", wxPATH_NORM_LONG, ".\\foo", wxPATH_DOS },
{ "..\\Makefile.in", wxPATH_NORM_LONG, "..\\Makefile.in", wxPATH_DOS },
{ "..\\foo", wxPATH_NORM_LONG, "..\\foo", wxPATH_DOS },
#ifdef __WXMSW__
{ "..\\MKINST~1", wxPATH_NORM_LONG, "..\\mkinstalldirs", wxPATH_DOS },
#endif
};
// set the env var ABCDEF
@ -375,6 +376,29 @@ void FileNameTestCase::TestNormalize()
expected, fn.GetFullPath(fnt.fmt)
);
}
// MSW-only test for wxPATH_NORM_LONG: notice that we only run it if short
// names generation is not disabled for this system as otherwise the file
// MKINST~1 doesn't exist at all and normalizing it fails (it's possible
// that we're on a FAT partition in which case the test would still succeed
// and also that the registry key was changed recently and didn't take
// effect yet but these are marginal cases which we consciously choose to
// ignore for now)
#ifdef __WXMSW__
long shortNamesDisabled;
if ( wxRegKey
(
wxRegKey::HKLM,
"SYSTEM\\CurrentControlSet\\Control\\FileSystem"
).QueryValue("NtfsDisable8dot3NameCreation", &shortNamesDisabled) &&
!shortNamesDisabled )
{
wxFileName fn("..\\MKINST~1");
CPPUNIT_ASSERT( fn.Normalize(wxPATH_NORM_LONG, cwd) );
CPPUNIT_ASSERT_EQUAL( "..\\mkinstalldirs", fn.GetFullPath() );
}
//else: when in doubt, don't run the test
#endif // __WXMSW__
}
void FileNameTestCase::TestReplace()