diff options
| author | erdgeist <erdgeist@erdgeist.org> | 2026-07-28 00:02:55 +0200 |
|---|---|---|
| committer | erdgeist <erdgeist@erdgeist.org> | 2026-07-28 00:02:55 +0200 |
| commit | eca95f90de3de7c6507fc529e00e1e36f136a234 (patch) | |
| tree | c2ad60e1c3f7ff7969da2e004b245f662a32df4c /test/controllers/menu_items_controller_test.rb | |
| parent | 7605ececf7055e6da28eb54160324356c5dfe31c (diff) | |
Let editors manage menu titles in both locales
Diffstat (limited to 'test/controllers/menu_items_controller_test.rb')
| -rw-r--r-- | test/controllers/menu_items_controller_test.rb | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/test/controllers/menu_items_controller_test.rb b/test/controllers/menu_items_controller_test.rb index c47467a3..15a7b30b 100644 --- a/test/controllers/menu_items_controller_test.rb +++ b/test/controllers/menu_items_controller_test.rb | |||
| @@ -1,8 +1,44 @@ | |||
| 1 | require 'test_helper' | 1 | require 'test_helper' |
| 2 | 2 | ||
| 3 | class MenuItemsControllerTest < ActionController::TestCase | 3 | class MenuItemsControllerTest < ActionController::TestCase |
| 4 | # Replace this with your real tests. | 4 | def create_menu_item(title = "Ausgangstitel") |
| 5 | test "the truth" do | 5 | item = MenuItem.new(:path => "/menu_title_test") |
| 6 | assert true | 6 | item.titles = { I18n.default_locale.to_s => title } |
| 7 | item.save! | ||
| 8 | item | ||
| 9 | end | ||
| 10 | |||
| 11 | test "updating stores a title per locale" do | ||
| 12 | login_as :quentin | ||
| 13 | item = create_menu_item | ||
| 14 | |||
| 15 | patch :update, params: { :id => item.id, | ||
| 16 | :menu_item => { :titles => { "de" => "Transparenz", "en" => "Transparency" } } } | ||
| 17 | |||
| 18 | assert_equal "Transparenz", item.reload.translations.find_by(:locale => "de").title | ||
| 19 | assert_equal "Transparency", item.translations.find_by(:locale => "en").title | ||
| 20 | end | ||
| 21 | |||
| 22 | test "blanking a non-default title falls back to the default locale" do | ||
| 23 | login_as :quentin | ||
| 24 | item = create_menu_item | ||
| 25 | patch :update, params: { :id => item.id, | ||
| 26 | :menu_item => { :titles => { "de" => "Transparenz", "en" => "Transparency" } } } | ||
| 27 | |||
| 28 | patch :update, params: { :id => item.id, | ||
| 29 | :menu_item => { :titles => { "de" => "Transparenz", "en" => "" } } } | ||
| 30 | |||
| 31 | item.reload | ||
| 32 | assert_equal "Transparenz", Globalize.with_locale(:en) { item.title } | ||
| 33 | end | ||
| 34 | |||
| 35 | test "a blank default title is rejected" do | ||
| 36 | login_as :quentin | ||
| 37 | item = create_menu_item | ||
| 38 | patch :update, params: { :id => item.id, | ||
| 39 | :menu_item => { :titles => { "de" => "" } } } | ||
| 40 | |||
| 41 | assert_response :success # re-rendered :edit, not a redirect | ||
| 42 | assert_not_equal "", item.reload.translations.find_by(:locale => "de").title | ||
| 7 | end | 43 | end |
| 8 | end | 44 | end |
