57aadc0b83673c3b42d44339431ecbad1a742d3a
[platform/core/system/edge-orchestration.git] / vendor / golang.org / x / net / http2 / h2c / h2c_test.go
1 // Copyright 2018 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 package h2c
6
7 import (
8         "bufio"
9         "bytes"
10         "fmt"
11         "log"
12         "net/http"
13         "testing"
14
15         "golang.org/x/net/http2"
16 )
17
18 func TestSettingsAckSwallowWriter(t *testing.T) {
19         var buf bytes.Buffer
20         swallower := newSettingsAckSwallowWriter(bufio.NewWriter(&buf))
21         fw := http2.NewFramer(swallower, nil)
22         fw.WriteSettings(http2.Setting{http2.SettingMaxFrameSize, 2})
23         fw.WriteSettingsAck()
24         fw.WriteData(1, true, []byte{})
25         swallower.Flush()
26
27         fr := http2.NewFramer(nil, bufio.NewReader(&buf))
28
29         f, err := fr.ReadFrame()
30         if err != nil {
31                 t.Fatal(err)
32         }
33         if f.Header().Type != http2.FrameSettings {
34                 t.Fatalf("Expected first frame to be SETTINGS. Got: %v", f.Header().Type)
35         }
36
37         f, err = fr.ReadFrame()
38         if err != nil {
39                 t.Fatal(err)
40         }
41         if f.Header().Type != http2.FrameData {
42                 t.Fatalf("Expected first frame to be DATA. Got: %v", f.Header().Type)
43         }
44 }
45
46 func ExampleNewHandler() {
47         handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
48                 fmt.Fprint(w, "Hello world")
49         })
50         h2s := &http2.Server{
51                 // ...
52         }
53         h1s := &http.Server{
54                 Addr:    ":8080",
55                 Handler: NewHandler(handler, h2s),
56         }
57         log.Fatal(h1s.ListenAndServe())
58 }