package gpx
import (
"strings"
"testing"
"time"
)
func TestTrackEscapesFields(t *testing.T) {
elevation := 123.456
timestamp := time.Date(2026, 6, 1, 10, 30, 0, 0, time.UTC)
data, err := Track("creator & test", "A & B", []Point{{
Lat: 46.1,
Lon: 8.2,
Elevation: &elevation,
Time: ×tamp,
}})
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
gpx := string(data)
for _, want := range []string{
`creator="creator & test"`,
"A & B",
`lat="46.10000000" lon="8.20000000"`,
"123.46",
"",
} {
if !strings.Contains(gpx, want) {
t.Fatalf("expected %q in %s", want, gpx)
}
}
}
func TestTrackRejectsEmptyPoints(t *testing.T) {
if _, err := Track("", "empty", nil); err == nil {
t.Fatal("expected error")
}
}