@@ -3,11 +3,27 @@ package oviewer_test
33import (
44 "bytes"
55 "os/exec"
6+ "path/filepath"
67 "strings"
8+ "testing"
79
10+ "github.com/gdamore/tcell/v2"
811 "github.com/noborus/ov/oviewer"
912)
1013
14+ const cwd = ".."
15+
16+ var testdata = filepath .Join (cwd , "testdata" )
17+
18+ // This is a function of tcell.NewScreen but can be replaced with mock.
19+ var tcellNewScreen = tcell .NewScreen
20+
21+ // fakeScreen returns a fake screen.
22+ func fakeScreen () (tcell.Screen , error ) {
23+ // width, height := 80, 25
24+ return tcell .NewSimulationScreen ("" ), nil
25+ }
26+
1127func ExampleOpen () {
1228 ov , err := oviewer .Open ("example_test.go" )
1329 if err != nil {
@@ -78,3 +94,52 @@ func ExampleSearch() {
7894 panic (err )
7995 }
8096}
97+
98+ func TestExample_HeaderOption (t * testing.T ) {
99+ oviewer .SetTcellNewScreen (fakeScreen )
100+ defer func () {
101+ oviewer .SetTcellNewScreen (tcell .NewScreen )
102+ }()
103+ ov , err := oviewer .Open (filepath .Join (testdata , "test.txt" ))
104+ if err != nil {
105+ t .Fatalf ("Open failed: %v" , err )
106+ }
107+ ov .Config .General .SetHeader (2 )
108+ if ov .Config .General .Header == nil || * ov .Config .General .Header != 2 {
109+ t .Errorf ("Config.General.SetHeader did not set header correctly: got %v" , ov .Config .General .Header )
110+ }
111+ }
112+
113+ func TestExample_DocumentGeneral (t * testing.T ) {
114+ oviewer .SetTcellNewScreen (fakeScreen )
115+ defer func () {
116+ oviewer .SetTcellNewScreen (tcell .NewScreen )
117+ }()
118+ ov , err := oviewer .Open (filepath .Join (testdata , "test.txt" ))
119+ if err != nil {
120+ t .Fatalf ("Open failed: %v" , err )
121+ }
122+ ov .Doc .General .SetHeader (3 )
123+ if ov .Doc .General .Header == nil || * ov .Doc .General .Header != 3 {
124+ t .Errorf ("Doc.General.SetHeader did not set header correctly: got %v" , ov .Doc .General .Header )
125+ }
126+ }
127+
128+ func TestExample_FollowMode (t * testing.T ) {
129+ oviewer .SetTcellNewScreen (fakeScreen )
130+ defer func () {
131+ oviewer .SetTcellNewScreen (tcell .NewScreen )
132+ }()
133+ ov , err := oviewer .Open (filepath .Join (testdata , "test.txt" ))
134+ if err != nil {
135+ t .Fatalf ("Open failed: %v" , err )
136+ }
137+ ov .Config .General .SetFollowMode (true )
138+ if ov .Config .General .FollowMode == nil || * ov .Config .General .FollowMode != true {
139+ t .Errorf ("Options.SetFollowMode did not set follow mode correctly: got %v" , ov .Config .General .FollowMode )
140+ }
141+ ov .Doc .General .SetFollowMode (false )
142+ if ov .Doc .General .FollowMode == nil || * ov .Doc .General .FollowMode != false {
143+ t .Errorf ("Doc.General.SetFollowMode did not set follow mode correctly: got %v" , ov .Doc .General .FollowMode )
144+ }
145+ }
0 commit comments