Skip to content

Commit 1b70386

Browse files
committed
test: add more tests
All tests under c-api directory have been transpiled, except for user_data related ones.
1 parent 04c4275 commit 1b70386

File tree

13 files changed

+1083
-304
lines changed

13 files changed

+1083
-304
lines changed

.idea/inspectionProfiles/Project_Default.xml

Lines changed: 20 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

builder_test.go

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1 @@
11
package lolhtml_test
2-
3-
import (
4-
"testing"
5-
6-
"github.com/coolspring8/go-lolhtml"
7-
)
8-
9-
func TestRewriterBuilderMemoryLimiting(t *testing.T) {
10-
w, err := lolhtml.NewWriter(
11-
nil,
12-
&lolhtml.Handlers{
13-
ElementContentHandler: []lolhtml.ElementContentHandler{
14-
{
15-
"span",
16-
nil,
17-
nil,
18-
nil,
19-
},
20-
},
21-
},
22-
lolhtml.Config{
23-
Encoding: "utf-8",
24-
Memory: &lolhtml.MemorySettings{
25-
PreallocatedParsingBufferSize: 0,
26-
MaxAllowedMemoryUsage: 5,
27-
},
28-
Strict: true,
29-
},
30-
)
31-
if err != nil {
32-
t.Error(err)
33-
}
34-
_, err = w.Write([]byte("<span alt='aaaaa"))
35-
if err == nil {
36-
t.FailNow()
37-
}
38-
if err.Error() != "The memory limit has been exceeded." {
39-
t.Error(err)
40-
}
41-
w.Free()
42-
}

comment.go

Lines changed: 29 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -28,70 +28,57 @@ func (c *Comment) SetText(text string) error {
2828
return getError()
2929
}
3030

31-
func (c *Comment) InsertBeforeAsText(content string) error {
31+
type commentAlter int
32+
33+
const (
34+
commentInsertBefore commentAlter = iota
35+
commentInsertAfter
36+
commentReplace
37+
)
38+
39+
func (c *Comment) alter(content string, alter commentAlter, isHtml bool) error {
3240
contentC := C.CString(content)
3341
defer C.free(unsafe.Pointer(contentC))
3442
contentLen := len(content)
35-
errCode := C.lol_html_comment_before((*C.lol_html_comment_t)(c), contentC, C.size_t(contentLen), false)
43+
var errCode C.int
44+
switch alter {
45+
case commentInsertBefore:
46+
errCode = C.lol_html_comment_before((*C.lol_html_comment_t)(c), contentC, C.size_t(contentLen), C.bool(isHtml))
47+
case commentInsertAfter:
48+
errCode = C.lol_html_comment_after((*C.lol_html_comment_t)(c), contentC, C.size_t(contentLen), C.bool(isHtml))
49+
case commentReplace:
50+
errCode = C.lol_html_comment_replace((*C.lol_html_comment_t)(c), contentC, C.size_t(contentLen), C.bool(isHtml))
51+
default:
52+
panic("not implemented")
53+
}
3654
if errCode == 0 {
3755
return nil
3856
}
3957
return getError()
4058
}
4159

60+
func (c *Comment) InsertBeforeAsText(content string) error {
61+
return c.alter(content, commentInsertAfter, false)
62+
}
63+
4264
func (c *Comment) InsertBeforeAsHtml(content string) error {
43-
contentC := C.CString(content)
44-
defer C.free(unsafe.Pointer(contentC))
45-
contentLen := len(content)
46-
errCode := C.lol_html_comment_before((*C.lol_html_comment_t)(c), contentC, C.size_t(contentLen), true)
47-
if errCode == 0 {
48-
return nil
49-
}
50-
return getError()
65+
return c.alter(content, commentInsertBefore, true)
5166
}
5267

5368
func (c *Comment) InsertAfterAsText(content string) error {
54-
contentC := C.CString(content)
55-
defer C.free(unsafe.Pointer(contentC))
56-
contentLen := len(content)
57-
errCode := C.lol_html_comment_after((*C.lol_html_comment_t)(c), contentC, C.size_t(contentLen), false)
58-
if errCode == 0 {
59-
return nil
60-
}
61-
return getError()
69+
return c.alter(content, commentInsertAfter, false)
6270
}
6371

6472
func (c *Comment) InsertAfterAsHtml(content string) error {
65-
contentC := C.CString(content)
66-
defer C.free(unsafe.Pointer(contentC))
67-
contentLen := len(content)
68-
errCode := C.lol_html_comment_after((*C.lol_html_comment_t)(c), contentC, C.size_t(contentLen), true)
69-
if errCode == 0 {
70-
return nil
71-
}
72-
return getError()
73+
return c.alter(content, commentInsertAfter, true)
7374
}
7475

7576
func (c *Comment) ReplaceAsText(content string) error {
76-
contentC := C.CString(content)
77-
defer C.free(unsafe.Pointer(contentC))
78-
contentLen := len(content)
79-
errCode := C.lol_html_comment_replace((*C.lol_html_comment_t)(c), contentC, C.size_t(contentLen), false)
80-
if errCode == 0 {
81-
return nil
82-
}
83-
return getError()
77+
return c.alter(content, commentReplace, false)
8478
}
8579

8680
func (c *Comment) ReplaceAsHtml(content string) error {
87-
contentC := C.CString(content)
88-
defer C.free(unsafe.Pointer(contentC))
89-
contentLen := len(content)
90-
errCode := C.lol_html_comment_replace((*C.lol_html_comment_t)(c), contentC, C.size_t(contentLen), true)
91-
if errCode == 0 {
92-
return nil
93-
}
94-
return getError()
81+
return c.alter(content, commentReplace, true)
9582
}
9683

9784
func (c *Comment) Remove() {

0 commit comments

Comments
 (0)