X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=vendor%2Frails%2Factionpack%2Ftest%2Ftemplate%2Fbenchmark_helper_test.rb;fp=vendor%2Frails%2Factionpack%2Ftest%2Ftemplate%2Fbenchmark_helper_test.rb;h=08d453c965d4baf4ef9e55517e7c3769ac8efee7;hb=d115f2e23823271635bad69229a42cd8ac68debe;hp=0000000000000000000000000000000000000000;hpb=37cb670bf3ddde90b214e591f100ed4446469484;p=depot.git diff --git a/vendor/rails/actionpack/test/template/benchmark_helper_test.rb b/vendor/rails/actionpack/test/template/benchmark_helper_test.rb new file mode 100644 index 0000000..08d453c --- /dev/null +++ b/vendor/rails/actionpack/test/template/benchmark_helper_test.rb @@ -0,0 +1,60 @@ +require 'abstract_unit' +require 'action_view/helpers/benchmark_helper' + +class BenchmarkHelperTest < ActionView::TestCase + tests ActionView::Helpers::BenchmarkHelper + + class MockLogger + attr_reader :logged + + def initialize + @logged = [] + end + + def method_missing(method, *args) + @logged << [method, args] + end + end + + def controller + @controller ||= Struct.new(:logger).new(MockLogger.new) + end + + def test_without_block + assert_raise(LocalJumpError) { benchmark } + assert controller.logger.logged.empty? + end + + def test_defaults + i_was_run = false + benchmark { i_was_run = true } + assert i_was_run + assert 1, controller.logger.logged.size + assert_last_logged + end + + def test_with_message + i_was_run = false + benchmark('test_run') { i_was_run = true } + assert i_was_run + assert 1, controller.logger.logged.size + assert_last_logged 'test_run' + end + + def test_with_message_and_level + i_was_run = false + benchmark('debug_run', :debug) { i_was_run = true } + assert i_was_run + assert 1, controller.logger.logged.size + assert_last_logged 'debug_run', :debug + end + + private + def assert_last_logged(message = 'Benchmarking', level = :info) + last = controller.logger.logged.last + assert 2, last.size + assert_equal level, last.first + assert 1, last[1].size + assert last[1][0] =~ /^#{message} \(.*\)$/ + end +end