OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libgo/] [go/] [net/] [http/] [filetransport_test.go] - Rev 747

Compare with Previous | Blame | View Log

// Copyright 2011 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 http_test

import (
        "io/ioutil"
        "net/http"
        "os"
        "path/filepath"
        "testing"
)

func checker(t *testing.T) func(string, error) {
        return func(call string, err error) {
                if err == nil {
                        return
                }
                t.Fatalf("%s: %v", call, err)
        }
}

func TestFileTransport(t *testing.T) {
        check := checker(t)

        dname, err := ioutil.TempDir("", "")
        check("TempDir", err)
        fname := filepath.Join(dname, "foo.txt")
        err = ioutil.WriteFile(fname, []byte("Bar"), 0644)
        check("WriteFile", err)
        defer os.Remove(dname)
        defer os.Remove(fname)

        tr := &http.Transport{}
        tr.RegisterProtocol("file", http.NewFileTransport(http.Dir(dname)))
        c := &http.Client{Transport: tr}

        fooURLs := []string{"file:///foo.txt", "file://../foo.txt"}
        for _, urlstr := range fooURLs {
                res, err := c.Get(urlstr)
                check("Get "+urlstr, err)
                if res.StatusCode != 200 {
                        t.Errorf("for %s, StatusCode = %d, want 200", urlstr, res.StatusCode)
                }
                if res.ContentLength != -1 {
                        t.Errorf("for %s, ContentLength = %d, want -1", urlstr, res.ContentLength)
                }
                if res.Body == nil {
                        t.Fatalf("for %s, nil Body", urlstr)
                }
                slurp, err := ioutil.ReadAll(res.Body)
                check("ReadAll "+urlstr, err)
                if string(slurp) != "Bar" {
                        t.Errorf("for %s, got content %q, want %q", urlstr, string(slurp), "Bar")
                }
        }

        const badURL = "file://../no-exist.txt"
        res, err := c.Get(badURL)
        check("Get "+badURL, err)
        if res.StatusCode != 404 {
                t.Errorf("for %s, StatusCode = %d, want 404", badURL, res.StatusCode)
        }
}

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.