5d2af7cdd9211c5daaf76f428b359119f746b512
[feedcatcher.git] / vendor / rails / actionpack / test / template / benchmark_helper_test.rb
1 require 'abstract_unit'
2 require 'action_view/helpers/benchmark_helper'
3
4 class BenchmarkHelperTest < ActionView::TestCase
5 tests ActionView::Helpers::BenchmarkHelper
6
7 def teardown
8 controller.logger.send(:clear_buffer)
9 end
10
11 def controller
12 logger = ActiveSupport::BufferedLogger.new(StringIO.new)
13 logger.auto_flushing = false
14 @controller ||= Struct.new(:logger).new(logger)
15 end
16
17 def test_without_block
18 assert_raise(LocalJumpError) { benchmark }
19 assert buffer.empty?
20 end
21
22 def test_defaults
23 i_was_run = false
24 benchmark { i_was_run = true }
25 assert i_was_run
26 assert_last_logged
27 end
28
29 def test_with_message
30 i_was_run = false
31 benchmark('test_run') { i_was_run = true }
32 assert i_was_run
33 assert_last_logged 'test_run'
34 end
35
36 def test_with_message_and_deprecated_level
37 i_was_run = false
38
39 assert_deprecated do
40 benchmark('debug_run', :debug) { i_was_run = true }
41 end
42
43 assert i_was_run
44 assert_last_logged 'debug_run'
45 end
46
47 def test_within_level
48 controller.logger.level = ActiveSupport::BufferedLogger::DEBUG
49 benchmark('included_debug_run', :level => :debug) { }
50 assert_last_logged 'included_debug_run'
51 end
52
53 def test_outside_level
54 controller.logger.level = ActiveSupport::BufferedLogger::ERROR
55 benchmark('skipped_debug_run', :level => :debug) { }
56 assert_no_match(/skipped_debug_run/, buffer.last)
57 ensure
58 controller.logger.level = ActiveSupport::BufferedLogger::DEBUG
59 end
60
61 def test_without_silencing
62 benchmark('debug_run', :silence => false) do
63 controller.logger.info "not silenced!"
64 end
65
66 assert_equal 2, buffer.size
67 end
68
69 def test_with_silencing
70 benchmark('debug_run', :silence => true) do
71 controller.logger.info "silenced!"
72 end
73
74 assert_equal 1, buffer.size
75 end
76
77
78 private
79 def buffer
80 controller.logger.send(:buffer)
81 end
82
83 def assert_last_logged(message = 'Benchmarking')
84 assert_match(/^#{message} \(.*\)$/, buffer.last)
85 end
86 end