index_writer_tests.c (2267B)
1 #include "writer/index_writer.h" 2 3 #include <stdio.h> 4 #include <stdlib.h> 5 #include <string.h> 6 7 #include "git/repo.h" 8 #include "gout_index.h" 9 #include "test_utils.h" 10 #include "utest.h" 11 12 UTEST(index_writer, html) { 13 char* buf = NULL; 14 size_t size = 0; 15 FILE* out = open_memstream(&buf, &size); 16 17 IndexWriter* writer = indexwriter_create(kIndexWriterTypeHtml, out); 18 ASSERT_NE(NULL, writer); 19 indexwriter_set_me_url(writer, "https://me.example.com"); 20 21 GitRepo repo = {.short_name = "test-repo", 22 .description = "test-desc", 23 .owner = "test-owner"}; 24 25 indexwriter_begin(writer); 26 indexwriter_add_repo(writer, &repo); 27 indexwriter_end(writer); 28 indexwriter_free(writer); 29 fclose(out); 30 31 ASSERT_NE(NULL, buf); 32 EXPECT_STR_SEQUENCE(buf, "Repositories", "rel=\"me\"", "test-repo", 33 "test-desc", "test-owner"); 34 free(buf); 35 } 36 37 UTEST(index_writer, gopher) { 38 char* buf = NULL; 39 size_t size = 0; 40 FILE* out = open_memstream(&buf, &size); 41 42 IndexWriter* writer = indexwriter_create(kIndexWriterTypeGopher, out); 43 ASSERT_NE(NULL, writer); 44 /* Should not crash even though Gopher doesn't support me_url */ 45 indexwriter_set_me_url(writer, "https://me.example.com"); 46 47 GitRepo repo = {.short_name = "test-repo", 48 .description = "test-desc", 49 .owner = "test-owner"}; 50 51 indexwriter_begin(writer); 52 indexwriter_add_repo(writer, &repo); 53 indexwriter_end(writer); 54 indexwriter_free(writer); 55 fclose(out); 56 57 ASSERT_NE(NULL, buf); 58 EXPECT_STR_SEQUENCE(buf, "Repositories", "test-repo", "test-desc"); 59 free(buf); 60 } 61 62 UTEST(index_writer, gemini) { 63 char* buf = NULL; 64 size_t size = 0; 65 FILE* out = open_memstream(&buf, &size); 66 67 IndexWriter* writer = indexwriter_create(kIndexWriterTypeGemini, out); 68 ASSERT_NE(NULL, writer); 69 indexwriter_set_me_url(writer, "https://me.example.com"); 70 71 GitRepo repo = {.short_name = "test-repo", 72 .description = "test-desc", 73 .owner = "test-owner"}; 74 75 indexwriter_begin(writer); 76 indexwriter_add_repo(writer, &repo); 77 indexwriter_end(writer); 78 indexwriter_free(writer); 79 fclose(out); 80 81 ASSERT_NE(NULL, buf); 82 EXPECT_STR_SEQUENCE(buf, "Repositories", "test-repo", "test-desc"); 83 free(buf); 84 }