// Copyright 2025 The Go MCP SDK Authors. All rights reserved. // Use of this source code is governed by the license // that can be found in the LICENSE file. package util import "testing" // TestIsLoopback tests the IsLoopback helper function. func TestIsLoopback(t *testing.T) { tests := []struct { addr string want bool }{ {"localhost", true}, {"localhost:3000", true}, {"127.0.0.1", true}, {"127.0.0.1:3000", true}, {"[::1]", true}, {"[::1]:3000", true}, {"::1", true}, {"", false}, {"evil.com", false}, {"evil.com:80", false}, {"localhost.evil.com", false}, {"127.0.0.1.evil.com", false}, } for _, tt := range tests { t.Run(tt.addr, func(t *testing.T) { if got := IsLoopback(tt.addr); got != tt.want { t.Errorf("IsLoopback(%q) = %v, want %v", tt.addr, got, tt.want) } }) } }