| package ansiterm |
| |
| import ( |
| "testing" |
| ) |
| |
| func createTestParser(s string) (*AnsiParser, *TestAnsiEventHandler) { |
| evtHandler := CreateTestAnsiEventHandler() |
| parser := CreateParser(s, evtHandler) |
| |
| return parser, evtHandler |
| } |
| |
| func validateState(t *testing.T, actualState state, expectedStateName string) { |
| actualName := "Nil" |
| |
| if actualState != nil { |
| actualName = actualState.Name() |
| } |
| |
| if actualName != expectedStateName { |
| t.Errorf("Invalid state: '%s' != '%s'", actualName, expectedStateName) |
| } |
| } |
| |
| func validateFuncCalls(t *testing.T, actualCalls []string, expectedCalls []string) { |
| actualCount := len(actualCalls) |
| expectedCount := len(expectedCalls) |
| |
| if actualCount != expectedCount { |
| t.Errorf("Actual calls: %v", actualCalls) |
| t.Errorf("Expected calls: %v", expectedCalls) |
| t.Errorf("Call count error: %d != %d", actualCount, expectedCount) |
| return |
| } |
| |
| for i, v := range actualCalls { |
| if v != expectedCalls[i] { |
| t.Errorf("Actual calls: %v", actualCalls) |
| t.Errorf("Expected calls: %v", expectedCalls) |
| t.Errorf("Mismatched calls: %s != %s with lengths %d and %d", v, expectedCalls[i], len(v), len(expectedCalls[i])) |
| } |
| } |
| } |
| |
| func fillContext(context *ansiContext) { |
| context.currentChar = 'A' |
| context.paramBuffer = []byte{'C', 'D', 'E'} |
| context.interBuffer = []byte{'F', 'G', 'H'} |
| } |
| |
| func validateEmptyContext(t *testing.T, context *ansiContext) { |
| var expectedCurrChar byte = 0x0 |
| if context.currentChar != expectedCurrChar { |
| t.Errorf("Currentchar mismatch '%#x' != '%#x'", context.currentChar, expectedCurrChar) |
| } |
| |
| if len(context.paramBuffer) != 0 { |
| t.Errorf("Non-empty parameter buffer: %v", context.paramBuffer) |
| } |
| |
| if len(context.paramBuffer) != 0 { |
| t.Errorf("Non-empty intermediate buffer: %v", context.interBuffer) |
| } |
| |
| } |