// Copyright 2018 syzkaller project authors. All rights reserved. // Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. package main import ( "fmt" "testing" ) func TestAuth(t *testing.T) { hub := &Hub{ keys: map[string]string{ "foo": "1234", "bar": "abcd", }, } tests := []struct { client string key string manager string result string ok bool }{ { client: "", key: "", manager: "", result: "", ok: false, }, { client: "", key: "1234", manager: "manager", result: "", ok: false, }, { client: "foo", key: "", manager: "foo", result: "", ok: false, }, { client: "foo", key: "123", manager: "foo", result: "", ok: false, }, { client: "foo", key: "abcd", manager: "foo", result: "", ok: false, }, { client: "foo", key: "1234", manager: "foo", result: "foo", ok: true, }, { client: "foo", key: "1234", manager: "foo-suffix", result: "foo-suffix", ok: true, }, { client: "foo", key: "1234", manager: "", result: "foo", ok: true, }, { client: "foo", key: "1234", manager: "bar", result: "", ok: false, }, } for _, test := range tests { t.Run(fmt.Sprintf("%q/%q/%q", test.client, test.key, test.manager), func(t *testing.T) { manager, err := hub.auth(test.client, test.key, test.manager) if !test.ok && err == nil { t.Fatalf("auth is expected to fail, but it did not") } if test.ok && err != nil { t.Fatalf("auth is not expected to fail, but it did: %v", err) } if manager != test.result { t.Fatalf("got bad manager %q, want %q", manager, test.result) } }) } }