(t *testing.T)
| 178 | } |
| 179 | |
| 180 | func TestRegisterDenyEvil(t *testing.T) { |
| 181 | // TODO(rjeczalik): use sentinel error value instead |
| 182 | const authErr = "no valid authentication key found" |
| 183 | |
| 184 | legit, err := NewHelloKite("testuser", conf) |
| 185 | if err != nil { |
| 186 | t.Fatal(err) |
| 187 | } |
| 188 | |
| 189 | if _, err = legit.Kite.GetToken(legit.Kite.Kite()); err != nil { |
| 190 | t.Fatal(err) |
| 191 | } |
| 192 | |
| 193 | evil := kite.New("testuser", "1.0.0") |
| 194 | evil.Config = conf.Config.Copy() |
| 195 | evil.Config.Port = 6767 |
| 196 | evil.Config.Username = "testuser" |
| 197 | evil.Config.KontrolUser = "testuser" |
| 198 | evil.Config.KontrolURL = conf.Config.KontrolURL |
| 199 | evil.Config.KiteKey = testutil.NewToken("testuser", testkeys.PrivateEvil, testkeys.PublicEvil).Raw |
| 200 | // KontrolKey can be easily extracted from existing kite.key |
| 201 | evil.Config.KontrolKey = testkeys.Public |
| 202 | evil.Config.ReadEnvironmentVariables() |
| 203 | |
| 204 | evilURL := &url.URL{ |
| 205 | Scheme: "http", |
| 206 | Host: "127.0.0.1:6767", |
| 207 | Path: "/kite", |
| 208 | } |
| 209 | |
| 210 | _, err = evil.Register(evilURL) |
| 211 | if err == nil { |
| 212 | t.Errorf("expected kontrol to deny register request: %s", evil.Kite()) |
| 213 | } else { |
| 214 | t.Logf("register denied: %s", err) |
| 215 | } |
| 216 | |
| 217 | _, err = evil.GetToken(legit.Kite.Kite()) |
| 218 | if err == nil { |
| 219 | t.Errorf("expected kontrol to deny token request: %s", evil.Kite()) |
| 220 | } else { |
| 221 | t.Logf("token denied: %s", err) |
| 222 | } |
| 223 | |
| 224 | _, err = evil.TellKontrolWithTimeout("registerMachine", 4*time.Second, map[string]interface{}{}) |
| 225 | if err == nil { |
| 226 | t.Fatal("expected registerMachine to fail") |
| 227 | } |
| 228 | if !strings.Contains(err.Error(), authErr) { |
| 229 | t.Fatalf("got %q, want %q error", err, authErr) |
| 230 | } |
| 231 | } |
| 232 | |
| 233 | func TestMultipleRegister(t *testing.T) { |
| 234 | confCopy := *conf |
nothing calls this directly
no test coverage detected