github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/shell/history/colon_test.go (about)

     1  package history
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/lmorg/murex/test/count"
     7  )
     8  
     9  func TestNoColon(t *testing.T) {
    10  	tests := []string{
    11  		"command param1 param2 param3",
    12  		"command: param1 param2 param3",
    13  		"command : param1 param2 param3",
    14  		"command :param1 param2 param3",
    15  		"comman:d param1 param2 param3",
    16  		"command param1: param2 param3",
    17  		"command param1: param2: param3",
    18  		"command param1: param2: param3:",
    19  		"command: param1: param2: param3:",
    20  		":command param1 param2 param3",
    21  		":command: param1 param2 param3",
    22  
    23  		"command 1 2 3",
    24  		"command: 1 2 3",
    25  		"command : 1 2 3",
    26  		"command :1 2 3",
    27  		"comman:d 1 2 3",
    28  		"command 1: 2 3",
    29  		"command 1: 2: 3",
    30  		"command 1: 2: 3:",
    31  		"command: 1: 2: 3:",
    32  		":command 1 2 3",
    33  		":command: 1 2 3",
    34  
    35  		":q",
    36  		":q:",
    37  		":q param1",
    38  		":q: param1",
    39  
    40  		"c param1 param2 param3",
    41  		"c: param1 param2 param3",
    42  		"c : param1 param2 param3",
    43  		"c :param1 param2 param3",
    44  		"c:d param1 param2 param3",
    45  		"c param1: param2 param3",
    46  		"c param1: param2: param3",
    47  		"c param1: param2: param3:",
    48  		"c: param1: param2: param3:",
    49  		":c param1 param2 param3",
    50  		":c: param1 param2 param3",
    51  
    52  		":command param1 param2 param3",
    53  		":command: param1 param2 param3",
    54  		":command : param1 param2 param3",
    55  		":command :param1 param2 param3",
    56  		":comman:d param1 param2 param3",
    57  		":command param1: param2 param3",
    58  		":command param1: param2: param3",
    59  		":command param1: param2: param3:",
    60  		":command: param1: param2: param3:",
    61  		"::command param1 param2 param3",
    62  		"::command: param1 param2 param3",
    63  
    64  		":c param1 param2 param3",
    65  		":c: param1 param2 param3",
    66  		":c : param1 param2 param3",
    67  		":c :param1 param2 param3",
    68  		":c:d param1 param2 param3",
    69  		":c param1: param2 param3",
    70  		":c param1: param2: param3",
    71  		":c param1: param2: param3:",
    72  		":c: param1: param2: param3:",
    73  		"::c param1 param2 param3",
    74  		"::c: param1 param2 param3",
    75  	}
    76  
    77  	expected := []string{
    78  		"command param1 param2 param3",
    79  		"command param1 param2 param3",
    80  		"command : param1 param2 param3",
    81  		"command :param1 param2 param3",
    82  		"comman d param1 param2 param3",
    83  		"command param1: param2 param3",
    84  		"command param1: param2: param3",
    85  		"command param1: param2: param3:",
    86  		"command param1: param2: param3:",
    87  		"command param1 param2 param3",
    88  		"command param1 param2 param3",
    89  
    90  		"command 1 2 3",
    91  		"command 1 2 3",
    92  		"command : 1 2 3",
    93  		"command :1 2 3",
    94  		"comman d 1 2 3",
    95  		"command 1: 2 3",
    96  		"command 1: 2: 3",
    97  		"command 1: 2: 3:",
    98  		"command 1: 2: 3:",
    99  		"command 1 2 3",
   100  		"command 1 2 3",
   101  
   102  		"q",
   103  		"q",
   104  		"q param1",
   105  		"q param1",
   106  
   107  		"c param1 param2 param3",
   108  		"c param1 param2 param3",
   109  		"c : param1 param2 param3",
   110  		"c :param1 param2 param3",
   111  		"c d param1 param2 param3",
   112  		"c param1: param2 param3",
   113  		"c param1: param2: param3",
   114  		"c param1: param2: param3:",
   115  		"c param1: param2: param3:",
   116  		"c param1 param2 param3",
   117  		"c param1 param2 param3",
   118  
   119  		"command param1 param2 param3",
   120  		"command param1 param2 param3",
   121  		"command : param1 param2 param3",
   122  		"command :param1 param2 param3",
   123  		"comman d param1 param2 param3",
   124  		"command param1: param2 param3",
   125  		"command param1: param2: param3",
   126  		"command param1: param2: param3:",
   127  		"command param1: param2: param3:",
   128  		":command param1 param2 param3",
   129  		":command param1 param2 param3",
   130  
   131  		"c param1 param2 param3",
   132  		"c param1 param2 param3",
   133  		"c : param1 param2 param3",
   134  		"c :param1 param2 param3",
   135  		"c d param1 param2 param3",
   136  		"c param1: param2 param3",
   137  		"c param1: param2: param3",
   138  		"c param1: param2: param3:",
   139  		"c param1: param2: param3:",
   140  		":c param1 param2 param3",
   141  		":c param1 param2 param3",
   142  	}
   143  
   144  	count.Tests(t, len(tests))
   145  
   146  	for i := range tests {
   147  		actual := noColon(tests[i])
   148  		if actual != expected[i] {
   149  			t.Errorf("Output does not match expected in test %d:", i)
   150  			t.Log("  Original:", tests[i])
   151  			t.Log("  Expected:", expected[i])
   152  			t.Log("  Actual:  ", actual)
   153  		}
   154  	}
   155  }