func main() { port := os.Getenv("PORT") if port == "" { port = "3000" } host := os.Getenv("HOST") templates.Init("templates") models.InitDb(os.Getenv("DATABASE_URL")) addon.Init(os.Getenv("HEROKU_ID"), os.Getenv("HEROKU_API_PASSWORD"), os.Getenv("HEROKU_SSO_SALT")) rand.Seed(time.Now().UTC().UnixNano()) r := mux.NewRouter() r.SkipClean(true) // have to use whatupdave/mux until Gorilla supports this new(controllers.AccountsController).Init(r) new(controllers.HerokuResourcesController).Init(r) new(controllers.HomeController).Init(r) new(controllers.ImagesController).Init(r) new(controllers.RegistrationsController).Init(r) new(controllers.SessionsController).Init(r) new(controllers.SsoSessionsController).Init(r) r.PathPrefix("/").Handler(http.FileServer(http.Dir("static"))) n := negroni.Classic() n.UseHandler(r) n.Run(host + ":" + port) }
func TestRecordingImageRequests(t *testing.T) { models.InitDb("postgres://localhost/firesize_test?sslmode=disable") defer models.Dbm.TruncateTables() router := mux.NewRouter() router.SkipClean(true) new(ImagesController).Init(router) recorder := httptest.NewRecorder() account := models.Account{ CreatedAt: time.Now(), Email: "*****@*****.**", Subdomain: "testing", } err := models.Insert(&account) if err != nil { t.Fatal(err.Error()) } request, err := http.NewRequest("GET", "http://testing.firesize.dev/500x300/g_center/http://placekitten.com/g/800/600", nil) if err != nil { t.Fatal("Failed to GET http://testing.firesize.dev/500x300/g_center/http://placekitten.com/g/800/600") } router.ServeHTTP(recorder, request) if recorder.Code != http.StatusOK { t.Fatal("Incorrect response code returned. Expected: ", http.StatusOK, ", Received: ", recorder.Code) } count := models.FindImageRequestCountForAccount(&account) if count != 1 { t.Fatal("Incorrect image request count. Expected: 1, Received: ", count) } }