1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
require 'test_helper'
class MenuItemsControllerTest < ActionController::TestCase
def create_menu_item(title = "Ausgangstitel")
item = MenuItem.new(:path => "/menu_title_test")
item.titles = { I18n.default_locale.to_s => title }
item.save!
item
end
test "updating stores a title per locale" do
login_as :aaron
item = create_menu_item
patch :update, params: { :id => item.id,
:menu_item => { :titles => { "de" => "Transparenz", "en" => "Transparency" } } }
assert_equal "Transparenz", item.reload.translations.find_by(:locale => "de").title
assert_equal "Transparency", item.translations.find_by(:locale => "en").title
end
test "blanking a non-default title falls back to the default locale" do
login_as :aaron
item = create_menu_item
patch :update, params: { :id => item.id,
:menu_item => { :titles => { "de" => "Transparenz", "en" => "Transparency" } } }
patch :update, params: { :id => item.id,
:menu_item => { :titles => { "de" => "Transparenz", "en" => "" } } }
item.reload
assert_equal "Transparenz", Globalize.with_locale(:en) { item.title }
end
test "a blank default title is rejected" do
login_as :aaron
item = create_menu_item
patch :update, params: { :id => item.id,
:menu_item => { :titles => { "de" => "" } } }
assert_response :success # re-rendered :edit, not a redirect
assert_not_equal "", item.reload.translations.find_by(:locale => "de").title
end
test "an editor without redaktion cannot reach the menu" do
login_as :quentin
get :index
assert_redirected_to admin_path
assert_equal I18n.t("flash.common.redaktion_required"), flash[:error]
end
end
|