Преглед на файлове

AK: StringView::lines() should keep empty lines

Andreas Kling преди 5 години
родител
ревизия
8f80879676
променени са 2 файла, в които са добавени 9 реда и са изтрити 2 реда
  1. 1 2
      AK/StringView.cpp
  2. 8 0
      AK/Tests/TestStringView.cpp

+ 1 - 2
AK/StringView.cpp

@@ -68,8 +68,7 @@ Vector<StringView> StringView::lines(bool consider_cr) const
         }
         if (split_view) {
             ssize_t sublen = i - substart;
-            if (sublen != 0)
-                v.append(substring_view(substart, sublen));
+            v.append(substring_view(substart, sublen));
             substart = i + 1;
         }
         split_view = false;

+ 8 - 0
AK/Tests/TestStringView.cpp

@@ -61,6 +61,14 @@ TEST_CASE(lines)
     EXPECT(test_string_vector.at(1) == String("Hello there"));
     EXPECT(test_string_vector.at(2) == String("Hello there"));
     EXPECT(test_string_vector.at(3) == String("```"));
+
+    test_string = "\n\n\n";
+    test_string_view = test_string.view();
+    test_string_vector = test_string_view.lines();
+    EXPECT_EQ(test_string_vector.size(), 3);
+    EXPECT_EQ(test_string_vector.at(0).is_empty(), true);
+    EXPECT_EQ(test_string_vector.at(1).is_empty(), true);
+    EXPECT_EQ(test_string_vector.at(2).is_empty(), true);
 }
 
 TEST_MAIN(StringView)