Skip to content

Commit 8de8ddf

Browse files
committed
nvim: add BufferExtmark testcases
Signed-off-by: Koichi Shiraishi <[email protected]>
1 parent f3ef3e8 commit 8de8ddf

File tree

1 file changed

+155
-50
lines changed

1 file changed

+155
-50
lines changed

nvim/api_test.go

Lines changed: 155 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -3655,61 +3655,166 @@ func testContext(v *Nvim) func(*testing.T) {
36553655

36563656
func testExtmarks(v *Nvim) func(*testing.T) {
36573657
return func(t *testing.T) {
3658-
clearBuffer(t, v, 0) // clear curret buffer text
3658+
t.Run("Nvim", func(t *testing.T) {
3659+
// setup buffer lines
3660+
lines := [][]byte{
3661+
[]byte("hello"),
3662+
[]byte("world"),
3663+
}
3664+
if err := v.SetBufferLines(Buffer(0), 0, -1, true, lines); err != nil {
3665+
t.Fatal(err)
3666+
}
36593667

3660-
lines := [][]byte{[]byte("hello"), []byte("world")}
3661-
if err := v.SetBufferLines(Buffer(0), 0, -1, true, lines); err != nil {
3662-
t.Fatal(err)
3663-
}
3668+
// create namespace for test extmarks
3669+
const extMarkName = "test_extmarks"
3670+
nsID, err := v.CreateNamespace(extMarkName)
3671+
if err != nil {
3672+
t.Fatal(err)
3673+
}
36643674

3665-
nsID, err := v.CreateNamespace("test_extmarks")
3666-
if err != nil {
3667-
t.Fatal(err)
3668-
}
3669-
const (
3670-
extMarkID = 1
3671-
wantLine = 1
3672-
wantCol = 3
3673-
)
3674-
gotExtMarkID, err := v.SetBufferExtmark(Buffer(0), nsID, wantLine, wantCol, make(map[string]interface{}))
3675-
if err != nil {
3676-
t.Fatal(err)
3677-
}
3678-
if gotExtMarkID != extMarkID {
3679-
t.Fatalf("got %d extMarkID but want %d", gotExtMarkID, extMarkID)
3680-
}
3675+
const (
3676+
wantExtMarkID = 1
3677+
wantLine = 1
3678+
wantCol = 3
3679+
)
3680+
gotExtMarkID, err := v.SetBufferExtmark(Buffer(0), nsID, wantLine, wantCol, make(map[string]interface{}))
3681+
if err != nil {
3682+
t.Fatal(err)
3683+
}
3684+
if gotExtMarkID != wantExtMarkID {
3685+
t.Fatalf("got %d extMarkID but want %d", gotExtMarkID, wantExtMarkID)
3686+
}
36813687

3682-
extmarks, err := v.BufferExtmarks(Buffer(0), nsID, 0, -1, make(map[string]interface{}))
3683-
if err != nil {
3684-
t.Fatal(err)
3685-
}
3686-
if len(extmarks) > 1 {
3687-
t.Fatalf("expected extmarks length to 1 but %d", len(extmarks))
3688-
}
3689-
if extmarks[0].ID != gotExtMarkID {
3690-
t.Fatalf("got %d extMarkID but want %d", extmarks[0].ID, extMarkID)
3691-
}
3692-
if extmarks[0].Row != wantLine {
3693-
t.Fatalf("got %d extmarks Row but want %d", extmarks[0].Row, wantLine)
3694-
}
3695-
if extmarks[0].Col != wantCol {
3696-
t.Fatalf("got %d extmarks Col but want %d", extmarks[0].Col, wantCol)
3697-
}
3688+
extmarks, err := v.BufferExtmarks(Buffer(0), nsID, 0, -1, make(map[string]interface{}))
3689+
if err != nil {
3690+
t.Fatal(err)
3691+
}
3692+
if len(extmarks) > 1 {
3693+
t.Fatalf("expected extmarks length to 1 but got %d", len(extmarks))
3694+
}
3695+
if extmarks[0].ID != gotExtMarkID {
3696+
t.Fatalf("got %d extMarkID but want %d", extmarks[0].ID, wantExtMarkID)
3697+
}
3698+
if extmarks[0].Row != wantLine {
3699+
t.Fatalf("got %d extmarks Row but want %d", extmarks[0].Row, wantLine)
3700+
}
3701+
if extmarks[0].Col != wantCol {
3702+
t.Fatalf("got %d extmarks Col but want %d", extmarks[0].Col, wantCol)
3703+
}
36983704

3699-
pos, err := v.BufferExtmarkByID(Buffer(0), nsID, gotExtMarkID, make(map[string]interface{}))
3700-
if err != nil {
3701-
t.Fatal(err)
3702-
}
3703-
if pos[0] != wantLine {
3704-
t.Fatalf("got %d extMark line but want %d", pos[0], wantLine)
3705-
}
3706-
if pos[1] != wantCol {
3707-
t.Fatalf("got %d extMark col but want %d", pos[1], wantCol)
3708-
}
3705+
pos, err := v.BufferExtmarkByID(Buffer(0), nsID, gotExtMarkID, make(map[string]interface{}))
3706+
if err != nil {
3707+
t.Fatal(err)
3708+
}
3709+
if pos[0] != wantLine {
3710+
t.Fatalf("got %d extMark line but want %d", pos[0], wantLine)
3711+
}
3712+
if pos[1] != wantCol {
3713+
t.Fatalf("got %d extMark col but want %d", pos[1], wantCol)
3714+
}
37093715

3710-
if err := v.ClearBufferNamespace(Buffer(0), nsID, 0, -1); err != nil {
3711-
t.Fatal(err)
3712-
}
3716+
deleted, err := v.DeleteBufferExtmark(Buffer(0), nsID, gotExtMarkID)
3717+
if err != nil {
3718+
t.Fatal(err)
3719+
}
3720+
if !deleted {
3721+
t.Fatalf("expected deleted but got %t", deleted)
3722+
}
3723+
3724+
if err := v.ClearBufferNamespace(Buffer(0), nsID, 0, -1); err != nil {
3725+
t.Fatal(err)
3726+
}
3727+
3728+
t.Cleanup(func() {
3729+
clearBuffer(t, v, Buffer(0)) // clear curret buffer text
3730+
})
3731+
})
3732+
3733+
t.Run("Batch", func(t *testing.T) {
3734+
b := v.NewBatch()
3735+
3736+
// setup buffer lines
3737+
lines := [][]byte{
3738+
[]byte("hello"),
3739+
[]byte("world"),
3740+
}
3741+
b.SetBufferLines(Buffer(0), 0, -1, true, lines)
3742+
if err := b.Execute(); err != nil {
3743+
t.Fatal(err)
3744+
}
3745+
3746+
// create namespace for test extmarks
3747+
const extMarkName = "test_extmarks"
3748+
var nsID int
3749+
b.CreateNamespace(extMarkName, &nsID)
3750+
if err := b.Execute(); err != nil {
3751+
t.Fatal(err)
3752+
}
3753+
3754+
const (
3755+
wantExtMarkID = 2
3756+
wantLine = 1
3757+
wantCol = 3
3758+
)
3759+
var gotExtMarkID int
3760+
b.SetBufferExtmark(Buffer(0), nsID, wantLine, wantCol, make(map[string]interface{}), &gotExtMarkID)
3761+
if err := b.Execute(); err != nil {
3762+
t.Fatal(err)
3763+
}
3764+
if gotExtMarkID != wantExtMarkID {
3765+
t.Fatalf("got %d extMarkID but want %d", gotExtMarkID, wantExtMarkID)
3766+
}
3767+
3768+
var extmarks []ExtMark
3769+
b.BufferExtmarks(Buffer(0), nsID, 0, -1, make(map[string]interface{}), &extmarks)
3770+
if err := b.Execute(); err != nil {
3771+
t.Fatal(err)
3772+
}
3773+
3774+
if len(extmarks) > 1 {
3775+
t.Fatalf("expected extmarks length to 1 but got %d", len(extmarks))
3776+
}
3777+
if extmarks[0].ID != gotExtMarkID {
3778+
t.Fatalf("got %d extMarkID but want %d", extmarks[0].ID, wantExtMarkID)
3779+
}
3780+
if extmarks[0].Row != wantLine {
3781+
t.Fatalf("got %d extmarks Row but want %d", extmarks[0].Row, wantLine)
3782+
}
3783+
if extmarks[0].Col != wantCol {
3784+
t.Fatalf("got %d extmarks Col but want %d", extmarks[0].Col, wantCol)
3785+
}
3786+
3787+
var pos []int
3788+
b.BufferExtmarkByID(Buffer(0), nsID, gotExtMarkID, make(map[string]interface{}), &pos)
3789+
if err := b.Execute(); err != nil {
3790+
t.Fatal(err)
3791+
}
3792+
3793+
if pos[0] != wantLine {
3794+
t.Fatalf("got %d extMark line but want %d", pos[0], wantLine)
3795+
}
3796+
if pos[1] != wantCol {
3797+
t.Fatalf("got %d extMark col but want %d", pos[1], wantCol)
3798+
}
3799+
3800+
var deleted bool
3801+
b.DeleteBufferExtmark(Buffer(0), nsID, gotExtMarkID, &deleted)
3802+
if err := b.Execute(); err != nil {
3803+
t.Fatal(err)
3804+
}
3805+
if !deleted {
3806+
t.Fatalf("expected deleted but got %t", deleted)
3807+
}
3808+
3809+
b.ClearBufferNamespace(Buffer(0), nsID, 0, -1)
3810+
if err := b.Execute(); err != nil {
3811+
t.Fatal(err)
3812+
}
3813+
3814+
t.Cleanup(func() {
3815+
clearBuffer(t, v, Buffer(0)) // clear curret buffer text
3816+
})
3817+
})
37133818
}
37143819
}
37153820

0 commit comments

Comments
 (0)