@@ -176,6 +176,13 class Query < ActiveRecord::Base | |||||
176 | errors.add(label_for(field), :invalid) if values_for(field).detect {|v| v.present? && !v.match(/^\d+$/) } |
|
176 | errors.add(label_for(field), :invalid) if values_for(field).detect {|v| v.present? && !v.match(/^\d+$/) } | |
177 | when :float |
|
177 | when :float | |
178 | errors.add(label_for(field), :invalid) if values_for(field).detect {|v| v.present? && !v.match(/^\d+(\.\d*)?$/) } |
|
178 | errors.add(label_for(field), :invalid) if values_for(field).detect {|v| v.present? && !v.match(/^\d+(\.\d*)?$/) } | |
|
179 | when :date, :date_past | |||
|
180 | case operator_for(field) | |||
|
181 | when "=", ">=", "<=", "><" | |||
|
182 | errors.add(label_for(field), :invalid) if values_for(field).detect {|v| v.present? && !v.match(/^\d{4}-\d{2}-\d{2}$/) } | |||
|
183 | when ">t-", "<t-", "t-" | |||
|
184 | errors.add(label_for(field), :invalid) if values_for(field).detect {|v| v.present? && !v.match(/^\d+$/) } | |||
|
185 | end | |||
179 | end |
|
186 | end | |
180 | end |
|
187 | end | |
181 |
|
188 |
@@ -171,6 +171,22 class QueryTest < ActiveSupport::TestCase | |||||
171 | find_issues_with_query(query) |
|
171 | find_issues_with_query(query) | |
172 | end |
|
172 | end | |
173 |
|
173 | |||
|
174 | def test_date_filter_should_not_accept_non_date_values | |||
|
175 | query = Query.new(:name => '_') | |||
|
176 | query.add_filter('created_on', '=', ['a']) | |||
|
177 | ||||
|
178 | assert query.has_filter?('created_on') | |||
|
179 | assert !query.valid? | |||
|
180 | end | |||
|
181 | ||||
|
182 | def test_relative_date_filter_should_not_accept_non_integer_values | |||
|
183 | query = Query.new(:name => '_') | |||
|
184 | query.add_filter('created_on', '>t-', ['a']) | |||
|
185 | ||||
|
186 | assert query.has_filter?('created_on') | |||
|
187 | assert !query.valid? | |||
|
188 | end | |||
|
189 | ||||
174 | def test_operator_date_equals |
|
190 | def test_operator_date_equals | |
175 | query = Query.new(:name => '_') |
|
191 | query = Query.new(:name => '_') | |
176 | query.add_filter('due_date', '=', ['2011-07-10']) |
|
192 | query.add_filter('due_date', '=', ['2011-07-10']) |
General Comments 0
You need to be logged in to leave comments.
Login now