diff options
author | tjpcc <tjp@ctrl-c.club> | 2023-08-25 14:52:36 -0600 |
---|---|---|
committer | tjpcc <tjp@ctrl-c.club> | 2023-08-26 09:26:23 -0600 |
commit | 4c4dba9ba1e91ab44fcd21c50c6df62a19cfd9e1 (patch) | |
tree | 56e925d5453a0b72edbae5f3f55657d353daab0f /gemini/gemtext/sub_test.go | |
parent | ff57f73c72dc75cc19e015a1b6e98c6203511c44 (diff) |
gemtext -> atom converter
* add GemsubToAtom converter function
* add Server.Handler method and implementations
fixes #1
Diffstat (limited to 'gemini/gemtext/sub_test.go')
-rw-r--r-- | gemini/gemtext/sub_test.go | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/gemini/gemtext/sub_test.go b/gemini/gemtext/sub_test.go new file mode 100644 index 0000000..8bba682 --- /dev/null +++ b/gemini/gemtext/sub_test.go @@ -0,0 +1,60 @@ +package gemtext + +import ( + "bytes" + "net/url" + "testing" +) + +func TestGemsubToAtom(t *testing.T) { + tests := []struct { + url string + input string + output string + }{ + { + url: "gemini://sombodys.site/a/page", + input: ` +# This is a gemlog page + + +## with a subtitle after empty lines + +=> ./first-post.gmi 2023-08-25 - This is my first post +`[1:], + output: ` +<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> + <id>gemini://sombodys.site/a/page</id> + <link href="gemini://sombodys.site/a/page"/> + <title>This is a gemlog page</title> + <subtitle>with a subtitle after empty lines</subtitle> + <updated>2023-08-25T12:00:00Z</updated> + <entry> + <id>./first-post.gmi</id> + <link rel="alternate" href="./first-post.gmi"/> + <title>This is my first post</title> + <updated>2023-08-25T12:00:00Z</updated> + </entry> +</feed> +`[1:], + }, + } + + for _, test := range tests { + t.Run(test.url, func(t *testing.T) { + doc, err := Parse(bytes.NewBufferString(test.input)) + if err != nil { + t.Fatal(err) + } + loc, err := url.Parse(test.url) + if err != nil { + t.Fatal(err) + } + xml := GemsubToAtom(doc, *loc) + if xml != test.output { + t.Fatal("mismatched output") + } + }) + } +} |