params_sanitizer 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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