Project

General

Profile

Defect #39991 » 39991.patch

Go MAEDA, 2024-01-01 06:08

View differences:

app/models/query.rb
1276 1276
      sql += " OR #{db_table}.#{db_field} = ''" if is_custom_filter || [:text, :string].include?(type_for(field))
1277 1277
    when "*"
1278 1278
      sql = "#{db_table}.#{db_field} IS NOT NULL"
1279
      sql += " AND #{db_table}.#{db_field} <> ''" if is_custom_filter
1279
      sql += " AND #{db_table}.#{db_field} <> ''" if is_custom_filter || [:text, :string].include?(type_for(field))
1280 1280
    when ">="
1281 1281
      if [:date, :date_past].include?(type_for(field))
1282 1282
        sql = date_clause(db_table, db_field, parse_date(value.first), nil, is_custom_filter)
test/unit/query_test.rb
214 214
    assert issues.all? {|i| i.custom_field_value(2).blank?}
215 215
  end
216 216

  
217
  def test_operator_none_for_text
217
  def test_operator_none_for_blank_text
218 218
    query = IssueQuery.new(:name => '_')
219 219
    query.add_filter('status_id', '*', [''])
220 220
    query.add_filter('description', '!*', [''])
......
226 226
    assert_equal [11, 12], issues.map(&:id).sort
227 227
  end
228 228

  
229
  def test_operator_any_for_blank_text
230
    Issue.where(id: [1, 2]).update_all(description: '')
231
    query = IssueQuery.new(:name => '_')
232
    query.add_filter('status_id', '*', [''])
233
    query.add_filter('description', '*', [''])
234
    assert query.has_filter?('description')
235
    issues = find_issues_with_query(query)
236

  
237
    assert issues.any?
238
    assert issues.all? {|i| i.description.present?}
239
    assert_empty issues.map(&:id) & [1, 2]
240
  end
241

  
229 242
  def test_operator_all
230 243
    query = IssueQuery.new(:project => Project.find(1), :name => '_')
231 244
    query.add_filter('fixed_version_id', '*', [''])
(2-2/2)