Add API Framework Revel Source Files
[iec.git] / src / foundation / api / revel / compress_test.go
1 // Copyright (c) 2012-2016 The Revel Framework Authors, All rights reserved.
2 // Revel Framework source code and usage is governed by a MIT style
3 // license that can be found in the LICENSE file.
4
5 package revel
6
7 import (
8         "net/http/httptest"
9         "strings"
10         "testing"
11 )
12
13 // Test that the render response is as expected.
14 func TestBenchmarkCompressed(t *testing.T) {
15         startFakeBookingApp()
16         resp := httptest.NewRecorder()
17         c := NewTestController(resp, showRequest)
18         if err := c.SetAction("Hotels", "Show"); err != nil {
19                 t.Errorf("SetAction failed: %s", err)
20         }
21         Config.SetOption("results.compressed", "true")
22         result := Hotels{c}.Show(3)
23         result.Apply(c.Request, c.Response)
24         if !strings.Contains(resp.Body.String(), "300 Main St.") {
25                 t.Errorf("Failed to find hotel address in action response:\n%s", resp.Body)
26         }
27 }
28
29 func BenchmarkRenderCompressed(b *testing.B) {
30         startFakeBookingApp()
31         resp := httptest.NewRecorder()
32         resp.Body = nil
33         c := NewTestController(resp, showRequest)
34         if err := c.SetAction("Hotels", "Show"); err != nil {
35                 b.Errorf("SetAction failed: %s", err)
36         }
37         Config.SetOption("results.compressed", "true")
38         b.ResetTimer()
39
40         hotels := Hotels{c}
41         for i := 0; i < b.N; i++ {
42                 hotels.Show(3).Apply(c.Request, c.Response)
43         }
44 }
45
46 func BenchmarkRenderUnCompressed(b *testing.B) {
47         startFakeBookingApp()
48         resp := httptest.NewRecorder()
49         resp.Body = nil
50         c := NewTestController(resp, showRequest)
51         if err := c.SetAction("Hotels", "Show"); err != nil {
52                 b.Errorf("SetAction failed: %s", err)
53         }
54         Config.SetOption("results.compressed", "false")
55         b.ResetTimer()
56
57         hotels := Hotels{c}
58         for i := 0; i < b.N; i++ {
59                 hotels.Show(3).Apply(c.Request, c.Response)
60         }
61 }