@@ -539,85 +539,191 @@ func testTabpage(v *Nvim) func(*testing.T) {
539
539
func testLines (v * Nvim ) func (* testing.T ) {
540
540
return func (t * testing.T ) {
541
541
t .Run ("Nvim" , func (t * testing.T ) {
542
- buf , err := v .CurrentBuffer ()
543
- if err != nil {
544
- t .Fatal (err )
545
- }
542
+ t .Run ("BufferLines" , func (t * testing.T ) {
543
+ buf , err := v .CurrentBuffer ()
544
+ if err != nil {
545
+ t .Fatal (err )
546
+ }
547
+ defer clearBuffer (t , v , buf ) // clear buffer after run sub-test.
546
548
547
- lines := [][]byte {[]byte ("hello" ), []byte ("world" )}
548
- if err := v .SetBufferLines (buf , 0 , - 1 , true , lines ); err != nil {
549
- t .Fatal (err )
550
- }
551
- lines2 , err := v .BufferLines (buf , 0 , - 1 , true )
552
- if err != nil {
553
- t .Fatal (err )
554
- }
555
- if ! reflect .DeepEqual (lines2 , lines ) {
556
- t .Fatalf ("lines = %+v, want %+v" , lines2 , lines )
557
- }
549
+ lines := [][]byte {[]byte ("hello" ), []byte ("world" )}
550
+ if err := v .SetBufferLines (buf , 0 , - 1 , true , lines ); err != nil {
551
+ t .Fatal (err )
552
+ }
553
+ lines2 , err := v .BufferLines (buf , 0 , - 1 , true )
554
+ if err != nil {
555
+ t .Fatal (err )
556
+ }
557
+ if ! reflect .DeepEqual (lines2 , lines ) {
558
+ t .Fatalf ("lines = %+v, want %+v" , lines2 , lines )
559
+ }
558
560
559
- const wantCount = 2
560
- count , err := v .BufferLineCount (buf )
561
- if err != nil {
562
- t .Fatal (err )
563
- }
564
- if count != wantCount {
565
- t .Fatalf ("got count %d but want %d" , count , wantCount )
566
- }
561
+ const wantCount = 2
562
+ count , err := v .BufferLineCount (buf )
563
+ if err != nil {
564
+ t .Fatal (err )
565
+ }
566
+ if count != wantCount {
567
+ t .Fatalf ("got count %d but want %d" , count , wantCount )
568
+ }
567
569
568
- const wantOffset = 12 // [][]byte{[]byte("hello"), []byte("\n"), []byte("world"), []byte("\n")}
569
- offset , err := v .BufferOffset (buf , count )
570
- if err != nil {
571
- t .Fatal (err )
572
- }
573
- if offset != wantOffset {
574
- t .Fatalf ("got offset %d but want %d" , offset , wantOffset )
575
- }
570
+ const wantOffset = 12 // [][]byte{[]byte("hello"), []byte("\n"), []byte("world"), []byte("\n")}
571
+ offset , err := v .BufferOffset (buf , count )
572
+ if err != nil {
573
+ t .Fatal (err )
574
+ }
575
+ if offset != wantOffset {
576
+ t .Fatalf ("got offset %d but want %d" , offset , wantOffset )
577
+ }
578
+ })
579
+
580
+ t .Run ("SetBufferText" , func (t * testing.T ) {
581
+ buf , err := v .CurrentBuffer ()
582
+ if err != nil {
583
+ t .Fatal (err )
584
+ }
585
+ defer clearBuffer (t , v , buf ) // clear buffer after run sub-test.
586
+
587
+ // sets test buffer text.
588
+ lines := [][]byte {[]byte ("Vim is the" ), []byte ("Nvim-fork? focused on extensibility and usability" )}
589
+ if err := v .SetBufferLines (buf , 0 , - 1 , true , lines ); err != nil {
590
+ t .Fatal (err )
591
+ }
592
+
593
+ // Replace `Vim is the` to `Neovim is the`
594
+ if err := v .SetBufferText (buf , 0 , 0 , 0 , 3 , [][]byte {[]byte ("Neovim" )}); err != nil {
595
+ t .Fatal (err )
596
+ }
597
+ // Replace `Nvim-fork?` to `Vim-fork`
598
+ if err := v .SetBufferText (buf , 1 , 0 , 1 , 10 , [][]byte {[]byte ("Vim-fork" )}); err != nil {
599
+ t .Fatal (err )
600
+ }
601
+
602
+ want := [2 ][]byte {
603
+ []byte ("Neovim is the" ),
604
+ []byte ("Vim-fork focused on extensibility and usability" ),
605
+ }
606
+ got , err := v .BufferLines (buf , 0 , - 1 , true )
607
+ if err != nil {
608
+ t .Fatal (err )
609
+ }
610
+
611
+ // assert buffer lines count.
612
+ const wantCount = 2
613
+ if len (got ) != wantCount {
614
+ t .Fatalf ("expected buffer lines rows is %d: got %d" , wantCount , len (got ))
615
+ }
616
+
617
+ // assert row 1 buffer text.
618
+ if ! bytes .EqualFold (want [0 ], got [0 ]) {
619
+ t .Fatalf ("row 1 is not equal: want: %q, got: %q" , string (want [0 ]), string (got [0 ]))
620
+ }
621
+
622
+ // assert row 2 buffer text.
623
+ if ! bytes .EqualFold (want [1 ], got [1 ]) {
624
+ t .Fatalf ("row 2 is not equal: want: %q, got: %q" , string (want [1 ]), string (got [1 ]))
625
+ }
626
+ })
576
627
})
577
628
578
629
t .Run ("Batch" , func (t * testing.T ) {
579
- b := v .NewBatch ()
630
+ t .Run ("BufferLines" , func (t * testing.T ) {
631
+ b := v .NewBatch ()
580
632
581
- var buf Buffer
582
- b .CurrentBuffer (& buf )
583
- if err := b .Execute (); err != nil {
584
- t .Fatal (err )
585
- }
633
+ var buf Buffer
634
+ b .CurrentBuffer (& buf )
635
+ if err := b .Execute (); err != nil {
636
+ t .Fatal (err )
637
+ }
638
+ defer clearBuffer (t , v , buf ) // clear buffer after run sub-test.
586
639
587
- lines := [][]byte {[]byte ("hello" ), []byte ("world" )}
588
- b .SetBufferLines (buf , 0 , - 1 , true , lines )
589
- if err := b .Execute (); err != nil {
590
- t .Fatal (err )
591
- }
640
+ lines := [][]byte {[]byte ("hello" ), []byte ("world" )}
641
+ b .SetBufferLines (buf , 0 , - 1 , true , lines )
642
+ if err := b .Execute (); err != nil {
643
+ t .Fatal (err )
644
+ }
592
645
593
- var lines2 [][]byte
594
- b .BufferLines (buf , 0 , - 1 , true , & lines2 )
595
- if err := b .Execute (); err != nil {
596
- t .Fatal (err )
597
- }
598
- if ! reflect .DeepEqual (lines2 , lines ) {
599
- t .Fatalf ("lines = %+v, want %+v" , lines2 , lines )
600
- }
646
+ var lines2 [][]byte
647
+ b .BufferLines (buf , 0 , - 1 , true , & lines2 )
648
+ if err := b .Execute (); err != nil {
649
+ t .Fatal (err )
650
+ }
651
+ if ! reflect .DeepEqual (lines2 , lines ) {
652
+ t .Fatalf ("lines = %+v, want %+v" , lines2 , lines )
653
+ }
601
654
602
- const wantCount = 2
603
- var count int
604
- b .BufferLineCount (buf , & count )
605
- if err := b .Execute (); err != nil {
606
- t .Fatal (err )
607
- }
608
- if count != wantCount {
609
- t .Fatalf ("count is not 2 %d" , count )
610
- }
655
+ const wantCount = 2
656
+ var count int
657
+ b .BufferLineCount (buf , & count )
658
+ if err := b .Execute (); err != nil {
659
+ t .Fatal (err )
660
+ }
661
+ if count != wantCount {
662
+ t .Fatalf ("count is not 2 %d" , count )
663
+ }
611
664
612
- const wantOffset = 12 // [][]byte{[]byte("hello"), []byte("\n"), []byte("world"), []byte("\n")}
613
- var offset int
614
- b .BufferOffset (buf , count , & offset )
615
- if err := b .Execute (); err != nil {
616
- t .Fatal (err )
617
- }
618
- if offset != wantOffset {
619
- t .Fatalf ("got offset %d but want %d" , offset , wantOffset )
620
- }
665
+ const wantOffset = 12 // [][]byte{[]byte("hello"), []byte("\n"), []byte("world"), []byte("\n")}
666
+ var offset int
667
+ b .BufferOffset (buf , count , & offset )
668
+ if err := b .Execute (); err != nil {
669
+ t .Fatal (err )
670
+ }
671
+ if offset != wantOffset {
672
+ t .Fatalf ("got offset %d but want %d" , offset , wantOffset )
673
+ }
674
+ })
675
+
676
+ t .Run ("SetBufferText" , func (t * testing.T ) {
677
+ b := v .NewBatch ()
678
+
679
+ var buf Buffer
680
+ b .CurrentBuffer (& buf )
681
+ if err := b .Execute (); err != nil {
682
+ t .Fatal (err )
683
+ }
684
+ defer clearBuffer (t , v , buf ) // clear buffer after run sub-test.
685
+
686
+ // sets test buffer text.
687
+ lines := [][]byte {[]byte ("Vim is the" ), []byte ("Nvim-fork? focused on extensibility and usability" )}
688
+ b .SetBufferLines (buf , 0 , - 1 , true , lines )
689
+ if err := b .Execute (); err != nil {
690
+ t .Fatal (err )
691
+ }
692
+
693
+ // Replace `Vim is the` to `Neovim is the`
694
+ b .SetBufferText (buf , 0 , 0 , 0 , 3 , [][]byte {[]byte ("Neovim" )})
695
+ // Replace `Nvim-fork?` to `Vim-fork`
696
+ b .SetBufferText (buf , 1 , 0 , 1 , 10 , [][]byte {[]byte ("Vim-fork" )})
697
+ if err := b .Execute (); err != nil {
698
+ t .Fatal (err )
699
+ }
700
+
701
+ want := [2 ][]byte {
702
+ []byte ("Neovim is the" ),
703
+ []byte ("Vim-fork focused on extensibility and usability" ),
704
+ }
705
+ var got [][]byte
706
+ b .BufferLines (buf , 0 , - 1 , true , & got )
707
+ if err := b .Execute (); err != nil {
708
+ t .Fatal (err )
709
+ }
710
+
711
+ // assert buffer lines count.
712
+ const wantCount = 2
713
+ if len (got ) != wantCount {
714
+ t .Fatalf ("expected buffer lines rows is %d: got %d" , wantCount , len (got ))
715
+ }
716
+
717
+ // assert row 1 buffer text.
718
+ if ! bytes .EqualFold (want [0 ], got [0 ]) {
719
+ t .Fatalf ("row 1 is not equal: want: %q, got: %q" , string (want [0 ]), string (got [0 ]))
720
+ }
721
+
722
+ // assert row 1 buffer text.
723
+ if ! bytes .EqualFold (want [1 ], got [1 ]) {
724
+ t .Fatalf ("row 2 is not equal: want: %q, got: %q" , string (want [1 ]), string (got [1 ]))
725
+ }
726
+ })
621
727
})
622
728
}
623
729
}
@@ -1549,15 +1655,6 @@ func testOptionsInfo(v *Nvim) func(*testing.T) {
1549
1655
}
1550
1656
}
1551
1657
1552
- // clearBuffer clears the buffer text.
1553
- func clearBuffer (tb testing.TB , v * Nvim , buffer Buffer ) {
1554
- tb .Helper ()
1555
-
1556
- if err := v .SetBufferLines (buffer , 0 , - 1 , true , bytes .Fields (nil )); err != nil {
1557
- tb .Fatal (err )
1558
- }
1559
- }
1560
-
1561
1658
func TestDial (t * testing.T ) {
1562
1659
if runtime .GOOS == "windows" {
1563
1660
t .Skip ("not supported dial unix socket on windows GOOS" )
@@ -1637,3 +1734,12 @@ func TestEmbedded(t *testing.T) {
1637
1734
t .Fatal ("timeout waiting for serve to exit" )
1638
1735
}
1639
1736
}
1737
+
1738
+ // clearBuffer clears the buffer lines.
1739
+ func clearBuffer (tb testing.TB , v * Nvim , buffer Buffer ) {
1740
+ tb .Helper ()
1741
+
1742
+ if err := v .SetBufferLines (buffer , 0 , - 1 , true , bytes .Fields (nil )); err != nil {
1743
+ tb .Fatal (err )
1744
+ }
1745
+ }
0 commit comments