X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=src%2Ffoundation%2Fapi%2Frevel%2Fresults_test.go;fp=src%2Ffoundation%2Fapi%2Frevel%2Fresults_test.go;h=ce375d1cdba1e2ad3f1e172647f8686e998120b4;hb=1d1ee6961c93781e1187d8c7faa868da6b2f01f4;hp=0000000000000000000000000000000000000000;hpb=56dd5e0f2164b37b40ac1daa188ccc618b4cbd19;p=iec.git diff --git a/src/foundation/api/revel/results_test.go b/src/foundation/api/revel/results_test.go new file mode 100644 index 0000000..ce375d1 --- /dev/null +++ b/src/foundation/api/revel/results_test.go @@ -0,0 +1,73 @@ +// Copyright (c) 2012-2016 The Revel Framework Authors, All rights reserved. +// Revel Framework source code and usage is governed by a MIT style +// license that can be found in the LICENSE file. + +package revel + +import ( + "fmt" + "net/http/httptest" + "strings" + "testing" +) + +// Added test case for redirection testing for strings +func TestRedirect(t *testing.T) { + startFakeBookingApp() + redirect := RedirectToURLResult{fmt.Sprintf("/hotels/index/foo")} + resp := httptest.NewRecorder() + c := NewTestController(resp, showRequest) + redirect.Apply(c.Request, c.Response) + if resp.Header().Get("Location") != "/hotels/index/foo" { + t.Errorf("Failed to set redirect header correctly. : %s", resp.Header().Get("Location")) + } +} + +// Test that the render response is as expected. +func TestBenchmarkRender(t *testing.T) { + startFakeBookingApp() + resp := httptest.NewRecorder() + c := NewTestController(resp, showRequest) + if err := c.SetAction("Hotels", "Show"); err != nil { + t.Errorf("SetAction failed: %s", err) + } + result := Hotels{c}.Show(3) + result.Apply(c.Request, c.Response) + if !strings.Contains(resp.Body.String(), "300 Main St.") { + t.Errorf("Failed to find hotel address in action response:\n%s", resp.Body) + } +} + +func BenchmarkRenderChunked(b *testing.B) { + startFakeBookingApp() + resp := httptest.NewRecorder() + resp.Body = nil + c := NewTestController(resp, showRequest) + if err := c.SetAction("Hotels", "Show"); err != nil { + b.Errorf("SetAction failed: %s", err) + } + Config.SetOption("results.chunked", "true") + b.ResetTimer() + + hotels := Hotels{c} + for i := 0; i < b.N; i++ { + hotels.Show(3).Apply(c.Request, c.Response) + } +} + +func BenchmarkRenderNotChunked(b *testing.B) { + startFakeBookingApp() + resp := httptest.NewRecorder() + resp.Body = nil + c := NewTestController(resp, showRequest) + if err := c.SetAction("Hotels", "Show"); err != nil { + b.Errorf("SetAction failed: %s", err) + } + Config.SetOption("results.chunked", "false") + b.ResetTimer() + + hotels := Hotels{c} + for i := 0; i < b.N; i++ { + hotels.Show(3).Apply(c.Request, c.Response) + } +}