...

Source file src/github.com/Azure/go-ansiterm/parser_test_helpers_test.go

Documentation: github.com/Azure/go-ansiterm

     1  package ansiterm
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  )
     7  
     8  func getStateNames() []string {
     9  	parser, _ := createTestParser("Ground")
    10  
    11  	stateNames := []string{}
    12  	for _, state := range parser.stateMap {
    13  		stateNames = append(stateNames, state.Name())
    14  	}
    15  
    16  	return stateNames
    17  }
    18  
    19  func stateTransitionHelper(t *testing.T, start string, end string, bytes []byte) {
    20  	for _, b := range bytes {
    21  		bytes := []byte{byte(b)}
    22  		parser, _ := createTestParser(start)
    23  		parser.Parse(bytes)
    24  		validateState(t, parser.currState, end)
    25  	}
    26  }
    27  
    28  func anyToXHelper(t *testing.T, bytes []byte, expectedState string) {
    29  	for _, s := range getStateNames() {
    30  		stateTransitionHelper(t, s, expectedState, bytes)
    31  	}
    32  }
    33  
    34  func funcCallParamHelper(t *testing.T, bytes []byte, start string, expected string, expectedCalls []string) {
    35  	parser, evtHandler := createTestParser(start)
    36  	parser.Parse(bytes)
    37  	validateState(t, parser.currState, expected)
    38  	validateFuncCalls(t, evtHandler.FunctionCalls, expectedCalls)
    39  }
    40  
    41  func parseParamsHelper(t *testing.T, bytes []byte, expectedParams []string) {
    42  	params, err := parseParams(bytes)
    43  
    44  	if err != nil {
    45  		t.Errorf("Parameter parse error: %v", err)
    46  		return
    47  	}
    48  
    49  	if len(params) != len(expectedParams) {
    50  		t.Errorf("Parsed   parameters: %v", params)
    51  		t.Errorf("Expected parameters: %v", expectedParams)
    52  		t.Errorf("Parameter length failure: %d != %d", len(params), len(expectedParams))
    53  		return
    54  	}
    55  
    56  	for i, v := range expectedParams {
    57  		if v != params[i] {
    58  			t.Errorf("Parsed   parameters: %v", params)
    59  			t.Errorf("Expected parameters: %v", expectedParams)
    60  			t.Errorf("Parameter parse failure: %s != %s at position %d", v, params[i], i)
    61  		}
    62  	}
    63  }
    64  
    65  func cursorSingleParamHelper(t *testing.T, command byte, funcName string) {
    66  	funcCallParamHelper(t, []byte{command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([1])", funcName)})
    67  	funcCallParamHelper(t, []byte{'0', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([1])", funcName)})
    68  	funcCallParamHelper(t, []byte{'2', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([2])", funcName)})
    69  	funcCallParamHelper(t, []byte{'2', '3', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([23])", funcName)})
    70  	funcCallParamHelper(t, []byte{'2', ';', '3', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([2])", funcName)})
    71  	funcCallParamHelper(t, []byte{'2', ';', '3', ';', '4', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([2])", funcName)})
    72  }
    73  
    74  func cursorTwoParamHelper(t *testing.T, command byte, funcName string) {
    75  	funcCallParamHelper(t, []byte{command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([1 1])", funcName)})
    76  	funcCallParamHelper(t, []byte{'0', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([1 1])", funcName)})
    77  	funcCallParamHelper(t, []byte{'2', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([2 1])", funcName)})
    78  	funcCallParamHelper(t, []byte{'2', '3', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([23 1])", funcName)})
    79  	funcCallParamHelper(t, []byte{'2', ';', '3', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([2 3])", funcName)})
    80  	funcCallParamHelper(t, []byte{'2', ';', '3', ';', '4', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([2 3])", funcName)})
    81  }
    82  
    83  func eraseHelper(t *testing.T, command byte, funcName string) {
    84  	funcCallParamHelper(t, []byte{command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([0])", funcName)})
    85  	funcCallParamHelper(t, []byte{'0', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([0])", funcName)})
    86  	funcCallParamHelper(t, []byte{'1', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([1])", funcName)})
    87  	funcCallParamHelper(t, []byte{'2', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([2])", funcName)})
    88  	funcCallParamHelper(t, []byte{'3', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([3])", funcName)})
    89  	funcCallParamHelper(t, []byte{'4', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([0])", funcName)})
    90  	funcCallParamHelper(t, []byte{'1', ';', '2', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([1])", funcName)})
    91  }
    92  
    93  func scrollHelper(t *testing.T, command byte, funcName string) {
    94  	funcCallParamHelper(t, []byte{command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([1])", funcName)})
    95  	funcCallParamHelper(t, []byte{'0', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([1])", funcName)})
    96  	funcCallParamHelper(t, []byte{'1', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([1])", funcName)})
    97  	funcCallParamHelper(t, []byte{'5', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([5])", funcName)})
    98  	funcCallParamHelper(t, []byte{'4', ';', '6', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([4])", funcName)})
    99  }
   100  
   101  func clearOnStateChangeHelper(t *testing.T, start string, end string, bytes []byte) {
   102  	p, _ := createTestParser(start)
   103  	fillContext(p.context)
   104  	p.Parse(bytes)
   105  	validateState(t, p.currState, end)
   106  	validateEmptyContext(t, p.context)
   107  }
   108  
   109  func c0Helper(t *testing.T, bytes []byte, expectedState string, expectedCalls []string) {
   110  	parser, evtHandler := createTestParser("Ground")
   111  	parser.Parse(bytes)
   112  	validateState(t, parser.currState, expectedState)
   113  	validateFuncCalls(t, evtHandler.FunctionCalls, expectedCalls)
   114  }
   115  

View as plain text