tTest case for invalid nodetype - tordam - A library for peer discovery inside the Tor network
 (HTM) git clone https://git.parazyd.org/tordam
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 4a243dbcda09078c75236333aa81479e614b6968
 (DIR) parent 16efc093cb29433c52d3a1bfca018883c07f466a
 (HTM) Author: parazyd <parazyd@dyne.org>
       Date:   Mon, 11 Dec 2017 22:32:44 +0100
       
       Test case for invalid nodetype
       
       Diffstat:
         M cmd/dam-dir/main.go                 |       5 +++++
         M cmd/dam-dir/main_test.go            |      22 ++++++++++++++++++++++
       
       2 files changed, 27 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/cmd/dam-dir/main.go b/cmd/dam-dir/main.go
       t@@ -92,6 +92,11 @@ func handlePost(rw http.ResponseWriter, request *http.Request) {
                case "directory":
                        log.Println("Client of type:", n.Nodetype)
                default:
       +                log.Println("Invalid nodetype:", n.Nodetype)
       +                ret = map[string]string{"secret": "Invalid nodetype."}
       +                if err := postback(rw, ret, 400); err != nil {
       +                        lib.CheckError(err)
       +                }
                        return
                }
        
 (DIR) diff --git a/cmd/dam-dir/main_test.go b/cmd/dam-dir/main_test.go
       t@@ -61,6 +61,7 @@ func firstAnnValid() (*http.Response, error) {
        }
        
        func TestValidFirstHandshake(t *testing.T) {
       +        t.SkipNow()
                resp, err := firstAnnValid()
                if err != nil {
                        t.Fatal(err)
       t@@ -91,6 +92,7 @@ func TestValidFirstHandshake(t *testing.T) {
        }
        
        func TestValidSecondHandshake(t *testing.T) {
       +        t.SkipNow()
                resp, err := firstAnnValid()
                if err != nil {
                        t.Fatal(err)
       t@@ -151,6 +153,26 @@ func TestValidSecondHandshake(t *testing.T) {
                }
        }
        
       +func TestInvalidNodetypeFirst(t *testing.T) {
       +        vals := ValidFirst
       +        vals["nodetype"] = "foobar"
       +        resp, err := postReq(vals)
       +        if err != nil {
       +                t.Fatal(err)
       +        }
       +        if resp.StatusCode != 400 {
       +                t.Fatal("Server did not respond with HTTP 400")
       +        }
       +        m, err := getRespText(resp)
       +        if err != nil {
       +                t.Fatal(err)
       +        }
       +        if m.Secret == "Invalid nodetype." {
       +                t.Log("Server replied:", m.Secret)
       +        } else {
       +                t.Fatal("Server replied:", m.Secret)
       +        }
       +}
        func TestMain(m *testing.M) {
                //cmd := exec.Command("./dam-dir")
                //cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}