Add missing files, update style
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
package web
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io"
|
||||
"net/http"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"pcap-web-tools/internal/pcap"
|
||||
)
|
||||
|
||||
func TestReorderHandler(t *testing.T) {
|
||||
srv, err := New(Config{MaxUploadBytes: 1 << 20})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
var in bytes.Buffer
|
||||
w, _ := pcap.NewWriter(&in, pcap.LinkTypeEthernet)
|
||||
for _, sec := range []int64{3, 1, 2} {
|
||||
w.WritePacket(time.Unix(sec, 0), []byte{byte(sec)})
|
||||
}
|
||||
|
||||
rec := postUpload(t, srv, "/reorder", "trace.pcap", in.Bytes(), nil)
|
||||
if rec.Code != http.StatusOK {
|
||||
t.Fatalf("status %d: %s", rec.Code, rec.Body)
|
||||
}
|
||||
if cd := rec.Header().Get("Content-Disposition"); cd != `attachment; filename="trace_reordered.pcap"` {
|
||||
t.Errorf("Content-Disposition %q", cd)
|
||||
}
|
||||
if got := rec.Header().Get("X-Pcap-Out-Of-Order"); got != "2" {
|
||||
t.Errorf("X-Pcap-Out-Of-Order %q", got)
|
||||
}
|
||||
r, err := pcap.NewReader(rec.Body)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
var order []byte
|
||||
for {
|
||||
p, err := r.Next()
|
||||
if err == io.EOF {
|
||||
break
|
||||
}
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
order = append(order, p[16])
|
||||
}
|
||||
if !bytes.Equal(order, []byte{1, 2, 3}) {
|
||||
t.Errorf("order %v", order)
|
||||
}
|
||||
|
||||
for name, file := range map[string][]byte{"no file": nil, "not pcap": []byte("hello world, not a pcap file")} {
|
||||
rec := postUpload(t, srv, "/reorder", "x.pcap", file, nil)
|
||||
if rec.Code != http.StatusBadRequest || !strings.Contains(rec.Body.String(), `class="error"`) {
|
||||
t.Errorf("%s: status %d", name, rec.Code)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user