static bool buf_text_eq(char* str) {
for (unsigned i = 0; i < buf_end(&TestBuf); i++) {
- printf("'%c'", buf_get(&TestBuf, i));
+ //printf("'%c'", buf_get(&TestBuf, i));
if ((Rune)*(str++) != buf_get(&TestBuf, i)) {
- printf("\n");
+ //printf("\n");
return false;
}
}
- printf("\n");
+ //printf("\n");
return true;
}
CHECK(buf.errfn == (void*)0x12345678);
CHECK(buf.nlines == 0);
}
-
+
TEST(buf_init shoud free old buffer and reinitialize) {
Buf buf = {0};
buf_init(&buf, onerror);
CHECK(buf.errfn == (void*)0x12345678);
CHECK(buf.nlines == 0);
}
-
+
/* Loading
*************************************************************************/
TEST(buf_load should load a UTF-8 file from disk) {
CHECK(TestBuf.nlines == 998);
CHECK(!strcmp(TestBuf.path, "testdocs/lorem.txt"));
}
-
+
TEST(buf_load should load a non UTF-8 file from disk) {
buf_init(&TestBuf, NULL);
size_t pos = buf_load(&TestBuf, "testdocs/waf");
CHECK(TestBuf.nlines == 169);
CHECK(!strcmp(TestBuf.path, "testdocs/waf"));
}
-
+
TEST(buf_load should load a file from disk and jump to a specific line) {
buf_init(&TestBuf, NULL);
size_t pos = buf_load(&TestBuf, "testdocs/lorem.txt:2");
CHECK(TestBuf.nlines == 998);
CHECK(!strcmp(TestBuf.path, "testdocs/lorem.txt"));
}
-
+
TEST(buf_load should remove ./ from file path) {
buf_init(&TestBuf, NULL);
size_t pos = buf_load(&TestBuf, "./testdocs/lorem.txt");
CHECK(TestBuf.nlines == 998);
CHECK(!strcmp(TestBuf.path, "testdocs/lorem.txt"));
}
-
+
TEST(buf_reload should reload the file from disk) {
buf_init(&TestBuf, NULL);
buf_load(&TestBuf, "testdocs/waf");
CHECK(TestBuf.nlines == 998);
CHECK(!strcmp(TestBuf.path, "testdocs/lorem.txt"));
}
-
+
/* Saving
*************************************************************************/
TEST(buf_save should save a UTF-8 file to disk) {
buf_save(&TestBuf);
CHECK(TestBuf.modified == false);
}
-
+
TEST(buf_save should save a non UTF-8 file to disk) {
buf_init(&TestBuf, NULL);
buf_load(&TestBuf, "testdocs/waf");
buf_save(&TestBuf);
CHECK(TestBuf.modified == false);
}
-
+
TEST(buf_save should save a file to disk with unix line endings) {
buf_init(&TestBuf, NULL);
buf_load(&TestBuf, "testdocs/lf.txt");
buf_save(&TestBuf);
CHECK(TestBuf.modified == false);
}
-
+
TEST(buf_save should save a file to disk with dos line endings) {
buf_init(&TestBuf, NULL);
buf_load(&TestBuf, "testdocs/crlf.txt");
buf_save(&TestBuf);
CHECK(TestBuf.modified == false);
}
-
+
TEST(buf_save should make sure unix file ends witn newline) {
buf_init(&TestBuf, NULL);
buf_load(&TestBuf, "testdocs/lf.txt");
CHECK(TestBuf.modified == true);
CHECK(TestBuf.redo == NULL);
}
-
+
TEST(buf_insert should expand tabs) {
set_buffer_text("");
TestBuf.expand_tabs = true;
CHECK(TestBuf.modified == true);
CHECK(TestBuf.redo == NULL);
}
-
+
TEST(buf_insert should copy indent) {
set_buffer_text(" ");
TestBuf.copy_indent = true;
CHECK(TestBuf.modified == true);
CHECK(TestBuf.redo == NULL);
}
-
+
TEST(buf_delete should delete second char) {
set_buffer_text("abc");
buf_delete(&TestBuf, 1, 2);
CHECK(TestBuf.modified == true);
CHECK(TestBuf.redo == NULL);
}
-
+
TEST(buf_delete should delete third char) {
set_buffer_text("abc");
buf_delete(&TestBuf, 2, 3);
CHECK(TestBuf.redo != NULL);
CHECK(TestBuf.undo == NULL);
}
-
+
TEST(buf_undo should undo a delete) {
Sel sel;
set_buffer_text("a");