From 2f4cb88d5c60f725323739300bb49dfa8923e7d5 Mon Sep 17 00:00:00 2001 From: Albert Cervin Date: Wed, 2 Nov 2022 22:20:04 +0100 Subject: =?UTF-8?q?=F0=9F=8E=89=20And=20so=20it=20begins?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/buffer.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 test/buffer.c (limited to 'test/buffer.c') diff --git a/test/buffer.c b/test/buffer.c new file mode 100644 index 0000000..d7d9b0b --- /dev/null +++ b/test/buffer.c @@ -0,0 +1,46 @@ +#include "assert.h" +#include "test.h" + +#include "buffer.h" + +#include + +void test_move() { + struct buffer b = buffer_create("test-buffer"); + ASSERT(b.dot_col == 0 && b.dot_line == 0, + "Expected dot to be at buffer start"); + + // make sure we cannot move now + buffer_backward_char(&b); + buffer_backward_line(&b); + ASSERT(b.dot_col == 0 && b.dot_line == 0, + "Expected to not be able to move backward in empty buffer"); + + buffer_forward_char(&b); + buffer_forward_line(&b); + ASSERT(b.dot_col == 0 && b.dot_line == 0, + "Expected to not be able to move forward in empty buffer"); + + // add some text and try again + const char *txt = "testing movement"; + int lineindex = buffer_add_text(&b, (uint8_t *)txt, strlen(txt)); + ASSERT(lineindex + 1 == 1, "Expected buffer to have one line"); + + buffer_beginning_of_line(&b); + buffer_forward_char(&b); + ASSERT(b.dot_col == 1 && b.dot_line == 0, + "Expected to be able to move forward by one char"); + + // now we have two lines + const char *txt2 = "\n"; + int lineindex2 = buffer_add_text(&b, (uint8_t *)txt2, strlen(txt2)); + ASSERT(lineindex2 + 1 == 2, "Expected buffer to have two lines"); + buffer_backward_line(&b); + buffer_beginning_of_line(&b); + buffer_backward_char(&b); + ASSERT( + b.dot_col == 0 && b.dot_line == 0, + "Expected to not be able to move backwards when at beginning of buffer"); +} + +void run_buffer_tests() { run_test(test_move); } -- cgit v1.2.3