Skip to content

Commit 25f3808

Browse files
authored
Merge pull request #7 from gtt-project/test/settings-page
Add plugin settings page tests
2 parents c584eec + 1af4b8d commit 25f3808

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
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

Comments
 (0)