Browse Source

Updated in light of review (missed in last commit).

Added corner cases to "Components" test (a test of the private
split() method).
Stephen Morris 14 years ago
parent
commit
a0d8f67619
1 changed files with 40 additions and 5 deletions
  1. 40 5
      src/lib/log/tests/filename_unittest.cc

+ 40 - 5
src/lib/log/tests/filename_unittest.cc

@@ -90,18 +90,53 @@ TEST_F(FilenameTest, Components) {
     EXPECT_EQ("nu", fname.name());
     EXPECT_EQ("nu", fname.name());
     EXPECT_EQ("", fname.extension());
     EXPECT_EQ("", fname.extension());
 
 
+    // Check that the decomposition can occur in the presence of leading and
+    // trailing spaces
+    fname.setName("  lambda/mu/nu\t  ");
+    EXPECT_EQ("lambda/mu/", fname.directory());
+    EXPECT_EQ("nu", fname.name());
+    EXPECT_EQ("", fname.extension());
+
     // Empty string
     // Empty string
     fname.setName("");
     fname.setName("");
     EXPECT_EQ("", fname.directory());
     EXPECT_EQ("", fname.directory());
     EXPECT_EQ("", fname.name());
     EXPECT_EQ("", fname.name());
     EXPECT_EQ("", fname.extension());
     EXPECT_EQ("", fname.extension());
 
 
-    // ... and finally check that the decomposition can occur in the presence
+    // ... and just spaces
-    // of leading and trailing spaces
+    fname.setName("  ");
-    fname.setName("  lambda/mu/nu\t  ");
+    EXPECT_EQ("", fname.directory());
-    EXPECT_EQ("lambda/mu/", fname.directory());
+    EXPECT_EQ("", fname.name());
-    EXPECT_EQ("nu", fname.name());
     EXPECT_EQ("", fname.extension());
     EXPECT_EQ("", fname.extension());
+
+    // Check corner cases - where separators are present, but strings are
+    // absent.
+    fname.setName("/");
+    EXPECT_EQ("/", fname.directory());
+    EXPECT_EQ("", fname.name());
+    EXPECT_EQ("", fname.extension());
+
+    fname.setName(".");
+    EXPECT_EQ("", fname.directory());
+    EXPECT_EQ("", fname.name());
+    EXPECT_EQ(".", fname.extension());
+
+    fname.setName("/.");
+    EXPECT_EQ("/", fname.directory());
+    EXPECT_EQ("", fname.name());
+    EXPECT_EQ(".", fname.extension());
+
+    // Note that the space is a valid filename here; only leading and trailing
+    // spaces should be trimmed.
+    fname.setName("/ .");
+    EXPECT_EQ("/", fname.directory());
+    EXPECT_EQ(" ", fname.name());
+    EXPECT_EQ(".", fname.extension());
+
+    fname.setName(" / . ");
+    EXPECT_EQ("/", fname.directory());
+    EXPECT_EQ(" ", fname.name());
+    EXPECT_EQ(".", fname.extension());
 }
 }
 
 
 // Check that the expansion with a default works.
 // Check that the expansion with a default works.