mirror of
https://github.com/sipeed/picoclaw.git
synced 2026-06-12 18:08:54 +00:00
92 lines
2.4 KiB
Go
92 lines
2.4 KiB
Go
package discord
|
|
|
|
import (
|
|
"net/http"
|
|
"net/url"
|
|
"testing"
|
|
|
|
"github.com/bwmarrin/discordgo"
|
|
)
|
|
|
|
func TestApplyDiscordProxy_CustomProxy(t *testing.T) {
|
|
session, err := discordgo.New("Bot test-token")
|
|
if err != nil {
|
|
t.Fatalf("discordgo.New() error: %v", err)
|
|
}
|
|
|
|
if err = applyDiscordProxy(session, "http://127.0.0.1:7890"); err != nil {
|
|
t.Fatalf("applyDiscordProxy() error: %v", err)
|
|
}
|
|
|
|
req, err := http.NewRequest("GET", "https://discord.com/api/v10/gateway", nil)
|
|
if err != nil {
|
|
t.Fatalf("http.NewRequest() error: %v", err)
|
|
}
|
|
|
|
restProxy := session.Client.Transport.(*http.Transport).Proxy
|
|
restProxyURL, err := restProxy(req)
|
|
if err != nil {
|
|
t.Fatalf("rest proxy func error: %v", err)
|
|
}
|
|
if got, want := restProxyURL.String(), "http://127.0.0.1:7890"; got != want {
|
|
t.Fatalf("REST proxy = %q, want %q", got, want)
|
|
}
|
|
|
|
wsProxyURL, err := session.Dialer.Proxy(req)
|
|
if err != nil {
|
|
t.Fatalf("ws proxy func error: %v", err)
|
|
}
|
|
if got, want := wsProxyURL.String(), "http://127.0.0.1:7890"; got != want {
|
|
t.Fatalf("WS proxy = %q, want %q", got, want)
|
|
}
|
|
}
|
|
|
|
func TestApplyDiscordProxy_FromEnvironment(t *testing.T) {
|
|
t.Setenv("HTTP_PROXY", "http://127.0.0.1:8888")
|
|
t.Setenv("http_proxy", "http://127.0.0.1:8888")
|
|
t.Setenv("HTTPS_PROXY", "http://127.0.0.1:8888")
|
|
t.Setenv("https_proxy", "http://127.0.0.1:8888")
|
|
t.Setenv("ALL_PROXY", "")
|
|
t.Setenv("all_proxy", "")
|
|
t.Setenv("NO_PROXY", "")
|
|
t.Setenv("no_proxy", "")
|
|
|
|
session, err := discordgo.New("Bot test-token")
|
|
if err != nil {
|
|
t.Fatalf("discordgo.New() error: %v", err)
|
|
}
|
|
|
|
if err = applyDiscordProxy(session, ""); err != nil {
|
|
t.Fatalf("applyDiscordProxy() error: %v", err)
|
|
}
|
|
|
|
req, err := http.NewRequest("GET", "https://discord.com/api/v10/gateway", nil)
|
|
if err != nil {
|
|
t.Fatalf("http.NewRequest() error: %v", err)
|
|
}
|
|
|
|
gotURL, err := session.Dialer.Proxy(req)
|
|
if err != nil {
|
|
t.Fatalf("ws proxy func error: %v", err)
|
|
}
|
|
|
|
wantURL, err := url.Parse("http://127.0.0.1:8888")
|
|
if err != nil {
|
|
t.Fatalf("url.Parse() error: %v", err)
|
|
}
|
|
if gotURL.String() != wantURL.String() {
|
|
t.Fatalf("WS proxy = %q, want %q", gotURL.String(), wantURL.String())
|
|
}
|
|
}
|
|
|
|
func TestApplyDiscordProxy_InvalidProxyURL(t *testing.T) {
|
|
session, err := discordgo.New("Bot test-token")
|
|
if err != nil {
|
|
t.Fatalf("discordgo.New() error: %v", err)
|
|
}
|
|
|
|
if err = applyDiscordProxy(session, "://bad-proxy"); err == nil {
|
|
t.Fatal("applyDiscordProxy() expected error for invalid proxy URL, got nil")
|
|
}
|
|
}
|