translation_test.rb 2.0 KB
Newer Older
1 2
require 'abstract_unit'

3 4 5 6 7 8 9 10 11
module AbstractController
  module Testing
    class TranslationController < AbstractController::Base
      include AbstractController::Translation
    end

    class TranslationControllerTest < ActiveSupport::TestCase
      def setup
        @controller = TranslationController.new
12 13 14 15 16 17 18 19 20 21
        I18n.backend.store_translations(:en, {
          one: {
            two: 'bar',
          },
          abstract_controller: {
            testing: {
              translation: {
                index: {
                  foo: 'bar',
                },
22
                no_action: 'no_action_tr',
23 24 25 26
              },
            },
          },
        })
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
      end

      def test_action_controller_base_responds_to_translate
        assert_respond_to @controller, :translate
      end

      def test_action_controller_base_responds_to_t
        assert_respond_to @controller, :t
      end

      def test_action_controller_base_responds_to_localize
        assert_respond_to @controller, :localize
      end

      def test_action_controller_base_responds_to_l
        assert_respond_to @controller, :l
      end

      def test_lazy_lookup
46 47 48
        @controller.stub :action_name, :index do
          assert_equal 'bar', @controller.t('.foo')
        end
49 50 51
      end

      def test_lazy_lookup_with_symbol
52 53 54
        @controller.stub :action_name, :index do
          assert_equal 'bar', @controller.t(:'.foo')
        end
55 56
      end

57
      def test_lazy_lookup_fallback
58 59 60
        @controller.stub :action_name, :index do
          assert_equal 'no_action_tr', @controller.t(:'.no_action')
        end
61 62
      end

63
      def test_default_translation
64 65 66
        @controller.stub :action_name, :index do
          assert_equal 'bar', @controller.t('one.two')
        end
67 68 69 70
      end

      def test_localize
        time, expected = Time.gm(2000), 'Sat, 01 Jan 2000 00:00:00 +0000'
71 72 73
        I18n.stub :localize, expected do
          assert_equal expected, @controller.l(time)
        end
74 75
      end
    end
76
  end
77
end