Fix wxFileName::MakeRelativeTo() for directory relatively to itself.
The expected result in this case is ".", but the filename became empty instead when wxPATH_NATIVE was used. Fix this by examining GetFormat(format), which takes care of mapping wxPATH_NATIVE to its real value, instead of wxPATH_NATIVE itself. Also add a unit test verifying that this works as expected. Closes #17010.
This commit is contained in:
@@ -133,6 +133,7 @@ private:
|
||||
CPPUNIT_TEST( TestSetPath );
|
||||
CPPUNIT_TEST( TestStrip );
|
||||
CPPUNIT_TEST( TestNormalize );
|
||||
CPPUNIT_TEST( TestRelative );
|
||||
CPPUNIT_TEST( TestReplace );
|
||||
CPPUNIT_TEST( TestGetHumanReadable );
|
||||
#ifdef __WINDOWS__
|
||||
@@ -158,6 +159,7 @@ private:
|
||||
void TestSplit();
|
||||
void TestSetPath();
|
||||
void TestStrip();
|
||||
void TestRelative();
|
||||
void TestNormalize();
|
||||
void TestReplace();
|
||||
void TestGetHumanReadable();
|
||||
@@ -441,6 +443,21 @@ void FileNameTestCase::TestNormalize()
|
||||
#endif // __WINDOWS__
|
||||
}
|
||||
|
||||
void FileNameTestCase::TestRelative()
|
||||
{
|
||||
wxFileName fn("a/b.cpp");
|
||||
fn.MakeRelativeTo("a");
|
||||
CPPUNIT_ASSERT_EQUAL( "b.cpp", fn.GetFullPath() );
|
||||
|
||||
fn.AssignDir("a/b");
|
||||
fn.MakeRelativeTo("a");
|
||||
CPPUNIT_ASSERT_EQUAL( "b/", fn.GetFullPath() );
|
||||
|
||||
fn.AssignDir("a");
|
||||
fn.MakeRelativeTo("a");
|
||||
CPPUNIT_ASSERT_EQUAL( "./", fn.GetFullPath() );
|
||||
}
|
||||
|
||||
void FileNameTestCase::TestReplace()
|
||||
{
|
||||
static const struct FileNameTest
|
||||
|
Reference in New Issue
Block a user