@@ -6,13 +6,28 @@ import (
66 "github.com/stretchr/testify/assert"
77)
88
9- func setupSession (userInfoSeparator string , username string , hostname string , goos string ) session {
9+ type sessionArgs struct {
10+ userInfoSeparator string
11+ username string
12+ hostname string
13+ goos string
14+ connection string
15+ client string
16+ sshIcon string
17+ }
18+
19+ func setupSession (args * sessionArgs ) session {
1020 env := new (MockedEnvironment )
11- env .On ("getCurrentUser" , nil ).Return (username )
12- env .On ("getHostName" , nil ).Return (hostname , nil )
13- env .On ("getRuntimeGOOS" , nil ).Return (goos )
21+ env .On ("getCurrentUser" , nil ).Return (args .username )
22+ env .On ("getHostName" , nil ).Return (args .hostname , nil )
23+ env .On ("getRuntimeGOOS" , nil ).Return (args .goos )
24+ env .On ("getenv" , "SSH_CONNECTION" ).Return (args .connection )
25+ env .On ("getenv" , "SSH_CLIENT" ).Return (args .client )
1426 props := & properties {
15- values : map [Property ]interface {}{UserInfoSeparator : userInfoSeparator },
27+ values : map [Property ]interface {}{
28+ UserInfoSeparator : args .userInfoSeparator ,
29+ SSHIcon : args .sshIcon ,
30+ },
1631 foreground : "#fff" ,
1732 background : "#000" ,
1833 }
@@ -23,44 +38,113 @@ func setupSession(userInfoSeparator string, username string, hostname string, go
2338 return s
2439}
2540
26- func testUserInfoWriter (userInfoSeparator string , username string , hostname string , goos string ) string {
27- s := setupSession (userInfoSeparator , username , hostname , goos )
41+ func testUserInfoWriter (args * sessionArgs ) string {
42+ s := setupSession (args )
2843 return s .getFormattedText ()
2944}
3045
3146func TestWriteUserInfo (t * testing.T ) {
3247 want := "<#fff>bill</>@<#fff>surface</>"
33- got := testUserInfoWriter ("@" , "bill" , "surface" , "windows" )
48+ args := & sessionArgs {
49+ userInfoSeparator : "@" ,
50+ username : "bill" ,
51+ hostname : "surface" ,
52+ goos : "windows" ,
53+ }
54+ got := testUserInfoWriter (args )
3455 assert .EqualValues (t , want , got )
3556}
3657
3758func TestWriteUserInfoWindowsIncludingHostname (t * testing.T ) {
3859 want := "<#fff>bill</>@<#fff>surface</>"
39- got := testUserInfoWriter ("@" , "surface\\ bill" , "surface" , "windows" )
60+ args := & sessionArgs {
61+ userInfoSeparator : "@" ,
62+ username : "surface\\ bill" ,
63+ hostname : "surface" ,
64+ goos : "windows" ,
65+ }
66+ got := testUserInfoWriter (args )
4067 assert .EqualValues (t , want , got )
4168}
4269
4370func TestWriteOnlyUsername (t * testing.T ) {
44- s := setupSession ("@" , "surface\\ bill" , "surface" , "windows" )
71+ args := & sessionArgs {
72+ userInfoSeparator : "@" ,
73+ username : "surface\\ bill" ,
74+ hostname : "surface" ,
75+ goos : "windows" ,
76+ }
77+ s := setupSession (args )
4578 s .props .values [DisplayHost ] = false
46-
4779 want := "<#fff>bill</><#fff></>"
4880 got := s .getFormattedText ()
4981 assert .EqualValues (t , want , got )
5082}
5183
5284func TestWriteOnlyHostname (t * testing.T ) {
53- s := setupSession ("@" , "surface\\ bill" , "surface" , "windows" )
85+ args := & sessionArgs {
86+ userInfoSeparator : "@" ,
87+ username : "surface\\ bill" ,
88+ hostname : "surface" ,
89+ goos : "windows" ,
90+ }
91+ s := setupSession (args )
5492 s .props .values [DisplayUser ] = false
55-
5693 want := "<#fff></><#fff>surface</>"
5794 got := s .getFormattedText ()
5895 assert .EqualValues (t , want , got )
5996}
6097
61- func TestSession (t * testing.T ) {
98+ func TestWriteActiveSSHSession (t * testing.T ) {
99+ want := "ssh <#fff>bill</>@<#fff>surface</>"
100+ args := & sessionArgs {
101+ userInfoSeparator : "@" ,
102+ username : "bill" ,
103+ hostname : "surface" ,
104+ goos : "windows" ,
105+ sshIcon : "ssh " ,
106+ connection : "1.1.1.1" ,
107+ }
108+ got := testUserInfoWriter (args )
109+ assert .EqualValues (t , want , got )
110+ }
111+
112+ func TestActiveSSHSessionInactive (t * testing.T ) {
113+ env := new (MockedEnvironment )
114+ env .On ("getenv" , "SSH_CONNECTION" ).Return ("" )
115+ env .On ("getenv" , "SSH_CLIENT" ).Return ("" )
116+ s := & session {
117+ env : env ,
118+ }
119+ assert .False (t , s .activeSSHSession ())
120+ }
121+
122+ func TestActiveSSHSessionActiveConnection (t * testing.T ) {
123+ env := new (MockedEnvironment )
124+ env .On ("getenv" , "SSH_CONNECTION" ).Return ("1.1.1.1" )
125+ env .On ("getenv" , "SSH_CLIENT" ).Return ("" )
126+ s := & session {
127+ env : env ,
128+ }
129+ assert .True (t , s .activeSSHSession ())
130+ }
131+
132+ func TestActiveSSHSessionActiveClient (t * testing.T ) {
133+ env := new (MockedEnvironment )
134+ env .On ("getenv" , "SSH_CONNECTION" ).Return ("" )
135+ env .On ("getenv" , "SSH_CLIENT" ).Return ("1.1.1.1" )
136+ s := & session {
137+ env : env ,
138+ }
139+ assert .True (t , s .activeSSHSession ())
140+ }
141+
142+ func TestActiveSSHSessionActiveBoth (t * testing.T ) {
143+ env := new (MockedEnvironment )
144+ env .On ("getenv" , "SSH_CONNECTION" ).Return ("2.2.2.2" )
145+ env .On ("getenv" , "SSH_CLIENT" ).Return ("1.1.1.1" )
62146 s := & session {
63- env : & environment {} ,
147+ env : env ,
64148 }
65- assert .NotEmpty (t , s .getUserName ())
149+ assert .True (t , s .activeSSHSession ())
66150}
0 commit comments