Home | History | Annotate | Download | only in httptest
      1 // Copyright 2013 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 httptest_test
      6 
      7 import (
      8 	"fmt"
      9 	"io/ioutil"
     10 	"log"
     11 	"net/http"
     12 	"net/http/httptest"
     13 )
     14 
     15 func ExampleResponseRecorder() {
     16 	handler := func(w http.ResponseWriter, r *http.Request) {
     17 		http.Error(w, "something failed", http.StatusInternalServerError)
     18 	}
     19 
     20 	req, err := http.NewRequest("GET", "http://example.com/foo", nil)
     21 	if err != nil {
     22 		log.Fatal(err)
     23 	}
     24 
     25 	w := httptest.NewRecorder()
     26 	handler(w, req)
     27 
     28 	fmt.Printf("%d - %s", w.Code, w.Body.String())
     29 	// Output: 500 - something failed
     30 }
     31 
     32 func ExampleServer() {
     33 	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
     34 		fmt.Fprintln(w, "Hello, client")
     35 	}))
     36 	defer ts.Close()
     37 
     38 	res, err := http.Get(ts.URL)
     39 	if err != nil {
     40 		log.Fatal(err)
     41 	}
     42 	greeting, err := ioutil.ReadAll(res.Body)
     43 	res.Body.Close()
     44 	if err != nil {
     45 		log.Fatal(err)
     46 	}
     47 
     48 	fmt.Printf("%s", greeting)
     49 	// Output: Hello, client
     50 }
     51