public
Description: Fu-fu: The Profanity Filter for Rails.
Homepage: http://adambair.lighthouseapp.com/projects/12000-fu-fu/overview
Clone URL: git://github.com/adambair/fu-fu.git
fu-fu / test / destructive_filter_test.rb
100644 71 lines (59 sloc) 1.836 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
require File.dirname(__FILE__) + '/test_harness'
 
module BasicPostHelper
  class Post < ActiveRecord::Base
    profanity_filter! :title, :body
  end
end
 
module DictionaryPostHelper
  class Post < ActiveRecord::Base
    profanity_filter! :title, :body, :method => 'dictionary'
  end
end
 
class BasicProfanityFilterTest < Test::Unit::TestCase
  include BasicPostHelper
 
  def profane_post(opts={})
    Post.new({:title => 'A Fucking Title', :body => "This is some shitty post by a fucking user"}.merge(opts))
  end
  
  def test_it_should_filter_specified_fields
    p = profane_post
    p.save
    assert_equal 'A @#$% Title', p.title
    assert_equal 'This is some @#$% post by a @#$% user', p.body
  end
  
  def test_it_should_handle_nil_fields_bug_9
    p = Post.new({:title => nil, :body => nil})
    p.save
    assert_equal nil, p.title
    assert_equal nil, p.body
  end
  
  def test_it_should_handle_blank_fields_bug_9
    p = Post.new({:title => "", :body => ""})
    p.save
    assert_equal "", p.title
    assert_equal "", p.body
  end
end
 
class DictionaryProfanityFilterTest < Test::Unit::TestCase
  include DictionaryPostHelper
  
  def profane_post(opts={})
    Post.new({:title => 'A Fucking Title', :body => "This is some shitty post by a fucking user"}.merge(opts))
  end
  
  def test_it_should_filter_specified_fields
    p = profane_post
    p.save
    assert_equal 'A f*ck*ng Title', p.title
    assert_equal 'This is some sh*tty post by a f*ck*ng user', p.body
  end
  
  def test_it_should_handle_nil_fields_bug_9
    p = Post.new({:title => nil, :body => nil})
    p.save
    assert_equal nil, p.title
    assert_equal nil, p.body
  end
  
  def test_it_should_handle_blank_fields_bug_9
    p = Post.new({:title => "", :body => ""})
    p.save
    assert_equal "", p.title
    assert_equal "", p.body
  end
end