feat: streamline proxy selection and instance actions
This commit is contained in:
@@ -546,6 +546,9 @@ func TestShellRequestsDiscardConfirmationForDirtyEdit(t *testing.T) {
|
||||
func TestShellCreatesAndEditsInstanceProxySelection(t *testing.T) {
|
||||
shell := NewShell(material.NewTheme())
|
||||
shell.SetProxies([]ProxyOption{{ID: "proxy-sg", Name: "新加坡", Server: "http://127.0.0.1:8080"}})
|
||||
if label := shell.proxyLabel("proxy-sg"); label != "http://127.0.0.1:8080" {
|
||||
t.Fatalf("proxy label = %q, want complete proxy address", label)
|
||||
}
|
||||
shell.instanceName.SetText("新实例")
|
||||
shell.instanceDir.SetText(t.TempDir())
|
||||
shell.createProxyID = "proxy-sg"
|
||||
@@ -567,15 +570,57 @@ func TestShellPreventsDeletingReferencedProxy(t *testing.T) {
|
||||
shell := NewShell(material.NewTheme())
|
||||
shell.SetProxies([]ProxyOption{{ID: "proxy-sg", Name: "新加坡", Server: "http://127.0.0.1:8080"}})
|
||||
shell.rows[0].ProxyID = "proxy-sg"
|
||||
shell.settingsProxyID = "proxy-sg"
|
||||
shell.proxyServer.SetText("http://127.0.0.1:8080")
|
||||
changes := 0
|
||||
shell.OnProxiesChanged(func([]ProxyOption) { changes++ })
|
||||
shell.deleteProxy("proxy-sg")
|
||||
shell.requestProxyDelete()
|
||||
if len(shell.proxies) != 1 || changes != 0 || !strings.Contains(shell.proxyFeedback, "不能删除") {
|
||||
t.Fatalf("referenced delete state = proxies %#v, changes %d, feedback %q", shell.proxies, changes, shell.proxyFeedback)
|
||||
}
|
||||
shell.rows[0].ProxyID = ""
|
||||
shell.deleteProxy("proxy-sg")
|
||||
if len(shell.proxies) != 0 || changes != 1 {
|
||||
t.Fatalf("unreferenced delete state = proxies %#v, changes %d", shell.proxies, changes)
|
||||
shell.requestProxyDelete()
|
||||
if shell.pendingProxyDelete != "proxy-sg" {
|
||||
t.Fatalf("pending proxy deletion = %q", shell.pendingProxyDelete)
|
||||
}
|
||||
shell.cancelProxyDelete()
|
||||
if shell.pendingProxyDelete != "" || len(shell.proxies) != 1 || changes != 0 || shell.settingsProxyID != "proxy-sg" || shell.proxyServer.Text() != "http://127.0.0.1:8080" {
|
||||
t.Fatalf("cancelled delete state = proxies %#v, changes %d, selection %q, server %q", shell.proxies, changes, shell.settingsProxyID, shell.proxyServer.Text())
|
||||
}
|
||||
shell.requestProxyDelete()
|
||||
shell.confirmProxyDelete()
|
||||
if len(shell.proxies) != 0 || changes != 1 || shell.settingsProxyID != "" || shell.proxyServer.Text() != "" {
|
||||
t.Fatalf("unreferenced delete state = proxies %#v, changes %d, selection %q, server %q", shell.proxies, changes, shell.settingsProxyID, shell.proxyServer.Text())
|
||||
}
|
||||
}
|
||||
|
||||
func TestShellSavesProxyFromAddressPicker(t *testing.T) {
|
||||
shell := NewShell(material.NewTheme())
|
||||
shell.SetProxies([]ProxyOption{{ID: "proxy-sg", Name: "旧名称", Server: "http://127.0.0.1:8080"}})
|
||||
changes := 0
|
||||
shell.OnProxiesChanged(func([]ProxyOption) { changes++ })
|
||||
|
||||
shell.proxyPicker.target = proxyPickerSettings
|
||||
shell.selectPickerProxy("proxy-sg")
|
||||
if shell.settingsProxyID != "proxy-sg" || shell.proxyServer.Text() != "http://127.0.0.1:8080" {
|
||||
t.Fatalf("selected proxy = %q, server %q", shell.settingsProxyID, shell.proxyServer.Text())
|
||||
}
|
||||
|
||||
shell.proxyServer.SetText("http://127.0.0.1:8081")
|
||||
shell.saveProxy()
|
||||
if len(shell.proxies) != 1 || shell.proxies[0].ID != "proxy-sg" || shell.proxies[0].Name != "http://127.0.0.1:8081" || shell.proxies[0].Server != "http://127.0.0.1:8081" || changes != 1 {
|
||||
t.Fatalf("updated proxy = %#v, changes %d", shell.proxies, changes)
|
||||
}
|
||||
|
||||
shell.proxyPicker.target = proxyPickerSettings
|
||||
shell.selectPickerProxy("")
|
||||
if shell.settingsProxyID != "" || shell.proxyServer.Text() != "" {
|
||||
t.Fatalf("new proxy state = id %q, server %q", shell.settingsProxyID, shell.proxyServer.Text())
|
||||
}
|
||||
|
||||
shell.proxyServer.SetText("http://127.0.0.1:8082")
|
||||
shell.saveProxy()
|
||||
if len(shell.proxies) != 2 || shell.settingsProxyID == "" || shell.proxies[1].Name != "http://127.0.0.1:8082" || shell.proxies[1].Server != "http://127.0.0.1:8082" || changes != 2 {
|
||||
t.Fatalf("created proxy = %#v, selected %q, changes %d", shell.proxies, shell.settingsProxyID, changes)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user