params_sanitizer 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,72 @@
1
+ require 'rspec'
2
+
3
+ describe ParamsSanitizer::Sanitizers::AcceptRegex do
4
+
5
+ context 'after include' do
6
+ before(:each) do
7
+ class Sanitizer
8
+ include ParamsSanitizer::Sanitizers::AcceptRegex
9
+ end
10
+ Sanitizer.stub(:check_duplicated_definition!)
11
+ end
12
+
13
+ it 'have accept_regex methods.' do
14
+ expect(Sanitizer.private_method_defined?(:sanitize_accept_regex!)).to be_true
15
+ expect(Sanitizer.methods.include?(:accept_regex)).to be_true
16
+ end
17
+
18
+ it 'accept_regex method call check_duplicated_definition!' do
19
+ Sanitizer.stub(:definitions).and_return(Hash.new)
20
+ Sanitizer.should_receive(:check_duplicated_definition!).with(:anime)
21
+ Sanitizer.accept_regex(:anime, '100', /^\d+$/)
22
+ end
23
+
24
+ it 'accept_regex method add rule.' do
25
+ definition = Hash.new
26
+ Sanitizer.stub(:definitions).and_return(definition)
27
+
28
+ expect {
29
+ Sanitizer.accept_regex(:anime, '100', /^\d+$/)
30
+ }.to change{definition.count}.by(1)
31
+
32
+ expect(definition.eql?(
33
+ {
34
+ accept_regex: { 'anime' => { default_value: '100', regex: /^\d+$/ } }
35
+ })).to be_true
36
+ end
37
+
38
+ context 'after define rule' do
39
+ before(:each) do
40
+ definitions = Hash.new
41
+ Sanitizer.stub(:definitions).and_return(definitions)
42
+
43
+ Sanitizer.accept_regex(:anime, '100', /^\d+$/)
44
+ @rule = definitions[:accept_regex]
45
+ end
46
+
47
+ it 'sanitize_accept_regex! method sanitizes missing params.' do
48
+ params = {'anime' => '-'}
49
+ Sanitizer.new.send(:sanitize_accept_regex!, params, @rule)
50
+ expect(params.eql?({'anime' => '100'})).to be_true
51
+
52
+ params = {'anime' => '-100'}
53
+ Sanitizer.new.send(:sanitize_accept_regex!, params, @rule)
54
+ expect(params.eql?({'anime' => '100'})).to be_true
55
+
56
+ params = {'anime' => 'あいうえお'}
57
+ Sanitizer.new.send(:sanitize_accept_regex!, params, @rule)
58
+ expect(params.eql?({'anime' => '100'})).to be_true
59
+ end
60
+
61
+ it 'sanitize_accept_regex! method does not sanitize params.' do
62
+ params = {'anime' => '9999'}
63
+ Sanitizer.new.send(:sanitize_accept_regex!, params, @rule)
64
+ expect(params.eql?({'anime' => '9999'})).to be_true
65
+
66
+ params = {'anime' => '1234567890'}
67
+ Sanitizer.new.send(:sanitize_accept_regex!, params, @rule)
68
+ expect(params.eql?({'anime' => '1234567890'})).to be_true
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,63 @@
1
+ require 'rspec'
2
+
3
+ describe ParamsSanitizer::Sanitizers::AcceptValue do
4
+
5
+ context 'after include' do
6
+ before(:each) do
7
+ class Sanitizer
8
+ include ParamsSanitizer::Sanitizers::AcceptValue
9
+ end
10
+ Sanitizer.stub(:check_duplicated_definition!)
11
+ end
12
+
13
+ it 'have accept_value methods.' do
14
+ expect(Sanitizer.private_method_defined?(:sanitize_accept_value!)).to be_true
15
+ expect(Sanitizer.methods.include?(:accept_value)).to be_true
16
+ end
17
+
18
+ it 'accept_value method call check_duplicated_definition!' do
19
+ Sanitizer.stub(:definitions).and_return(Hash.new)
20
+ Sanitizer.should_receive(:check_duplicated_definition!).with(:anime)
21
+ Sanitizer.accept_value(:anime, 'nyaruko', ['nyaruko', 'kmb'])
22
+ end
23
+
24
+ it 'accept_value method add rule.' do
25
+ definition = Hash.new
26
+ Sanitizer.stub(:definitions).and_return(definition)
27
+
28
+ expect {
29
+ Sanitizer.accept_value(:anime, 'nyaruko', ['nyaruko', 'kmb'])
30
+ }.to change{definition.count}.by(1)
31
+
32
+ expect(definition.eql?(
33
+ {
34
+ accept_value: { 'anime' => { default_value: 'nyaruko', accept_values: ['nyaruko', 'kmb'] } }
35
+ })).to be_true
36
+ end
37
+
38
+ context 'after define rule' do
39
+ before(:each) do
40
+ definitions = Hash.new
41
+ Sanitizer.stub(:definitions).and_return(definitions)
42
+
43
+ Sanitizer.accept_value(:anime, 'nyaruko', ['nyaruko', 'kmb'])
44
+ @rule = definitions[:accept_value]
45
+ end
46
+
47
+ it 'sanitize_accept_value! method sanitizes missing params.' do
48
+ params = {'anime' => 'boku ha tomodachi ga suku nai.'}
49
+ Sanitizer.new.send(:sanitize_accept_value!, params, @rule)
50
+
51
+ expect(params.eql?({'anime' => 'nyaruko'})).to be_true
52
+ end
53
+
54
+ it 'sanitize_accept_value! method does not sanitize params.' do
55
+ params = {'anime' => 'kmb'}
56
+ Sanitizer.new.send(:sanitize_accept_value!, params, @rule)
57
+
58
+ expect(params.eql?({'anime' => 'kmb'})).to be_true
59
+ end
60
+
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,64 @@
1
+ require 'rspec'
2
+
3
+ describe ParamsSanitizer::Sanitizers::ExistValue do
4
+
5
+ context 'after include' do
6
+ before(:each) do
7
+ class Sanitizer
8
+ include ParamsSanitizer::Sanitizers::ExistValue
9
+ end
10
+ Sanitizer.stub(:check_duplicated_definition!)
11
+ end
12
+
13
+ it 'have exist_value methods.' do
14
+ expect(Sanitizer.private_method_defined?(:sanitize_exist_value!)).to be_true
15
+ expect(Sanitizer.methods.include?(:exist_value)).to be_true
16
+ end
17
+
18
+ it 'exist_value method call check_duplicated_definition!' do
19
+ Sanitizer.stub(:definitions).and_return(Hash.new)
20
+ Sanitizer.should_receive(:check_duplicated_definition!).with(:anime)
21
+ Sanitizer.exist_value(:anime, 'nyaruko')
22
+ end
23
+
24
+ it 'exist_value method add rule.' do
25
+ definition = Hash.new
26
+ Sanitizer.stub(:definitions).and_return(definition)
27
+
28
+ expect {
29
+ Sanitizer.exist_value(:anime, 'nyaruko')
30
+ }.to change{definition.count}.by(1)
31
+
32
+ expect(definition.eql?(
33
+ {
34
+ exist_value: { 'anime' => { default_value: 'nyaruko' } }
35
+ })).to be_true
36
+ end
37
+
38
+ context 'after define rule' do
39
+ before(:each) do
40
+ definitions = Hash.new
41
+ Sanitizer.stub(:definitions).and_return(definitions)
42
+
43
+ Sanitizer.exist_value(:anime, 'nyaruko')
44
+ @rule = definitions[:exist_value]
45
+ end
46
+
47
+ it 'sanitize_exist_value! method sanitizes missing params.' do
48
+ params = {'anime' => nil}
49
+ Sanitizer.new.send(:sanitize_exist_value!, params, @rule)
50
+ expect(params.eql?({'anime' => 'nyaruko'})).to be_true
51
+
52
+ params = {}
53
+ Sanitizer.new.send(:sanitize_exist_value!, params, @rule)
54
+ expect(params.eql?({'anime' => 'nyaruko'})).to be_true
55
+ end
56
+
57
+ it 'sanitize_exist_value! method does not sanitize params.' do
58
+ params = {'anime' => 'kmb'}
59
+ Sanitizer.new.send(:sanitize_exist_value!, params, @rule)
60
+ expect(params.eql?({'anime' => 'kmb'})).to be_true
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,116 @@
1
+ require 'rspec'
2
+
3
+ describe ParamsSanitizer::Sanitizers::RejectRange do
4
+
5
+ context 'after include' do
6
+ before(:each) do
7
+ class Sanitizer
8
+ include ParamsSanitizer::Sanitizers::RejectRange
9
+ end
10
+ Sanitizer.stub(:check_duplicated_definition!)
11
+ end
12
+
13
+ it 'have reject_range methods.' do
14
+ expect(Sanitizer.private_method_defined?(:sanitize_reject_range!)).to be_true
15
+ expect(Sanitizer.methods.include?(:reject_range)).to be_true
16
+ end
17
+
18
+ it 'reject_range method call check_duplicated_definition!' do
19
+ Sanitizer.stub(:definitions).and_return(Hash.new)
20
+ Sanitizer.should_receive(:check_duplicated_definition!).with(:anime)
21
+ Sanitizer.reject_range(:anime, 50, 0, 100)
22
+ end
23
+
24
+ it 'reject_range method add rule.' do
25
+ definition = Hash.new
26
+ Sanitizer.stub(:definitions).and_return(definition)
27
+
28
+ expect {
29
+ Sanitizer.reject_range(:anime, 50, 0, 100)
30
+ }.to change{definition.count}.by(1)
31
+
32
+ expect(definition.eql?(
33
+ {
34
+ reject_range: { 'anime' => { default_value: 50, min: 0, max: 100 } }
35
+ })).to be_true
36
+ end
37
+
38
+ context 'after define rule' do
39
+ before(:each) do
40
+ definitions = Hash.new
41
+ Sanitizer.stub(:definitions).and_return(definitions)
42
+
43
+ Sanitizer.reject_range(:anime, 50, 0, 100)
44
+ @rule = definitions[:reject_range]
45
+ end
46
+
47
+ it 'sanitize_reject_range! method does not sanitize missing params.' do
48
+ params = {'anime' => '0'}
49
+ Sanitizer.new.send(:sanitize_reject_range!, params, @rule)
50
+ expect(params.eql?({'anime' => 50})).to be_true
51
+
52
+ params = {'anime' => '40'}
53
+ Sanitizer.new.send(:sanitize_reject_range!, params, @rule)
54
+ expect(params.eql?({'anime' => 50})).to be_true
55
+
56
+ params = {'anime' => '80'}
57
+ Sanitizer.new.send(:sanitize_reject_range!, params, @rule)
58
+ expect(params.eql?({'anime' => 50})).to be_true
59
+
60
+ params = {'anime' => '100'}
61
+ Sanitizer.new.send(:sanitize_reject_range!, params, @rule)
62
+ expect(params.eql?({'anime' => 50})).to be_true
63
+ end
64
+
65
+ it 'sanitize_reject_range! method sanitizes params.' do
66
+ params = {'anime' => '-50'}
67
+ Sanitizer.new.send(:sanitize_reject_range!, params, @rule)
68
+ expect(params.eql?({'anime' => -50})).to be_true
69
+
70
+ params = {'anime' => '-1'}
71
+ Sanitizer.new.send(:sanitize_reject_range!, params, @rule)
72
+ expect(params.eql?({'anime' => -1})).to be_true
73
+
74
+ params = {'anime' => '101'}
75
+ Sanitizer.new.send(:sanitize_reject_range!, params, @rule)
76
+ expect(params.eql?({'anime' => 101})).to be_true
77
+
78
+ params = {'anime' => '150'}
79
+ Sanitizer.new.send(:sanitize_reject_range!, params, @rule)
80
+ expect(params.eql?({'anime' => 150})).to be_true
81
+ end
82
+ end
83
+
84
+ context 'after define rule of one limit free.' do
85
+ before(:each) do
86
+ definitions = Hash.new
87
+ Sanitizer.stub(:definitions).and_return(definitions)
88
+
89
+ Sanitizer.reject_range(:minnil, 50, nil, 100)
90
+ Sanitizer.reject_range(:maxnil, 50, 0, nil)
91
+ @rule = definitions[:reject_range]
92
+ end
93
+
94
+ it 'sanitize_reject_range! method does not sanitize missing params.' do
95
+ params = {'minnil' => '-999'}
96
+ Sanitizer.new.send(:sanitize_reject_range!, params, @rule)
97
+ expect(params.eql?({'minnil' => 50, 'maxnil' => 50})).to be_true
98
+
99
+ params = {'maxnil' => '999'}
100
+ Sanitizer.new.send(:sanitize_reject_range!, params, @rule)
101
+ expect(params.eql?({'minnil' => 50, 'maxnil' => 50})).to be_true
102
+ end
103
+
104
+ it 'sanitize_reject_range! method sanitizes params.' do
105
+ params = {'minnil' => '150'}
106
+ Sanitizer.new.send(:sanitize_reject_range!, params, @rule)
107
+ expect(params.eql?({'minnil' => 150, 'maxnil' => 50})).to be_true
108
+
109
+ params = {'maxnil' => '-50'}
110
+ Sanitizer.new.send(:sanitize_reject_range!, params, @rule)
111
+ expect(params.eql?({'minnil' => 50, 'maxnil' => -50})).to be_true
112
+ end
113
+ end
114
+
115
+ end
116
+ end
@@ -0,0 +1,72 @@
1
+ require 'rspec'
2
+
3
+ describe ParamsSanitizer::Sanitizers::RejectRegex do
4
+
5
+ context 'after include' do
6
+ before(:each) do
7
+ class Sanitizer
8
+ include ParamsSanitizer::Sanitizers::RejectRegex
9
+ end
10
+ Sanitizer.stub(:check_duplicated_definition!)
11
+ end
12
+
13
+ it 'have reject_regex methods.' do
14
+ expect(Sanitizer.private_method_defined?(:sanitize_reject_regex!)).to be_true
15
+ expect(Sanitizer.methods.include?(:reject_regex)).to be_true
16
+ end
17
+
18
+ it 'reject_regex method call check_duplicated_definition!' do
19
+ Sanitizer.stub(:definitions).and_return(Hash.new)
20
+ Sanitizer.should_receive(:check_duplicated_definition!).with(:anime)
21
+ Sanitizer.reject_regex(:anime, '100', /^\d+$/)
22
+ end
23
+
24
+ it 'reject_regex method add rule.' do
25
+ definition = Hash.new
26
+ Sanitizer.stub(:definitions).and_return(definition)
27
+
28
+ expect {
29
+ Sanitizer.reject_regex(:anime, '100', /^\d+$/)
30
+ }.to change{definition.count}.by(1)
31
+
32
+ expect(definition.eql?(
33
+ {
34
+ reject_regex: { 'anime' => { default_value: '100', regex: /^\d+$/ } }
35
+ })).to be_true
36
+ end
37
+
38
+ context 'after define rule' do
39
+ before(:each) do
40
+ definitions = Hash.new
41
+ Sanitizer.stub(:definitions).and_return(definitions)
42
+
43
+ Sanitizer.reject_regex(:anime, '100', /^\d+$/)
44
+ @rule = definitions[:reject_regex]
45
+ end
46
+
47
+ it 'sanitize_reject_regex! method does not sanitize params.' do
48
+ params = {'anime' => '9999'}
49
+ Sanitizer.new.send(:sanitize_reject_regex!, params, @rule)
50
+ expect(params.eql?({'anime' => '100'})).to be_true
51
+
52
+ params = {'anime' => '1234567890'}
53
+ Sanitizer.new.send(:sanitize_reject_regex!, params, @rule)
54
+ expect(params.eql?({'anime' => '100'})).to be_true
55
+ end
56
+
57
+ it 'sanitize_reject_regex! method sanitizes missing params.' do
58
+ params = {'anime' => '-'}
59
+ Sanitizer.new.send(:sanitize_reject_regex!, params, @rule)
60
+ expect(params.eql?({'anime' => '-'})).to be_true
61
+
62
+ params = {'anime' => '-100'}
63
+ Sanitizer.new.send(:sanitize_reject_regex!, params, @rule)
64
+ expect(params.eql?({'anime' => '-100'})).to be_true
65
+
66
+ params = {'anime' => 'あいうえお'}
67
+ Sanitizer.new.send(:sanitize_reject_regex!, params, @rule)
68
+ expect(params.eql?({'anime' => 'あいうえお'})).to be_true
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,63 @@
1
+ require 'rspec'
2
+
3
+ describe ParamsSanitizer::Sanitizers::RejectValue do
4
+
5
+ context 'after include' do
6
+ before(:each) do
7
+ class Sanitizer
8
+ include ParamsSanitizer::Sanitizers::RejectValue
9
+ end
10
+ Sanitizer.stub(:check_duplicated_definition!)
11
+ end
12
+
13
+ it 'have reject_value methods.' do
14
+ expect(Sanitizer.private_method_defined?(:sanitize_reject_value!)).to be_true
15
+ expect(Sanitizer.methods.include?(:reject_value)).to be_true
16
+ end
17
+
18
+ it 'reject_value method call check_duplicated_definition!' do
19
+ Sanitizer.stub(:definitions).and_return(Hash.new)
20
+ Sanitizer.should_receive(:check_duplicated_definition!).with(:anime)
21
+ Sanitizer.reject_value(:anime, 'nyaruko', ['hoge', 'fuga'])
22
+ end
23
+
24
+ it 'reject_value method add rule.' do
25
+ definition = Hash.new
26
+ Sanitizer.stub(:definitions).and_return(definition)
27
+
28
+ expect {
29
+ Sanitizer.reject_value(:anime, 'nyaruko', ['hoge', 'fuga'])
30
+ }.to change{definition.count}.by(1)
31
+
32
+ expect(definition.eql?(
33
+ {
34
+ reject_value: { 'anime' => { default_value: 'nyaruko', reject_values: ['hoge', 'fuga'] } }
35
+ })).to be_true
36
+ end
37
+
38
+ context 'after define rule' do
39
+ before(:each) do
40
+ definitions = Hash.new
41
+ Sanitizer.stub(:definitions).and_return(definitions)
42
+
43
+ Sanitizer.reject_value(:anime, 'nyaruko', ['hoge', 'fuga'])
44
+ @rule = definitions[:reject_value]
45
+ end
46
+
47
+ it 'sanitize_reject_value! method sanitizes missing params.' do
48
+ params = {'anime' => 'hoge'}
49
+ Sanitizer.new.send(:sanitize_reject_value!, params, @rule)
50
+
51
+ expect(params.eql?({'anime' => 'nyaruko'})).to be_true
52
+ end
53
+
54
+ it 'sanitize_reject_value! method does not sanitize params.' do
55
+ params = {'anime' => 'kmb'}
56
+ Sanitizer.new.send(:sanitize_reject_value!, params, @rule)
57
+
58
+ expect(params.eql?({'anime' => 'kmb'})).to be_true
59
+ end
60
+
61
+ end
62
+ end
63
+ end