github.com/glycerine/docker@v1.8.2/api/server/form_test.go (about)

     1  package server
     2  
     3  import (
     4  	"net/http"
     5  	"net/url"
     6  	"testing"
     7  )
     8  
     9  func TestBoolValue(t *testing.T) {
    10  	cases := map[string]bool{
    11  		"":      false,
    12  		"0":     false,
    13  		"no":    false,
    14  		"false": false,
    15  		"none":  false,
    16  		"1":     true,
    17  		"yes":   true,
    18  		"true":  true,
    19  		"one":   true,
    20  		"100":   true,
    21  	}
    22  
    23  	for c, e := range cases {
    24  		v := url.Values{}
    25  		v.Set("test", c)
    26  		r, _ := http.NewRequest("POST", "", nil)
    27  		r.Form = v
    28  
    29  		a := boolValue(r, "test")
    30  		if a != e {
    31  			t.Fatalf("Value: %s, expected: %v, actual: %v", c, e, a)
    32  		}
    33  	}
    34  }
    35  
    36  func TestBoolValueOrDefault(t *testing.T) {
    37  	r, _ := http.NewRequest("GET", "", nil)
    38  	if !boolValueOrDefault(r, "queryparam", true) {
    39  		t.Fatal("Expected to get true default value, got false")
    40  	}
    41  
    42  	v := url.Values{}
    43  	v.Set("param", "")
    44  	r, _ = http.NewRequest("GET", "", nil)
    45  	r.Form = v
    46  	if boolValueOrDefault(r, "param", true) {
    47  		t.Fatal("Expected not to get true")
    48  	}
    49  }
    50  
    51  func TestInt64ValueOrZero(t *testing.T) {
    52  	cases := map[string]int64{
    53  		"":     0,
    54  		"asdf": 0,
    55  		"0":    0,
    56  		"1":    1,
    57  	}
    58  
    59  	for c, e := range cases {
    60  		v := url.Values{}
    61  		v.Set("test", c)
    62  		r, _ := http.NewRequest("POST", "", nil)
    63  		r.Form = v
    64  
    65  		a := int64ValueOrZero(r, "test")
    66  		if a != e {
    67  			t.Fatalf("Value: %s, expected: %v, actual: %v", c, e, a)
    68  		}
    69  	}
    70  }