// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package h2c import ( "bufio" "bytes" "fmt" "log" "net/http" "testing" "golang.org/x/net/http2" ) func TestSettingsAckSwallowWriter(t *testing.T) { var buf bytes.Buffer swallower := newSettingsAckSwallowWriter(bufio.NewWriter(&buf)) fw := http2.NewFramer(swallower, nil) fw.WriteSettings(http2.Setting{http2.SettingMaxFrameSize, 2}) fw.WriteSettingsAck() fw.WriteData(1, true, []byte{}) swallower.Flush() fr := http2.NewFramer(nil, bufio.NewReader(&buf)) f, err := fr.ReadFrame() if err != nil { t.Fatal(err) } if f.Header().Type != http2.FrameSettings { t.Fatalf("Expected first frame to be SETTINGS. Got: %v", f.Header().Type) } f, err = fr.ReadFrame() if err != nil { t.Fatal(err) } if f.Header().Type != http2.FrameData { t.Fatalf("Expected first frame to be DATA. Got: %v", f.Header().Type) } } func ExampleNewHandler() { handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "Hello world") }) h2s := &http2.Server{ // ... } h1s := &http.Server{ Addr: ":8080", Handler: NewHandler(handler, h2s), } log.Fatal(h1s.ListenAndServe()) }