test_buffer.cpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #include "gtest/gtest.h"
  2. #include "lumacs/buffer.hpp" // Assuming this path is correct based on include setup
  3. // Test fixture for Buffer
  4. struct BufferTest : public ::testing::Test {
  5. lumacs::Buffer buffer;
  6. void SetUp() override {
  7. // Initialize buffer before each test
  8. buffer = lumacs::Buffer("test-buffer");
  9. }
  10. void TearDown() override {
  11. // Clean up after each test (if necessary)
  12. }
  13. };
  14. TEST_F(BufferTest, NewBufferIsEmpty) {
  15. ASSERT_EQ(buffer.line_count(), 1);
  16. ASSERT_TRUE(buffer.line(0).empty());
  17. }
  18. TEST_F(BufferTest, InsertText) {
  19. buffer.insert({0, 0}, "hello");
  20. ASSERT_EQ(buffer.line(0), "hello");
  21. ASSERT_EQ(buffer.line_count(), 1);
  22. }
  23. TEST_F(BufferTest, InsertNewline) {
  24. buffer.insert({0, 0}, "hello");
  25. buffer.insert_newline({0, 5});
  26. ASSERT_EQ(buffer.line(0), "hello");
  27. ASSERT_EQ(buffer.line(1), "");
  28. ASSERT_EQ(buffer.line_count(), 2);
  29. }
  30. TEST_F(BufferTest, EraseText) {
  31. buffer.insert({0, 0}, "world");
  32. buffer.erase(lumacs::Range{{0, 0}, {0, 5}});
  33. ASSERT_TRUE(buffer.line(0).empty());
  34. }
  35. TEST_F(BufferTest, IsModified) {
  36. buffer.insert({0, 0}, "change");
  37. ASSERT_TRUE(buffer.is_modified());
  38. }