github.com/derat/nup@v0.0.0-20230418113745-15592ba7c620/server/song_test.go (about) 1 // Copyright 2021 Daniel Erat. 2 // All rights reserved. 3 4 package main 5 6 import "testing" 7 8 func TestParseRangeHeader(t *testing.T) { 9 for _, tc := range []struct { 10 head string 11 start, end int64 12 ok bool 13 }{ 14 {"", 0, -1, true}, // empty header 15 {"bytes=0-", 0, -1, true}, // open end with zero start 16 {"bytes=123-", 123, -1, true}, // open end with nonzero start 17 {"bytes=0-123", 0, 123, true}, // zero start and nonzero end 18 {"bytes=123-456", 123, 456, true}, // nonzero start and end 19 {"bytes=123-456, 789-1234", 0, 0, false}, // multiple ranges unsupported 20 {"bytes=-456", 0, 0, false}, // suffix unsupported 21 } { 22 if start, end, ok := parseRangeHeader(tc.head); start != tc.start || end != tc.end || ok != tc.ok { 23 t.Errorf("parseRangeHeader(%q) = (%v, %v, %v); want (%v, %v, %v)", 24 tc.head, start, end, ok, tc.start, tc.end, tc.ok) 25 } 26 } 27 }