@@ -243,7 +243,7 class Query < ActiveRecord::Base | |||||
243 | case operator_for(field) |
|
243 | case operator_for(field) | |
244 | when "=", ">=", "<=", "><" |
|
244 | when "=", ">=", "<=", "><" | |
245 | add_filter_error(field, :invalid) if values_for(field).detect {|v| |
|
245 | add_filter_error(field, :invalid) if values_for(field).detect {|v| | |
246 | v.present? && (!v.match(/\A\d{4}-\d{2}-\d{2}(T\d{2}((:)?\d{2}){,2}(Z|\d{2}:?\d{2})?)?\z/) || parse_date(v).nil?) |
|
246 | v.present? && (!v.match(/\A\d{4}-\d{2}-\d{2}(T\d{2}((:)?\d{2}){0,2}(Z|\d{2}:?\d{2})?)?\z/) || parse_date(v).nil?) | |
247 | } |
|
247 | } | |
248 | when ">t-", "<t-", "t-", ">t+", "<t+", "t+", "><t+", "><t-" |
|
248 | when ">t-", "<t-", "t-", ">t+", "<t+", "t+", "><t+", "><t-" | |
249 | add_filter_error(field, :invalid) if values_for(field).detect {|v| v.present? && !v.match(/^\d+$/) } |
|
249 | add_filter_error(field, :invalid) if values_for(field).detect {|v| v.present? && !v.match(/^\d+$/) } |
@@ -449,6 +449,13 class QueryTest < ActiveSupport::TestCase | |||||
449 | find_issues_with_query(query) |
|
449 | find_issues_with_query(query) | |
450 | end |
|
450 | end | |
451 |
|
451 | |||
|
452 | def test_operator_date_lesser_than_with_timestamp | |||
|
453 | query = IssueQuery.new(:name => '_') | |||
|
454 | query.add_filter('updated_on', '<=', ['2011-07-10T19:13:52']) | |||
|
455 | assert_match /issues\.updated_on <= '2011-07-10 19:13:52/, query.statement | |||
|
456 | find_issues_with_query(query) | |||
|
457 | end | |||
|
458 | ||||
452 | def test_operator_date_greater_than |
|
459 | def test_operator_date_greater_than | |
453 | query = IssueQuery.new(:name => '_') |
|
460 | query = IssueQuery.new(:name => '_') | |
454 | query.add_filter('due_date', '>=', ['2011-07-10']) |
|
461 | query.add_filter('due_date', '>=', ['2011-07-10']) | |
@@ -456,6 +463,13 class QueryTest < ActiveSupport::TestCase | |||||
456 | find_issues_with_query(query) |
|
463 | find_issues_with_query(query) | |
457 | end |
|
464 | end | |
458 |
|
465 | |||
|
466 | def test_operator_date_greater_than_with_timestamp | |||
|
467 | query = IssueQuery.new(:name => '_') | |||
|
468 | query.add_filter('updated_on', '>=', ['2011-07-10T19:13:52']) | |||
|
469 | assert_match /issues\.updated_on > '2011-07-10 19:13:51'/, query.statement | |||
|
470 | find_issues_with_query(query) | |||
|
471 | end | |||
|
472 | ||||
459 | def test_operator_date_between |
|
473 | def test_operator_date_between | |
460 | query = IssueQuery.new(:name => '_') |
|
474 | query = IssueQuery.new(:name => '_') | |
461 | query.add_filter('due_date', '><', ['2011-06-23', '2011-07-10']) |
|
475 | query.add_filter('due_date', '><', ['2011-06-23', '2011-07-10']) |
General Comments 0
You need to be logged in to leave comments.
Login now