presenting 2.0.0 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +20 -20
- data/README +10 -10
- data/Rakefile +22 -22
- data/app/assets/javascripts/search.js +13 -13
- data/app/assets/stylesheets/details-color.css +7 -7
- data/app/assets/stylesheets/details.css +10 -10
- data/app/assets/stylesheets/form.css +1 -1
- data/app/assets/stylesheets/grid-color.css +71 -71
- data/app/assets/stylesheets/grid.css +64 -64
- data/app/assets/stylesheets/search-color.css +16 -16
- data/app/assets/stylesheets/search.css +45 -45
- data/app/controllers/presentation/assets_controller.rb +42 -42
- data/app/views/presentations/_details.erb +11 -11
- data/app/views/presentations/_field_search.erb +14 -14
- data/app/views/presentations/_form.erb +20 -20
- data/app/views/presentations/_grid.erb +70 -70
- data/app/views/presentations/_search.erb +7 -7
- data/lib/presentation/base.rb +31 -31
- data/lib/presentation/details.rb +21 -21
- data/lib/presentation/field_search.rb +67 -67
- data/lib/presentation/form.rb +149 -149
- data/lib/presentation/grid.rb +162 -160
- data/lib/presentation/search.rb +9 -9
- data/lib/presenting/attribute.rb +51 -51
- data/lib/presenting/configurable.rb +10 -10
- data/lib/presenting/defaults.rb +10 -10
- data/lib/presenting/field_set.rb +26 -26
- data/lib/presenting/form_helpers.rb +51 -51
- data/lib/presenting/helpers.rb +114 -114
- data/lib/presenting/sanitize.rb +19 -19
- data/lib/presenting/search.rb +185 -185
- data/lib/presenting/sorting.rb +87 -87
- data/test/attribute_test.rb +61 -61
- data/test/configurable_test.rb +20 -20
- data/test/details_test.rb +68 -68
- data/test/field_search_test.rb +102 -102
- data/test/field_set_test.rb +46 -46
- data/test/grid_test.rb +246 -239
- data/test/helpers_test.rb +72 -72
- data/test/presenting_test.rb +15 -15
- data/test/r3/Gemfile +7 -7
- data/test/r3/Gemfile.lock +86 -82
- data/test/r3/config/application.rb +12 -12
- data/test/r3/config/boot.rb +6 -6
- data/test/r3/config/database.yml +22 -22
- data/test/r3/config/environment.rb +5 -5
- data/test/r3/config/environments/test.rb +35 -35
- data/test/r3/db/test.sqlite3 +0 -0
- data/test/r3/log/test.log +336 -0
- data/test/r3/public/javascripts/presenting/grid.js +0 -0
- data/test/r3/public/javascripts/presenting/search.js +13 -13
- data/test/r3/public/stylesheets/presenting/details-color.css +7 -7
- data/test/r3/public/stylesheets/presenting/details.css +10 -10
- data/test/r3/public/stylesheets/presenting/form.css +1 -1
- data/test/r3/public/stylesheets/presenting/grid-color.css +71 -71
- data/test/r3/public/stylesheets/presenting/grid.css +64 -64
- data/test/r3/public/stylesheets/presenting/search-color.css +16 -16
- data/test/r3/public/stylesheets/presenting/search.css +45 -45
- data/test/sanitize_test.rb +15 -15
- data/test/search_conditions_test.rb +137 -137
- data/test/search_test.rb +30 -30
- data/test/sorting_test.rb +63 -63
- metadata +74 -74
data/test/configurable_test.rb
CHANGED
@@ -1,20 +1,20 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/test_helper'
|
2
|
-
|
3
|
-
class ConfigurableTest < Presenting::Test
|
4
|
-
class ConfigurableUser
|
5
|
-
include Presenting::Configurable
|
6
|
-
attr_accessor :first_name
|
7
|
-
attr_reader :name
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_setting_first_name_with_initializer
|
11
|
-
user = ConfigurableUser.new(:first_name => "Bob")
|
12
|
-
assert_equal 'Bob', user.first_name
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_setting_unsettable_attribute
|
16
|
-
assert_raises NoMethodError do
|
17
|
-
ConfigurableUser.new(:name => 'Bob Jenkins')
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
1
|
+
require File.dirname(__FILE__) + '/test_helper'
|
2
|
+
|
3
|
+
class ConfigurableTest < Presenting::Test
|
4
|
+
class ConfigurableUser
|
5
|
+
include Presenting::Configurable
|
6
|
+
attr_accessor :first_name
|
7
|
+
attr_reader :name
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_setting_first_name_with_initializer
|
11
|
+
user = ConfigurableUser.new(:first_name => "Bob")
|
12
|
+
assert_equal 'Bob', user.first_name
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_setting_unsettable_attribute
|
16
|
+
assert_raises NoMethodError do
|
17
|
+
ConfigurableUser.new(:name => 'Bob Jenkins')
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/test/details_test.rb
CHANGED
@@ -1,68 +1,68 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/test_helper'
|
2
|
-
|
3
|
-
class DetailsTest < Presenting::Test
|
4
|
-
def setup
|
5
|
-
@d = Presentation::Details.new
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_adding_a_field_by_name
|
9
|
-
@d.fields = ["foo"]
|
10
|
-
assert_equal "foo", @d.fields.first.name, "name is stringified"
|
11
|
-
assert_equal "foo", @d.fields.first.value, "value is assumed to be a method"
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_adding_a_field_by_name_and_value
|
15
|
-
@d.fields = [{"foo" => :bar}]
|
16
|
-
assert_equal "foo", @d.fields.first.name, "key is name"
|
17
|
-
assert_equal :bar, @d.fields.first.value, "value is value"
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_adding_a_field_by_name_and_options
|
21
|
-
@d.fields = [{"foo" => {:value => :bar}}]
|
22
|
-
assert_equal "foo", @d.fields.first.name, "key is name"
|
23
|
-
assert_equal :bar, @d.fields.first.value, "value is found and saved"
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
class DetailsRenderTest < Presentation::RenderTest
|
28
|
-
def setup
|
29
|
-
@presentation = Presentation::Details.new
|
30
|
-
@presentation.presentable = stub('user', :name => 'foo', :email => 'foo@example.com')
|
31
|
-
@presentation.controller = ActionView::TestCase::TestController.new
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_rendering_a_title
|
35
|
-
@presentation.title = 'Hello World'
|
36
|
-
|
37
|
-
assert_select '.presentation-details h3', 'Hello World'
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_rendering_an_attribute
|
41
|
-
@presentation.fields = [:email]
|
42
|
-
|
43
|
-
assert_select '.presentation-details' do
|
44
|
-
assert_select 'dl' do
|
45
|
-
assert_select 'dt', 'Email'
|
46
|
-
assert_select 'dd', 'foo@example.com'
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
def test_rendering_sanitized_data
|
52
|
-
@presentation.fields = [
|
53
|
-
{:email => {:sanitize => false}},
|
54
|
-
{:name => {:sanitize => true}}
|
55
|
-
]
|
56
|
-
@presentation.presentable = stub('user', :name => '&', :email => '&')
|
57
|
-
|
58
|
-
assert_select '.presentation-details' do
|
59
|
-
assert_select 'dl' do
|
60
|
-
assert_select 'dt:nth-of-type(1)', 'Email'
|
61
|
-
assert_select 'dd:nth-of-type(1)', '&'
|
62
|
-
|
63
|
-
assert_select 'dt:nth-of-type(2)', 'Name'
|
64
|
-
assert_select 'dd:nth-of-type(2)', '&'
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
1
|
+
require File.dirname(__FILE__) + '/test_helper'
|
2
|
+
|
3
|
+
class DetailsTest < Presenting::Test
|
4
|
+
def setup
|
5
|
+
@d = Presentation::Details.new
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_adding_a_field_by_name
|
9
|
+
@d.fields = ["foo"]
|
10
|
+
assert_equal "foo", @d.fields.first.name, "name is stringified"
|
11
|
+
assert_equal "foo", @d.fields.first.value, "value is assumed to be a method"
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_adding_a_field_by_name_and_value
|
15
|
+
@d.fields = [{"foo" => :bar}]
|
16
|
+
assert_equal "foo", @d.fields.first.name, "key is name"
|
17
|
+
assert_equal :bar, @d.fields.first.value, "value is value"
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_adding_a_field_by_name_and_options
|
21
|
+
@d.fields = [{"foo" => {:value => :bar}}]
|
22
|
+
assert_equal "foo", @d.fields.first.name, "key is name"
|
23
|
+
assert_equal :bar, @d.fields.first.value, "value is found and saved"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
class DetailsRenderTest < Presentation::RenderTest
|
28
|
+
def setup
|
29
|
+
@presentation = Presentation::Details.new
|
30
|
+
@presentation.presentable = stub('user', :name => 'foo', :email => 'foo@example.com')
|
31
|
+
@presentation.controller = ActionView::TestCase::TestController.new
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_rendering_a_title
|
35
|
+
@presentation.title = 'Hello World'
|
36
|
+
|
37
|
+
assert_select '.presentation-details h3', 'Hello World'
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_rendering_an_attribute
|
41
|
+
@presentation.fields = [:email]
|
42
|
+
|
43
|
+
assert_select '.presentation-details' do
|
44
|
+
assert_select 'dl' do
|
45
|
+
assert_select 'dt', 'Email'
|
46
|
+
assert_select 'dd', 'foo@example.com'
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_rendering_sanitized_data
|
52
|
+
@presentation.fields = [
|
53
|
+
{:email => {:sanitize => false}},
|
54
|
+
{:name => {:sanitize => true}}
|
55
|
+
]
|
56
|
+
@presentation.presentable = stub('user', :name => '&', :email => '&')
|
57
|
+
|
58
|
+
assert_select '.presentation-details' do
|
59
|
+
assert_select 'dl' do
|
60
|
+
assert_select 'dt:nth-of-type(1)', 'Email'
|
61
|
+
assert_select 'dd:nth-of-type(1)', '&'
|
62
|
+
|
63
|
+
assert_select 'dt:nth-of-type(2)', 'Name'
|
64
|
+
assert_select 'dd:nth-of-type(2)', '&'
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
data/test/field_search_test.rb
CHANGED
@@ -1,102 +1,102 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/test_helper'
|
2
|
-
|
3
|
-
class FieldSearchTest < Presenting::Test
|
4
|
-
def setup
|
5
|
-
@s = Presentation::FieldSearch.new
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_adding_a_field_by_name
|
9
|
-
@s.fields = [:foo]
|
10
|
-
assert_equal "Foo", @s.fields.first.name
|
11
|
-
assert_equal :text, @s.fields.first.type
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_adding_a_field_by_name_and_type
|
15
|
-
@s.fields = [{"foo" => :bar}]
|
16
|
-
assert_equal "foo", @s.fields.first.name
|
17
|
-
assert_equal :bar, @s.fields.first.type
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_adding_a_field_by_name_and_options
|
21
|
-
@s.fields = [{"foo" => {:type => :bar}}]
|
22
|
-
assert_equal "foo", @s.fields.first.name
|
23
|
-
assert_equal :bar, @s.fields.first.type
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
class FieldSearchFieldTest < Presenting::Test
|
28
|
-
def setup
|
29
|
-
@f = Presentation::FieldSearch::Field.new
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_assigning_a_symbol_name
|
33
|
-
@f.name = :foo
|
34
|
-
assert_equal "Foo", @f.name, "name is typecast to a string and titleized"
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_assigning_a_string_name
|
38
|
-
@f.name = "foo"
|
39
|
-
assert_equal "foo", @f.name, "name remains a string"
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_default_type
|
43
|
-
assert_equal :text, @f.type
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
class FieldSearchRenderingTest < Presentation::RenderTest
|
48
|
-
def setup
|
49
|
-
@presentation = Presentation::FieldSearch.new
|
50
|
-
@presentation.controller = ActionView::TestCase::TestController.new
|
51
|
-
@presentation.controller.request.path = '/users'
|
52
|
-
end
|
53
|
-
|
54
|
-
def test_rendering_a_form_reuses_current_path
|
55
|
-
assert_select 'form[action=/users?][method=get]'
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_rendering_a_text_field
|
59
|
-
@presentation.fields << {:foo => :text}
|
60
|
-
assert_select "form input[type=text][name='search[foo][value]']"
|
61
|
-
end
|
62
|
-
|
63
|
-
def test_rendering_a_text_field_with_existing_value
|
64
|
-
@presentation.fields << {:foo => :text}
|
65
|
-
@presentation.controller.params[:search] = {'foo' => {:value => 'bar'}}
|
66
|
-
assert_select "form input[type=text][name='search[foo][value]'][value=bar]"
|
67
|
-
end
|
68
|
-
|
69
|
-
def test_rendering_a_checkbox_field
|
70
|
-
@presentation.fields << {:foo => :checkbox}
|
71
|
-
assert_select "form input[type=checkbox][name='search[foo][value]'][value=1]"
|
72
|
-
end
|
73
|
-
|
74
|
-
def test_rendering_a_checkbox_field_with_existing_value
|
75
|
-
@presentation.fields << {:foo => :checkbox}
|
76
|
-
@presentation.controller.params[:search] = {'foo' => {:value => '1'}}
|
77
|
-
|
78
|
-
assert_select "form input[type=checkbox][name='search[foo][value]'][value=1][checked=checked]"
|
79
|
-
end
|
80
|
-
|
81
|
-
def test_rendering_a_dropdown_field_with_existing_value
|
82
|
-
@presentation.fields << {:foo => {:type => :dropdown, :options => [["Dollar", "$"], ["Kroner", "DKK"]]}}
|
83
|
-
@presentation.controller.params[:search] = {'foo' => {:value => 'DKK'}}
|
84
|
-
|
85
|
-
assert_select "form select[name='search[foo][value]']" do
|
86
|
-
assert_select "option[value='$']"
|
87
|
-
assert_select "option[value='$'][selected='selected']", false
|
88
|
-
assert_select "option[value='DKK'][selected='selected']"
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
def test_rendering_a_dropdown_field_with_integers_and_existing_value
|
93
|
-
@presentation.fields << {:foo => {:type => :dropdown, :options => [["Dollar", 1], ["Kroner", 2]]}}
|
94
|
-
@presentation.controller.params[:search] = {'foo' => {:value => '2'}}
|
95
|
-
|
96
|
-
assert_select "form select[name='search[foo][value]']" do
|
97
|
-
assert_select "option[value='1']"
|
98
|
-
assert_select "option[value='1'][selected='selected']", false
|
99
|
-
assert_select "option[value='2'][selected='selected']"
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
1
|
+
require File.dirname(__FILE__) + '/test_helper'
|
2
|
+
|
3
|
+
class FieldSearchTest < Presenting::Test
|
4
|
+
def setup
|
5
|
+
@s = Presentation::FieldSearch.new
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_adding_a_field_by_name
|
9
|
+
@s.fields = [:foo]
|
10
|
+
assert_equal "Foo", @s.fields.first.name
|
11
|
+
assert_equal :text, @s.fields.first.type
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_adding_a_field_by_name_and_type
|
15
|
+
@s.fields = [{"foo" => :bar}]
|
16
|
+
assert_equal "foo", @s.fields.first.name
|
17
|
+
assert_equal :bar, @s.fields.first.type
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_adding_a_field_by_name_and_options
|
21
|
+
@s.fields = [{"foo" => {:type => :bar}}]
|
22
|
+
assert_equal "foo", @s.fields.first.name
|
23
|
+
assert_equal :bar, @s.fields.first.type
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
class FieldSearchFieldTest < Presenting::Test
|
28
|
+
def setup
|
29
|
+
@f = Presentation::FieldSearch::Field.new
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_assigning_a_symbol_name
|
33
|
+
@f.name = :foo
|
34
|
+
assert_equal "Foo", @f.name, "name is typecast to a string and titleized"
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_assigning_a_string_name
|
38
|
+
@f.name = "foo"
|
39
|
+
assert_equal "foo", @f.name, "name remains a string"
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_default_type
|
43
|
+
assert_equal :text, @f.type
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
class FieldSearchRenderingTest < Presentation::RenderTest
|
48
|
+
def setup
|
49
|
+
@presentation = Presentation::FieldSearch.new
|
50
|
+
@presentation.controller = ActionView::TestCase::TestController.new
|
51
|
+
@presentation.controller.request.path = '/users'
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_rendering_a_form_reuses_current_path
|
55
|
+
assert_select 'form[action=/users?][method=get]'
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_rendering_a_text_field
|
59
|
+
@presentation.fields << {:foo => :text}
|
60
|
+
assert_select "form input[type=text][name='search[foo][value]']"
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_rendering_a_text_field_with_existing_value
|
64
|
+
@presentation.fields << {:foo => :text}
|
65
|
+
@presentation.controller.params[:search] = {'foo' => {:value => 'bar'}}
|
66
|
+
assert_select "form input[type=text][name='search[foo][value]'][value=bar]"
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_rendering_a_checkbox_field
|
70
|
+
@presentation.fields << {:foo => :checkbox}
|
71
|
+
assert_select "form input[type=checkbox][name='search[foo][value]'][value=1]"
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_rendering_a_checkbox_field_with_existing_value
|
75
|
+
@presentation.fields << {:foo => :checkbox}
|
76
|
+
@presentation.controller.params[:search] = {'foo' => {:value => '1'}}
|
77
|
+
|
78
|
+
assert_select "form input[type=checkbox][name='search[foo][value]'][value=1][checked=checked]"
|
79
|
+
end
|
80
|
+
|
81
|
+
def test_rendering_a_dropdown_field_with_existing_value
|
82
|
+
@presentation.fields << {:foo => {:type => :dropdown, :options => [["Dollar", "$"], ["Kroner", "DKK"]]}}
|
83
|
+
@presentation.controller.params[:search] = {'foo' => {:value => 'DKK'}}
|
84
|
+
|
85
|
+
assert_select "form select[name='search[foo][value]']" do
|
86
|
+
assert_select "option[value='$']"
|
87
|
+
assert_select "option[value='$'][selected='selected']", false
|
88
|
+
assert_select "option[value='DKK'][selected='selected']"
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
def test_rendering_a_dropdown_field_with_integers_and_existing_value
|
93
|
+
@presentation.fields << {:foo => {:type => :dropdown, :options => [["Dollar", 1], ["Kroner", 2]]}}
|
94
|
+
@presentation.controller.params[:search] = {'foo' => {:value => '2'}}
|
95
|
+
|
96
|
+
assert_select "form select[name='search[foo][value]']" do
|
97
|
+
assert_select "option[value='1']"
|
98
|
+
assert_select "option[value='1'][selected='selected']", false
|
99
|
+
assert_select "option[value='2'][selected='selected']"
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
data/test/field_set_test.rb
CHANGED
@@ -1,46 +1,46 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/test_helper'
|
2
|
-
|
3
|
-
class FieldSetTest < Presenting::Test
|
4
|
-
def setup
|
5
|
-
@set = Presenting::FieldSet.new(Presenting::Attribute, :name, :value)
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_reading_a_field_by_name
|
9
|
-
@set << "foo"
|
10
|
-
assert_equal "foo", @set["foo"].name
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_pushing_a_field_by_name
|
14
|
-
@set << "foo"
|
15
|
-
assert_equal "foo", @set.first.name
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_pushing_a_field_by_name_and_value
|
19
|
-
@set << {"foo" => :bar}
|
20
|
-
assert_equal "foo", @set.first.name
|
21
|
-
assert_equal :bar, @set.first.value
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_pushing_a_field_by_name_and_options
|
25
|
-
@set << {"foo" => {:value => :bar}}
|
26
|
-
assert_equal "foo", @set.first.name
|
27
|
-
assert_equal :bar, @set.first.value
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_adding_a_field_by_name
|
31
|
-
@set["foo"] = nil
|
32
|
-
assert_equal "foo", @set.first.name
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_adding_a_field_by_name_and_value
|
36
|
-
@set["foo"] = :bar
|
37
|
-
assert_equal "foo", @set.first.name
|
38
|
-
assert_equal :bar, @set.first.value
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_adding_a_field_by_name_and_options
|
42
|
-
@set["foo"] = {:value => :bar}
|
43
|
-
assert_equal "foo", @set.first.name
|
44
|
-
assert_equal :bar, @set.first.value
|
45
|
-
end
|
46
|
-
end
|
1
|
+
require File.dirname(__FILE__) + '/test_helper'
|
2
|
+
|
3
|
+
class FieldSetTest < Presenting::Test
|
4
|
+
def setup
|
5
|
+
@set = Presenting::FieldSet.new(Presenting::Attribute, :name, :value)
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_reading_a_field_by_name
|
9
|
+
@set << "foo"
|
10
|
+
assert_equal "foo", @set["foo"].name
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_pushing_a_field_by_name
|
14
|
+
@set << "foo"
|
15
|
+
assert_equal "foo", @set.first.name
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_pushing_a_field_by_name_and_value
|
19
|
+
@set << {"foo" => :bar}
|
20
|
+
assert_equal "foo", @set.first.name
|
21
|
+
assert_equal :bar, @set.first.value
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_pushing_a_field_by_name_and_options
|
25
|
+
@set << {"foo" => {:value => :bar}}
|
26
|
+
assert_equal "foo", @set.first.name
|
27
|
+
assert_equal :bar, @set.first.value
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_adding_a_field_by_name
|
31
|
+
@set["foo"] = nil
|
32
|
+
assert_equal "foo", @set.first.name
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_adding_a_field_by_name_and_value
|
36
|
+
@set["foo"] = :bar
|
37
|
+
assert_equal "foo", @set.first.name
|
38
|
+
assert_equal :bar, @set.first.value
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_adding_a_field_by_name_and_options
|
42
|
+
@set["foo"] = {:value => :bar}
|
43
|
+
assert_equal "foo", @set.first.name
|
44
|
+
assert_equal :bar, @set.first.value
|
45
|
+
end
|
46
|
+
end
|