package server import ( "net/http" "net/http/httptest" "strings" "testing" ) // newTestServer is a server on a fresh database with an admin signed in (the // cookie) and one machine, x1. func newTestServer(t *testing.T) (*Server, *http.Cookie) { t.Helper() db, err := OpenDB(t.TempDir() + "/t.db") if err != nil { t.Fatal(err) } s, err := New(Options{DB: db, DistDir: t.TempDir()}) if err != nil { t.Fatal(err) } hash, _ := hashPassword("Passw0rd12345") if err := db.CreateAdmin("adm", hash); err != nil { t.Fatal(err) } _ = db.SetConfig(cfgSetupDone, "1") a, _ := db.AdminByUsername("adm") if err := db.CreateSession("sid-test", a.ID, sessionTTL); err != nil { t.Fatal(err) } if err := db.CreateAgent(Agent{ID: "x1", Name: "t", Hostname: "h", OS: "linux", Arch: "amd64", TokenHash: "x"}); err != nil { t.Fatal(err) } return s, &http.Cookie{Name: sessionCookie, Value: "sid-test"} } func get(t *testing.T, s *Server, c *http.Cookie, path string) *httptest.ResponseRecorder { t.Helper() req := httptest.NewRequest(http.MethodGet, path, nil) req.AddCookie(c) w := httptest.NewRecorder() s.Handler().ServeHTTP(w, req) return w } func TestFragmentHasNoChrome(t *testing.T) { s, cookie := newTestServer(t) w := get(t, s, cookie, "/settings?frag=1") body := w.Body.String() if w.Code != 200 || strings.Contains(body, "