gout

A static git page generator
git clone https://git.bracken.jp/gout.git
Log | Files | Refs | README | LICENSE

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 }