package common import ( "archive/zip" "os" "path/filepath" "strings" "testing" ) func TestParseTxt(t *testing.T) { path := filepath.Join(t.TempDir(), "a.txt") if err := os.WriteFile(path, []byte("第一行\n\n## 标题\n第二行"), 0o644); err != nil { t.Fatal(err) } text, err := ParseFile(path) if err != nil { t.Fatal(err) } for _, part := range []string{"第一行", "## 标题", "第二行"} { if !strings.Contains(text, part) { t.Errorf("missing %q in %q", part, text) } } } func TestParseHtml(t *testing.T) { path := filepath.Join(t.TempDir(), "b.html") html := `
正文第一段。
正文第二段。
` if err := os.WriteFile(path, []byte(html), 0o644); err != nil { t.Fatal(err) } text, err := ParseFile(path) if err != nil { t.Fatal(err) } for _, part := range []string{"文档标题", "正文第一段", "正文第二段"} { if !strings.Contains(text, part) { t.Errorf("missing %q in %q", part, text) } } } func TestParseDocx(t *testing.T) { path := filepath.Join(t.TempDir(), "c.docx") f, err := os.Create(path) if err != nil { t.Fatal(err) } zw := zip.NewWriter(f) w, err := zw.Create("word/document.xml") if err != nil { t.Fatal(err) } xml := `