diff --git a/.gitignore b/.gitignore index 98e3c4c..72e0820 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /moar /moar.exe /releases/moar-* +/m/__debug_bin* diff --git a/m/scrollPosition_test.go b/m/scrollPosition_test.go new file mode 100644 index 0000000..a53faa0 --- /dev/null +++ b/m/scrollPosition_test.go @@ -0,0 +1,40 @@ +package m + +import ( + "strings" + "testing" + + "github.com/walles/moar/twin" + "gotest.tools/v3/assert" +) + +func TestCanonicalize1000(t *testing.T) { + pager := Pager{} + pager.screen = twin.NewFakeScreen(100, 100) + pager.reader = NewReaderFromText("test", strings.Repeat("a\n", 2000)) + pager.ShowStatusBar = true + pager.ShowLineNumbers = true + pager.scrollPosition = newScrollPosition("TestCanonicalize1000") + + scrollPosition := scrollPosition{ + internalDontTouch: scrollPositionInternal{ + lineNumberOneBased: 1000, + deltaScreenLines: 0, + name: "Fake scroll position", + canonicalizing: false, + canonical: scrollPositionCanonical{ + width: 0, + height: 0, + showLineNumbers: false, + showStatusBar: false, + wrapLongLines: false, + lineNumberOneBased: 0, + deltaScreenLines: 0, + }, + }, + } + + lineNumberOneBased := scrollPosition.lineNumberOneBased(&pager) + + assert.Equal(t, lineNumberOneBased, 1) +}