setting_thumbnails_enabled: Display attachment thumbnails
setting_thumbnails_size: Thumbnails size (in pixels)
setting_non_working_week_days: Non-working days
+ setting_jsonp_enabled: Enable JSONP support
permission_add_project: Create project
permission_add_subprojects: Create subprojects
setting_thumbnails_enabled: Afficher les vignettes des images
setting_thumbnails_size: Taille des vignettes (en pixels)
setting_non_working_week_days: Jours non travaillés
+ setting_jsonp_enabled: Activer le support JSONP
permission_add_project: Créer un projet
permission_add_subprojects: Créer des sous-projets
def initialize(request, response)
super
- self.jsonp = (request.params[:callback] || request.params[:jsonp]).to_s.gsub(/[^a-zA-Z0-9_]/, '')
+ callback = request.params[:callback] || request.params[:jsonp]
+ if callback && Setting.jsonp_enabled?
+ self.jsonp = callback.to_s.gsub(/[^a-zA-Z0-9_]/, '')
+ end
end
def output
class Redmine::ApiTest::JsonpTest < Redmine::ApiTest::Base
fixtures :trackers
+ def test_should_ignore_jsonp_callback_with_jsonp_disabled
+ with_settings :jsonp_enabled => '0' do
+ get '/trackers.json?jsonp=handler'
+ end
+
+ assert_response :success
+ assert_match %r{^\{"trackers":.+\}$}, response.body
+ assert_equal 'application/json; charset=utf-8', response.headers['Content-Type']
+ end
+
def test_jsonp_should_accept_callback_param
- get '/trackers.json?callback=handler'
+ with_settings :jsonp_enabled => '1' do
+ get '/trackers.json?callback=handler'
+ end
assert_response :success
assert_match %r{^handler\(\{"trackers":.+\}\)$}, response.body
end
def test_jsonp_should_accept_jsonp_param
- get '/trackers.json?jsonp=handler'
+ with_settings :jsonp_enabled => '1' do
+ get '/trackers.json?jsonp=handler'
+ end
assert_response :success
assert_match %r{^handler\(\{"trackers":.+\}\)$}, response.body
end
def test_jsonp_should_strip_invalid_characters_from_callback
- get '/trackers.json?callback=+-aA$1_'
+ with_settings :jsonp_enabled => '1' do
+ get '/trackers.json?callback=+-aA$1_'
+ end
assert_response :success
assert_match %r{^aA1_\(\{"trackers":.+\}\)$}, response.body
end
def test_jsonp_without_callback_should_return_json
- get '/trackers.json?callback='
+ with_settings :jsonp_enabled => '1' do
+ get '/trackers.json?callback='
+ end
assert_response :success
assert_match %r{^\{"trackers":.+\}$}, response.body