]> git.saurik.com Git - wxWidgets.git/blobdiff - tests/filename/filenametest.cpp
wxLocale::InitLanguagesDB() doesn't use wxStringTokenizer, remove it.
[wxWidgets.git] / tests / filename / filenametest.cpp
index 70d3dced98bc513760d4e0b082cbea4b17dc022a..a9fab6197cc3338f5b822b72cf2dbf792d387c28 100644 (file)
@@ -69,6 +69,10 @@ static struct TestFileNameInfo
     { "c:foo.bar", "c", "", "foo", "bar", false, wxPATH_DOS },
     { "c:\\foo.bar", "c", "\\", "foo", "bar", true, wxPATH_DOS },
     { "c:\\Windows\\command.com", "c", "\\Windows", "command", "com", true, wxPATH_DOS },
+    { "\\\\?\\Volume{8089d7d7-d0ac-11db-9dd0-806d6172696f}\\",
+      "Volume{8089d7d7-d0ac-11db-9dd0-806d6172696f}", "\\", "", "", true, wxPATH_DOS },
+    { "\\\\?\\Volume{8089d7d7-d0ac-11db-9dd0-806d6172696f}\\Program Files\\setup.exe",
+      "Volume{8089d7d7-d0ac-11db-9dd0-806d6172696f}", "\\Program Files", "setup", "exe", true, wxPATH_DOS },
 
 #if 0
     // NB: when using the wxFileName::GetLongPath() function on these two
@@ -121,10 +125,12 @@ private:
         CPPUNIT_TEST( TestStrip );
         CPPUNIT_TEST( TestNormalize );
         CPPUNIT_TEST( TestReplace );
+        CPPUNIT_TEST( TestGetHumanReadable );
 #ifdef __WINDOWS__
         CPPUNIT_TEST( TestShortLongPath );
 #endif // __WINDOWS__
         CPPUNIT_TEST( TestUNC );
+        CPPUNIT_TEST( TestVolumeUniqueName );
     CPPUNIT_TEST_SUITE_END();
 
     void TestConstruction();
@@ -134,10 +140,12 @@ private:
     void TestStrip();
     void TestNormalize();
     void TestReplace();
+    void TestGetHumanReadable();
 #ifdef __WINDOWS__
     void TestShortLongPath();
 #endif // __WINDOWS__
     void TestUNC();
+    void TestVolumeUniqueName();
 
     DECLARE_NO_COPY_CLASS(FileNameTestCase)
 };
@@ -472,6 +480,39 @@ void FileNameTestCase::TestReplace()
                           fn.GetFullPath(wxPATH_UNIX) );
 }
 
+void FileNameTestCase::TestGetHumanReadable()
+{
+    static const struct TestData
+    {
+        const char *result;
+        int size;
+        int prec;
+        wxSizeConvention conv;
+    } testData[] =
+    {
+        { "NA",             0, 1, wxSIZE_CONV_TRADITIONAL },
+        { "2.0 KB",      2000, 1, wxSIZE_CONV_TRADITIONAL },
+        { "1.953 KiB",   2000, 3, wxSIZE_CONV_IEC         },
+        { "2.000 KB",    2000, 3, wxSIZE_CONV_SI          },
+        { "297 KB",    304351, 0, wxSIZE_CONV_TRADITIONAL },
+        { "304 KB",    304351, 0, wxSIZE_CONV_SI          },
+    };
+
+    for ( unsigned n = 0; n < WXSIZEOF(testData); n++ )
+    {
+        const TestData& td = testData[n];
+
+        CPPUNIT_ASSERT_EQUAL
+        (
+            td.result,
+            wxFileName::GetHumanReadableSize(td.size, "NA", td.prec, td.conv)
+        );
+    }
+
+    // also test the default convention value
+    CPPUNIT_ASSERT_EQUAL( "1.4 MB", wxFileName::GetHumanReadableSize(1512993, "") );
+}
+
 void FileNameTestCase::TestStrip()
 {
     CPPUNIT_ASSERT_EQUAL( "", wxFileName::StripExtension("") );
@@ -507,3 +548,23 @@ void FileNameTestCase::TestUNC()
     CPPUNIT_ASSERT_EQUAL( "\\path2", fn.GetPath(wxPATH_NO_SEPARATOR, wxPATH_DOS) );
 }
 
+void FileNameTestCase::TestVolumeUniqueName()
+{
+    wxFileName fn("\\\\?\\Volume{8089d7d7-d0ac-11db-9dd0-806d6172696f}\\",
+                  wxPATH_DOS);
+    CPPUNIT_ASSERT_EQUAL( "Volume{8089d7d7-d0ac-11db-9dd0-806d6172696f}",
+                          fn.GetVolume() );
+    CPPUNIT_ASSERT_EQUAL( "\\", fn.GetPath(wxPATH_NO_SEPARATOR, wxPATH_DOS) );
+    CPPUNIT_ASSERT_EQUAL( "\\\\?\\Volume{8089d7d7-d0ac-11db-9dd0-806d6172696f}\\",
+                          fn.GetFullPath(wxPATH_DOS) );
+
+    fn.Assign("\\\\?\\Volume{8089d7d7-d0ac-11db-9dd0-806d6172696f}\\"
+              "Program Files\\setup.exe", wxPATH_DOS);
+    CPPUNIT_ASSERT_EQUAL( "Volume{8089d7d7-d0ac-11db-9dd0-806d6172696f}",
+                          fn.GetVolume() );
+    CPPUNIT_ASSERT_EQUAL( "\\Program Files",
+                          fn.GetPath(wxPATH_NO_SEPARATOR, wxPATH_DOS) );
+    CPPUNIT_ASSERT_EQUAL( "\\\\?\\Volume{8089d7d7-d0ac-11db-9dd0-806d6172696f}\\"
+                          "Program Files\\setup.exe",
+                          fn.GetFullPath(wxPATH_DOS) );
+}