ohm-contrib 0.0.31 → 0.0.33
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.
- data/LICENSE +2 -1
- data/README.markdown +2 -1
- data/Rakefile +4 -53
- data/lib/ohm/contrib.rb +2 -2
- data/lib/ohm/contrib/boundaries.rb +1 -0
- data/lib/ohm/contrib/callbacks.rb +5 -4
- data/lib/ohm/contrib/date_validations.rb +2 -1
- data/lib/ohm/contrib/extra_validations.rb +1 -0
- data/lib/ohm/contrib/length_validations.rb +1 -0
- data/lib/ohm/contrib/locking.rb +2 -1
- data/lib/ohm/contrib/lunar_macros.rb +5 -4
- data/lib/ohm/contrib/number_validations.rb +1 -0
- data/lib/ohm/contrib/slug.rb +1 -0
- data/lib/ohm/contrib/timestamping.rb +1 -0
- data/lib/ohm/contrib/typecast.rb +1 -0
- data/lib/ohm/contrib/web_validations.rb +2 -1
- data/test/autoload_test.rb +19 -0
- data/test/boundaries_test.rb +45 -0
- data/test/callbacks_lint.rb +105 -0
- data/test/date_validations_test.rb +29 -0
- data/test/helper.rb +19 -10
- data/test/instance_callbacks_test.rb +45 -0
- data/test/length_validations_test.rb +31 -0
- data/test/lunar_macros_test.rb +146 -0
- data/test/macro_callbacks_test.rb +57 -0
- data/test/membership_validation_test.rb +31 -0
- data/test/number_validations_test.rb +37 -0
- data/test/slug_test.rb +30 -0
- data/test/timestamping_test.rb +32 -0
- data/test/typecast_array_test.rb +154 -0
- data/test/typecast_boolean_test.rb +43 -0
- data/test/typecast_date_test.rb +77 -0
- data/test/typecast_decimal_test.rb +77 -0
- data/test/typecast_float_test.rb +52 -0
- data/test/typecast_hash_test.rb +117 -0
- data/test/typecast_integer_test.rb +66 -0
- data/test/typecast_string_test.rb +38 -0
- data/test/typecast_time_test.rb +67 -0
- data/test/typecast_timezone_test.rb +37 -0
- data/test/web_validations_test.rb +79 -0
- metadata +47 -56
- data/.document +0 -5
- data/.gitignore +0 -25
- data/VERSION +0 -1
- data/lib/ohm/contrib/to_hash.rb +0 -39
- data/ohm-contrib.gemspec +0 -103
- data/test/test_ohm_boundaries.rb +0 -74
- data/test/test_ohm_contrib.rb +0 -70
- data/test/test_ohm_contrib_callbacks.rb +0 -375
- data/test/test_ohm_date_validations.rb +0 -30
- data/test/test_ohm_extra_validations.rb +0 -32
- data/test/test_ohm_length_validations.rb +0 -32
- data/test/test_ohm_lunar_macros.rb +0 -165
- data/test/test_ohm_number_validations.rb +0 -59
- data/test/test_ohm_slug.rb +0 -29
- data/test/test_ohm_timestamping.rb +0 -64
- data/test/test_ohm_to_hash.rb +0 -67
- data/test/test_ohm_typecast.rb +0 -707
- data/test/test_ohm_web_validations.rb +0 -114
@@ -1,114 +0,0 @@
|
|
1
|
-
require "helper"
|
2
|
-
|
3
|
-
class TestOhmWebValidations < Test::Unit::TestCase
|
4
|
-
class BlogPost < Ohm::Model
|
5
|
-
include Ohm::WebValidations
|
6
|
-
|
7
|
-
attribute :slug
|
8
|
-
|
9
|
-
index :slug
|
10
|
-
|
11
|
-
def validate
|
12
|
-
assert_slug :slug
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
class Comment < Ohm::Model
|
17
|
-
include Ohm::WebValidations
|
18
|
-
|
19
|
-
attribute :ip_address
|
20
|
-
attribute :homepage
|
21
|
-
attribute :email
|
22
|
-
|
23
|
-
def validate
|
24
|
-
assert_ipaddr :ip_address
|
25
|
-
assert_url :homepage
|
26
|
-
assert_email :email
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
context "The slug should be valid" do
|
31
|
-
def setup
|
32
|
-
Ohm.flush
|
33
|
-
@blog_post_01 = BlogPost.new
|
34
|
-
@blog_post_02 = BlogPost.new
|
35
|
-
end
|
36
|
-
|
37
|
-
should "fail if the slug is not valid" do
|
38
|
-
@blog_post_01.slug = "This is a title, not a SLUG"
|
39
|
-
@blog_post_01.create
|
40
|
-
|
41
|
-
assert @blog_post_01.new?
|
42
|
-
assert_equal [[:slug, :not_slug]], @blog_post_01.errors
|
43
|
-
end
|
44
|
-
|
45
|
-
should "succeed if the slug is valid" do
|
46
|
-
@blog_post_02.slug = "this-is-a-valid-slug"
|
47
|
-
@blog_post_02.create
|
48
|
-
assert_not_nil @blog_post_02.id
|
49
|
-
end
|
50
|
-
|
51
|
-
should "fail if the slug is not unique" do
|
52
|
-
|
53
|
-
@blog_post_01.slug = "this-is-a-valid-slug"
|
54
|
-
@blog_post_01.create
|
55
|
-
|
56
|
-
@blog_post_02.slug = "this-is-a-valid-slug"
|
57
|
-
@blog_post_02.create
|
58
|
-
|
59
|
-
assert @blog_post_02.new?
|
60
|
-
assert_equal [[:slug, :not_unique]], @blog_post_02.errors
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
context "the ip address should be valid" do
|
65
|
-
def setup
|
66
|
-
@comment = Comment.new
|
67
|
-
end
|
68
|
-
|
69
|
-
should "fail if the ip address is not valid" do
|
70
|
-
@comment.ip_address = "400.500.600.700"
|
71
|
-
@comment.create
|
72
|
-
|
73
|
-
assert @comment.new?
|
74
|
-
assert @comment.errors.include? [:ip_address, :not_ipaddr]
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
context "the email address should be valid" do
|
79
|
-
def setup
|
80
|
-
@comment = Comment.new
|
81
|
-
end
|
82
|
-
|
83
|
-
should "fail if the email address is not valid" do
|
84
|
-
@comment.email = "something.com"
|
85
|
-
@comment.create
|
86
|
-
|
87
|
-
assert @comment.new?
|
88
|
-
assert @comment.errors.include? [:email, :not_email]
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
context "the homepage URL should be valid" do
|
93
|
-
def setup
|
94
|
-
@comment = Comment.new
|
95
|
-
end
|
96
|
-
|
97
|
-
should "fail if the homepage URL is not valid" do
|
98
|
-
@comment.homepage = "something"
|
99
|
-
@comment.create
|
100
|
-
|
101
|
-
assert @comment.new?
|
102
|
-
assert @comment.errors.include? [:homepage, :not_url]
|
103
|
-
end
|
104
|
-
|
105
|
-
should "fail if the homepage URL protocol is not http or https" do
|
106
|
-
@comment.homepage = "irc://irc.freenode.net/something"
|
107
|
-
@comment.create
|
108
|
-
|
109
|
-
assert @comment.new?
|
110
|
-
assert @comment.errors.include? [:homepage, :not_url]
|
111
|
-
end
|
112
|
-
|
113
|
-
end
|
114
|
-
end
|