|
| 1 | +require File.expand_path('../test_helper', __dir__) |
| 2 | + |
| 3 | +class IssueDatetimeSettingsTest < Redmine::ControllerTest |
| 4 | + tests SettingsController |
| 5 | + |
| 6 | + fixtures :projects, :users, :email_addresses, :roles, :trackers, |
| 7 | + :projects_trackers, :enabled_modules |
| 8 | + |
| 9 | + def setup |
| 10 | + @request.session[:user_id] = 1 |
| 11 | + end |
| 12 | + |
| 13 | + test 'the plugin settings page renders' do |
| 14 | + get :plugin, params: {id: 'redmine_issue_datetime'} |
| 15 | + |
| 16 | + assert_response :success |
| 17 | + assert_select 'select[name=?]', 'settings[time_step]' |
| 18 | + assert_select 'select[name=?]', 'settings[reference_zone]' |
| 19 | + # A checkbox per tracker, not just the hidden field that clears the list. |
| 20 | + assert_select 'input[type=checkbox][name=?]', 'settings[tracker_ids][]', |
| 21 | + count: Tracker.count |
| 22 | + end |
| 23 | + |
| 24 | + test 'saving the plugin settings works' do |
| 25 | + post :plugin, params: { |
| 26 | + id: 'redmine_issue_datetime', |
| 27 | + settings: {'tracker_ids' => ['', '1'], 'time_step' => '30', 'reference_zone' => 'Tokyo'} |
| 28 | + } |
| 29 | + |
| 30 | + assert_redirected_to controller: 'settings', action: 'plugin', id: 'redmine_issue_datetime' |
| 31 | + assert RedmineIssueDatetime.enabled_for?(1) |
| 32 | + assert_not RedmineIssueDatetime.enabled_for?(2) |
| 33 | + assert_equal 30, RedmineIssueDatetime.time_step_minutes |
| 34 | + assert_equal 'Asia/Tokyo', RedmineIssueDatetime.reference_zone.tzinfo.name |
| 35 | + end |
| 36 | +end |
0 commit comments