gout

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

repo_index_tests.c (1580B)


      1 #include "writer/gopher/repo_index.h"
      2 
      3 #include <stdio.h>
      4 #include <stdlib.h>
      5 #include <string.h>
      6 
      7 #include "git/repo.h"
      8 #include "test_utils.h"
      9 #include "utest.h"
     10 
     11 UTEST(gopher_repo_index, basic) {
     12   char* buf = NULL;
     13   size_t size = 0;
     14   FILE* out = open_memstream(&buf, &size);
     15 
     16   GopherRepoIndex* index = gopher_repoindex_create(out);
     17   ASSERT_NE(NULL, index);
     18 
     19   GitRepo r1 = {
     20       .short_name = "repo1",
     21       .description = "Desc 1",
     22       .owner = "Owner 1",
     23       .last_commit_time = 1702031400,
     24   };
     25 
     26   gopher_repoindex_begin(index);
     27   gopher_repoindex_add_repo(index, &r1);
     28   gopher_repoindex_end(index);
     29   gopher_repoindex_free(index);
     30   fclose(out);
     31 
     32   ASSERT_NE(NULL, buf);
     33 
     34   /* Verify Header */
     35   EXPECT_STR_SEQUENCE(buf, "Repositories", "Name", "Description",
     36                       "Last commit");
     37 
     38   /* Verify Repo Row */
     39   EXPECT_STR_SEQUENCE(buf, "[1|", "repo1", "Desc 1", "2023-12-08 10:30",
     40                       "|repo1/log.gph");
     41 
     42   free(buf);
     43 }
     44 
     45 UTEST(gopher_repo_index, multiple) {
     46   char* buf = NULL;
     47   size_t size = 0;
     48   FILE* out = open_memstream(&buf, &size);
     49 
     50   GopherRepoIndex* index = gopher_repoindex_create(out);
     51 
     52   GitRepo r1 = {.short_name = "a", .description = "d1", .owner = "o1"};
     53   GitRepo r2 = {.short_name = "b", .description = "d2", .owner = "o2"};
     54 
     55   gopher_repoindex_begin(index);
     56   gopher_repoindex_add_repo(index, &r1);
     57   gopher_repoindex_add_repo(index, &r2);
     58   gopher_repoindex_end(index);
     59   gopher_repoindex_free(index);
     60   fclose(out);
     61 
     62   ASSERT_NE(NULL, buf);
     63   EXPECT_STR_SEQUENCE(buf, "a", "d1", "b", "d2");
     64 
     65   free(buf);
     66 }