MCPcopy Index your code
hub / github.com/koding/kite / TestRegisterDenyEvil

Function TestRegisterDenyEvil

kontrol/kontrol_test.go:180–231  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

178}
179
180func 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
233func TestMultipleRegister(t *testing.T) {
234 confCopy := *conf

Callers

nothing calls this directly

Calls 9

NewHelloKiteFunction · 0.85
FatalMethod · 0.80
GetTokenMethod · 0.80
CopyMethod · 0.80
ErrorMethod · 0.65
KiteMethod · 0.45
RegisterMethod · 0.45

Tested by

no test coverage detected