Add some tests
This commit is contained in:
parent
7d435d1556
commit
16f7f9464c
17
Makefile
Normal file
17
Makefile
Normal file
@ -0,0 +1,17 @@
|
||||
test:
|
||||
go test timshome.page/gilo/editor timshome.page/gilo/terminal
|
||||
|
||||
coverage.out:
|
||||
go test timshome.page/gilo/editor timshome.page/gilo/terminal -coverprofile=coverage.out
|
||||
|
||||
coverage: coverage.out
|
||||
go tool cover -html=coverage.out
|
||||
|
||||
clean:
|
||||
rm -f gilo
|
||||
rm -f coverage.out
|
||||
|
||||
gilo:
|
||||
go build
|
||||
|
||||
.PHONY: test clean
|
75
editor/fn_test.go
Normal file
75
editor/fn_test.go
Normal file
@ -0,0 +1,75 @@
|
||||
package editor
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
type isRune struct {
|
||||
arg1 rune
|
||||
expected bool
|
||||
}
|
||||
|
||||
// (╯°□°)╯︵ ┻━┻
|
||||
var isAsciiTest = []isRune {
|
||||
{'┻', false},
|
||||
{'$', true},
|
||||
{'︵', false},
|
||||
{0x7f, true},
|
||||
}
|
||||
|
||||
func TestIsAscii(t *testing.T) {
|
||||
for _, test := range isAsciiTest {
|
||||
if output := isAscii(test.arg1); output != test.expected {
|
||||
t.Errorf("Output %v not equal to expected %v for input %q", output, test.expected, test.arg1)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var isCtrlTest = []isRune {
|
||||
{0x78, false},
|
||||
{0x7f, true},
|
||||
{0x02, true},
|
||||
{0x98, false},
|
||||
{'a', false},
|
||||
}
|
||||
|
||||
func TestIsCtrl(t *testing.T) {
|
||||
for _, test := range isCtrlTest {
|
||||
if output := isCtrl(test.arg1); output != test.expected {
|
||||
t.Errorf("Output %v not equal to expected %v for input %q", output, test.expected, test.arg1)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestTruncateString(t *testing.T) {
|
||||
firstString := "abcdefghijklmnopqrstuvwxyz"
|
||||
truncated := truncateString(firstString, 13)
|
||||
|
||||
got := len(truncated)
|
||||
want := 13
|
||||
|
||||
if got != want {
|
||||
t.Errorf("Truncated length: %q, expected length: %q", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTruncateStringNegative(t *testing.T) {
|
||||
got := truncateString("fdlkjf", -5)
|
||||
want := ""
|
||||
|
||||
if got != want {
|
||||
t.Errorf("Truncated value: %q, expected value: %q", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTruncateShorterString(t *testing.T) {
|
||||
str := "abcdefg"
|
||||
|
||||
got := truncateString(str, 13)
|
||||
want := str
|
||||
|
||||
if got != want {
|
||||
t.Errorf("Truncated value: %q, expected value: %q", got, want)
|
||||
}
|
||||
}
|
||||
|
27
editor/row_test.go
Normal file
27
editor/row_test.go
Normal file
@ -0,0 +1,27 @@
|
||||
package editor
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestNewRow(t *testing.T) {
|
||||
str := "abcdefg"
|
||||
row := NewRow(str)
|
||||
|
||||
got := string(row.chars)
|
||||
want := str
|
||||
|
||||
if got != want {
|
||||
t.Errorf("Row chars not equal to original string. Row: %q, String: %q", row, str)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRowSize(t *testing.T) {
|
||||
str := "abcdefg"
|
||||
row := NewRow(str)
|
||||
|
||||
got := row.Size()
|
||||
want := 7
|
||||
|
||||
if got != want {
|
||||
t.Errorf("Row size not equal to number of runes in original string")
|
||||
}
|
||||
}
|
23
terminal/ansi_test.go
Normal file
23
terminal/ansi_test.go
Normal file
@ -0,0 +1,23 @@
|
||||
package terminal
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestCode(t *testing.T) {
|
||||
input := "H"
|
||||
|
||||
got := Code(input)
|
||||
want := EscPrefix + input
|
||||
|
||||
if got != want {
|
||||
t.Errorf("Failed to prefix %q with the escape prefix: %q", input, EscPrefix)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMoveCursor(t *testing.T) {
|
||||
got := MoveCursor(0, 0)
|
||||
want := Code("%d;%dH", 1, 1)
|
||||
|
||||
if got != want {
|
||||
t.Errorf("Failed to create escape sequence to move cursor")
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user