dynamic_fieldsets 0.0.16 → 0.1.0
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/.rdebugrc +3 -0
- data/.rspec +1 -0
- data/CHANGELOG +7 -0
- data/Gemfile +17 -8
- data/Gemfile.lock +77 -60
- data/README.rdoc +1 -1
- data/VERSION +1 -1
- data/app/controllers/dynamic_fieldsets/fields_controller.rb +5 -4
- data/app/helpers/dynamic_fieldsets_helper.rb +48 -131
- data/app/models/dynamic_fieldsets.rb +2 -0
- data/app/models/dynamic_fieldsets/checkbox_field.rb +29 -0
- data/app/models/dynamic_fieldsets/date_field.rb +37 -0
- data/app/models/dynamic_fieldsets/datetime_field.rb +36 -0
- data/app/models/dynamic_fieldsets/dependency.rb +1 -1
- data/app/models/dynamic_fieldsets/dependency_clause.rb +1 -1
- data/app/models/dynamic_fieldsets/dependency_group.rb +1 -1
- data/app/models/dynamic_fieldsets/field.rb +170 -42
- data/app/models/dynamic_fieldsets/field_default.rb +3 -3
- data/app/models/dynamic_fieldsets/field_html_attribute.rb +1 -1
- data/app/models/dynamic_fieldsets/field_option.rb +1 -1
- data/app/models/dynamic_fieldsets/field_record.rb +1 -1
- data/app/models/dynamic_fieldsets/fieldset.rb +36 -1
- data/app/models/dynamic_fieldsets/fieldset_associator.rb +9 -34
- data/app/models/dynamic_fieldsets/fieldset_child.rb +43 -24
- data/app/models/dynamic_fieldsets/instruction_field.rb +35 -0
- data/app/models/dynamic_fieldsets/multiple_select_field.rb +43 -0
- data/app/models/dynamic_fieldsets/radio_field.rb +27 -0
- data/app/models/dynamic_fieldsets/select_field.rb +16 -0
- data/app/models/dynamic_fieldsets/text_field.rb +14 -0
- data/app/models/dynamic_fieldsets/textarea_field.rb +40 -0
- data/app/views/dynamic_fieldsets/fields/_form.html.erb +50 -52
- data/app/views/dynamic_fieldsets/fields/edit.html.erb +5 -2
- data/app/views/dynamic_fieldsets/fields/index.html.erb +1 -1
- data/app/views/dynamic_fieldsets/fields/new.html.erb +3 -1
- data/app/views/dynamic_fieldsets/fields/show.html.erb +1 -1
- data/app/views/dynamic_fieldsets/fieldsets/_child.html.erb +1 -1
- data/app/views/dynamic_fieldsets/form_partials/_checkbox_field.html.erb +8 -0
- data/app/views/dynamic_fieldsets/form_partials/_date_field.html.erb +1 -0
- data/app/views/dynamic_fieldsets/form_partials/_datetime_field.html.erb +1 -0
- data/app/views/dynamic_fieldsets/form_partials/_input_footer.html.erb +1 -0
- data/app/views/dynamic_fieldsets/form_partials/_input_header.html.erb +7 -0
- data/app/views/dynamic_fieldsets/form_partials/_instruction_field.html.erb +1 -0
- data/app/views/dynamic_fieldsets/form_partials/_multiple_select_field.html.erb +1 -0
- data/app/views/dynamic_fieldsets/form_partials/_radio_field.html.erb +8 -0
- data/app/views/dynamic_fieldsets/form_partials/_select_field.html.erb +1 -0
- data/app/views/dynamic_fieldsets/form_partials/_text_field.html.erb +1 -0
- data/app/views/dynamic_fieldsets/form_partials/_textarea_field.html.erb +1 -0
- data/app/views/dynamic_fieldsets/shared/_javascript_watcher.html.erb +8 -8
- data/app/views/dynamic_fieldsets/show_partials/_show_incomplete.html.erb +1 -0
- data/app/views/dynamic_fieldsets/show_partials/_show_incomplete_footer.html.erb +2 -0
- data/app/views/dynamic_fieldsets/show_partials/_show_incomplete_header.html.erb +1 -0
- data/app/views/dynamic_fieldsets/show_partials/_show_instruction.html.erb +1 -0
- data/app/views/dynamic_fieldsets/show_partials/_show_multiple_answers.html.erb +13 -0
- data/app/views/dynamic_fieldsets/show_partials/_show_single_answer.html.erb +8 -0
- data/autotest/discover.rb +2 -0
- data/dynamic_fieldsets.gemspec +74 -20
- data/lib/dynamic_fieldsets/config.rb +45 -0
- data/lib/dynamic_fieldsets/dynamic_fieldsets_in_model.rb +38 -63
- data/lib/dynamic_fieldsets/field_with_field_options.rb +58 -0
- data/lib/dynamic_fieldsets/field_with_multiple_answers.rb +89 -0
- data/lib/dynamic_fieldsets/field_with_single_answer.rb +84 -0
- data/lib/dynamic_fieldsets/railtie.rb +6 -1
- data/lib/generators/dynamic_fieldsets/install_generator.rb +3 -3
- data/lib/generators/dynamic_fieldsets/templates/config.rb +15 -0
- data/lib/generators/dynamic_fieldsets/templates/migrations/install_migration.rb +1 -1
- data/spec/dummy/config/initializers/dynamic_fieldsets.rb +15 -0
- data/spec/dummy/db/migrate/20120213211033_create_dynamic_fieldsets_tables.rb +1 -1
- data/spec/dummy/db/schema.rb +1 -1
- data/spec/dummy/features/step_definitions/field_steps.rb +4 -4
- data/spec/dummy/features/step_definitions/fieldset_children_steps.rb +2 -2
- data/spec/dummy/features/step_definitions/javascript_steps.rb +7 -7
- data/spec/dynamic_fieldsets_helper_spec.rb +278 -312
- data/spec/dynamic_fieldsets_in_model_spec.rb +2 -2
- data/spec/field_with_field_options_spec.rb +49 -0
- data/spec/field_with_multiple_answers_spec.rb +50 -0
- data/spec/field_with_single_answer_spec.rb +51 -0
- data/spec/models/checkbox_field_spec.rb +19 -0
- data/spec/models/date_field_spec.rb +24 -0
- data/spec/models/datetime_field_spec.rb +24 -0
- data/spec/models/dependency_clause_spec.rb +7 -8
- data/spec/models/dependency_group_spec.rb +27 -30
- data/spec/models/dependency_spec.rb +8 -9
- data/spec/models/field_default_spec.rb +19 -14
- data/spec/models/field_html_attribute_spec.rb +3 -4
- data/spec/models/field_option_spec.rb +8 -9
- data/spec/models/field_record_spec.rb +8 -9
- data/spec/models/field_spec.rb +195 -94
- data/spec/models/fieldset_associator_spec.rb +39 -41
- data/spec/models/fieldset_child_spec.rb +99 -47
- data/spec/models/fieldset_spec.rb +25 -29
- data/spec/models/instruction_field_spec.rb +38 -0
- data/spec/models/multiple_select_field_spec.rb +31 -0
- data/spec/models/radio_field_spec.rb +21 -0
- data/spec/models/text_field_spec.rb +19 -0
- data/spec/models/textarea_field_spec.rb +39 -0
- data/spec/support/field_helper.rb +1 -1
- metadata +106 -28
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
|
-
include DynamicFieldsets
|
|
3
2
|
|
|
4
|
-
describe FieldDefault do
|
|
3
|
+
describe DynamicFieldsets::FieldDefault do
|
|
5
4
|
include FieldDefaultHelper
|
|
6
5
|
|
|
7
6
|
it "should respond to field" do
|
|
8
|
-
field_default = FieldDefault.new
|
|
7
|
+
field_default = DynamicFieldsets::FieldDefault.new
|
|
9
8
|
field_default.should respond_to :field
|
|
10
9
|
end
|
|
11
10
|
|
|
12
11
|
describe "validations" do
|
|
13
12
|
before(:each) do
|
|
14
|
-
@field_default = FieldDefault.new
|
|
13
|
+
@field_default = DynamicFieldsets::FieldDefault.new
|
|
15
14
|
end
|
|
16
15
|
|
|
17
16
|
it "should be valid" do
|
|
@@ -28,21 +27,24 @@ describe FieldDefault do
|
|
|
28
27
|
# instead of testing the method directly
|
|
29
28
|
describe "convert_option_name_to_id method" do
|
|
30
29
|
before(:each) do
|
|
31
|
-
@field = Field.new(:
|
|
30
|
+
@field = DynamicFieldsets::Field.new(:type => "select")
|
|
32
31
|
@field.stub!(:id).and_return(1)
|
|
33
|
-
@field_option = FieldOption.new(:name => "test value")
|
|
32
|
+
@field_option = DynamicFieldsets::FieldOption.new(:name => "test value")
|
|
34
33
|
@field_option.stub!(:id).and_return(2)
|
|
35
|
-
FieldOption.stub!(:find_by_name).and_return(@field_option)
|
|
36
|
-
@default = FieldDefault.new(:field => @field, :value => "test value")
|
|
34
|
+
DynamicFieldsets::FieldOption.stub!(:find_by_name).and_return(@field_option)
|
|
35
|
+
@default = DynamicFieldsets::FieldDefault.new(:field => @field, :value => "test value")
|
|
37
36
|
end
|
|
38
37
|
|
|
38
|
+
# removing this validation until the sti code is inplace
|
|
39
|
+
# changed the field name from field_type to type so rails is trying to find models
|
|
39
40
|
it "should convert the value to a field option id if the field's type is an option type" do
|
|
41
|
+
pending
|
|
40
42
|
@default.save
|
|
41
43
|
@default.value.should == @field_option.id
|
|
42
44
|
end
|
|
43
45
|
|
|
44
46
|
it "should retain it's value if the field's type is not an option type" do
|
|
45
|
-
@field.
|
|
47
|
+
@field.type = "textfield"
|
|
46
48
|
@default.save
|
|
47
49
|
@default.value.should_not == @field_option.id
|
|
48
50
|
end
|
|
@@ -50,16 +52,19 @@ describe FieldDefault do
|
|
|
50
52
|
|
|
51
53
|
describe "pretty_value method" do
|
|
52
54
|
before(:each) do
|
|
53
|
-
@field = Field.new(:
|
|
55
|
+
@field = DynamicFieldsets::Field.new(:type => "select")
|
|
54
56
|
@field.stub!(:id).and_return(1)
|
|
55
|
-
@field_option = FieldOption.new(:name => "test value")
|
|
57
|
+
@field_option = DynamicFieldsets::FieldOption.new(:name => "test value")
|
|
56
58
|
@field_option.stub!(:id).and_return(2)
|
|
57
|
-
FieldOption.stub!(:find_by_name).and_return(@field_option)
|
|
58
|
-
@default = FieldDefault.new(:field => @field, :value => "test value")
|
|
59
|
+
DynamicFieldsets::FieldOption.stub!(:find_by_name).and_return(@field_option)
|
|
60
|
+
@default = DynamicFieldsets::FieldDefault.new(:field => @field, :value => "test value")
|
|
59
61
|
end
|
|
60
62
|
|
|
63
|
+
# removing this validation until the sti code is inplace
|
|
64
|
+
# changed the field name from field_type to type so rails is trying to find models
|
|
61
65
|
it "should return the value if the field is not an option type" do
|
|
62
|
-
|
|
66
|
+
pending
|
|
67
|
+
@field.type = "textfield"
|
|
63
68
|
@default.pretty_value.should == @default.value
|
|
64
69
|
end
|
|
65
70
|
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
|
-
include DynamicFieldsets
|
|
3
2
|
|
|
4
|
-
describe FieldHtmlAttribute do
|
|
3
|
+
describe DynamicFieldsets::FieldHtmlAttribute do
|
|
5
4
|
include FieldHtmlAttributeHelper
|
|
6
5
|
|
|
7
6
|
it "should respond to field" do
|
|
8
|
-
field_html_attribute = FieldHtmlAttribute.new
|
|
7
|
+
field_html_attribute = DynamicFieldsets::FieldHtmlAttribute.new
|
|
9
8
|
field_html_attribute.should respond_to :field
|
|
10
9
|
end
|
|
11
10
|
|
|
12
11
|
describe "validations" do
|
|
13
12
|
before(:each) do
|
|
14
|
-
@field_html_attribute = FieldHtmlAttribute.new
|
|
13
|
+
@field_html_attribute = DynamicFieldsets::FieldHtmlAttribute.new
|
|
15
14
|
end
|
|
16
15
|
|
|
17
16
|
it "should be valid" do
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
describe FieldOption do
|
|
2
|
+
|
|
3
|
+
describe DynamicFieldsets::FieldOption do
|
|
5
4
|
include FieldOptionHelper
|
|
6
5
|
|
|
7
6
|
it "should respond to field" do
|
|
8
|
-
field_option = FieldOption.new
|
|
7
|
+
field_option = DynamicFieldsets::FieldOption.new
|
|
9
8
|
field_option.should respond_to :field
|
|
10
9
|
end
|
|
11
10
|
|
|
12
11
|
describe "validations" do
|
|
13
12
|
before(:each) do
|
|
14
|
-
@field_option = FieldOption.new
|
|
13
|
+
@field_option = DynamicFieldsets::FieldOption.new
|
|
15
14
|
end
|
|
16
15
|
|
|
17
16
|
it "should be valid" do
|
|
@@ -30,23 +29,23 @@ describe FieldOption do
|
|
|
30
29
|
|
|
31
30
|
describe "enabled scope" do
|
|
32
31
|
before(:each) do
|
|
33
|
-
@field_option1 = FieldOption.new
|
|
32
|
+
@field_option1 = DynamicFieldsets::FieldOption.new
|
|
34
33
|
@field_option1.attributes = valid_attributes
|
|
35
34
|
@field_option1.enabled = true
|
|
36
35
|
@field_option1.save
|
|
37
36
|
|
|
38
|
-
@field_option2 = FieldOption.new
|
|
37
|
+
@field_option2 = DynamicFieldsets::FieldOption.new
|
|
39
38
|
@field_option2.attributes = valid_attributes
|
|
40
39
|
@field_option2.enabled = false
|
|
41
40
|
@field_option2.save
|
|
42
41
|
end
|
|
43
42
|
|
|
44
43
|
it "should return enabled field options" do
|
|
45
|
-
FieldOption.enabled.should include @field_option1
|
|
44
|
+
DynamicFieldsets::FieldOption.enabled.should include @field_option1
|
|
46
45
|
end
|
|
47
46
|
|
|
48
47
|
it "should not return disabled field options" do
|
|
49
|
-
FieldOption.enabled.should_not include @field_option2
|
|
48
|
+
DynamicFieldsets::FieldOption.enabled.should_not include @field_option2
|
|
50
49
|
end
|
|
51
50
|
end
|
|
52
51
|
end
|
|
@@ -1,28 +1,27 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
|
-
include DynamicFieldsets
|
|
3
2
|
|
|
4
|
-
describe FieldRecord do
|
|
3
|
+
describe DynamicFieldsets::FieldRecord do
|
|
5
4
|
include FieldRecordHelper
|
|
6
5
|
|
|
7
6
|
it "should respond to field" do
|
|
8
|
-
FieldRecord.new.should respond_to :field
|
|
7
|
+
DynamicFieldsets::FieldRecord.new.should respond_to :field
|
|
9
8
|
end
|
|
10
9
|
|
|
11
10
|
it "should respond to fieldset_associator" do
|
|
12
|
-
FieldRecord.new.should respond_to :fieldset_associator
|
|
11
|
+
DynamicFieldsets::FieldRecord.new.should respond_to :fieldset_associator
|
|
13
12
|
end
|
|
14
13
|
|
|
15
14
|
describe "validations" do
|
|
16
15
|
before(:each) do
|
|
17
|
-
@field_record = FieldRecord.new
|
|
16
|
+
@field_record = DynamicFieldsets::FieldRecord.new
|
|
18
17
|
end
|
|
19
18
|
|
|
20
19
|
it "should be valid" do
|
|
21
|
-
@field_record.fieldset_child = FieldsetChild.new
|
|
22
|
-
@field_record.fieldset_associator = FieldsetAssociator.new
|
|
20
|
+
@field_record.fieldset_child = DynamicFieldsets::FieldsetChild.new
|
|
21
|
+
@field_record.fieldset_associator = DynamicFieldsets::FieldsetAssociator.new
|
|
23
22
|
@field_record.value = "42"
|
|
24
23
|
child = mock_model(DynamicFieldsets::Field)
|
|
25
|
-
@field_record.fieldset_child = FieldsetChild.new(:child => child)
|
|
24
|
+
@field_record.fieldset_child = DynamicFieldsets::FieldsetChild.new(:child => child)
|
|
26
25
|
@field_record.should be_valid
|
|
27
26
|
end
|
|
28
27
|
|
|
@@ -45,7 +44,7 @@ describe FieldRecord do
|
|
|
45
44
|
|
|
46
45
|
it "should error if the fieldset_child has the wrong type" do
|
|
47
46
|
child = mock_model(DynamicFieldsets::Fieldset)
|
|
48
|
-
@field_record.fieldset_child = FieldsetChild.new(:child => child)
|
|
47
|
+
@field_record.fieldset_child = DynamicFieldsets::FieldsetChild.new(:child => child)
|
|
49
48
|
@field_record.valid?
|
|
50
49
|
@field_record.should have(1).error_on(:fieldset_child)
|
|
51
50
|
end
|
data/spec/models/field_spec.rb
CHANGED
|
@@ -1,33 +1,41 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
|
-
include DynamicFieldsets
|
|
3
2
|
|
|
4
|
-
describe Field do
|
|
3
|
+
describe DynamicFieldsets::Field do
|
|
5
4
|
include FieldHelper
|
|
6
5
|
|
|
7
|
-
|
|
8
|
-
Field.new
|
|
6
|
+
before do
|
|
7
|
+
@field = DynamicFieldsets::Field.new
|
|
9
8
|
end
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
subject { @field }
|
|
10
|
+
|
|
11
|
+
describe "fields" do
|
|
12
|
+
it { should respond_to :name }
|
|
13
|
+
it { should respond_to :label }
|
|
14
|
+
it { should respond_to :type }
|
|
15
|
+
it { should respond_to :required }
|
|
16
|
+
it { should respond_to :enabled }
|
|
13
17
|
end
|
|
14
18
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
19
|
+
describe "associations" do
|
|
20
|
+
before do
|
|
21
|
+
pending "shoulda installation"
|
|
22
|
+
end
|
|
18
23
|
|
|
19
|
-
|
|
20
|
-
|
|
24
|
+
it { should have_many :fieldset_children }
|
|
25
|
+
it { should have_many :parent_fieldsets }
|
|
26
|
+
it { should have_many :field_options }
|
|
27
|
+
it { should have_many :field_defaults }
|
|
28
|
+
it { should have_many :field_html_attributes }
|
|
21
29
|
end
|
|
22
30
|
|
|
23
31
|
describe "validations" do
|
|
24
32
|
before(:each) do
|
|
25
|
-
@field = Field.new
|
|
33
|
+
@field = DynamicFieldsets::Field.new
|
|
26
34
|
end
|
|
27
35
|
|
|
28
|
-
it "should be valid" do
|
|
36
|
+
it "should not be valid because it should be instantiated through the child classes" do
|
|
29
37
|
@field.attributes = valid_attributes
|
|
30
|
-
@field.
|
|
38
|
+
@field.should_not be_valid
|
|
31
39
|
end
|
|
32
40
|
|
|
33
41
|
it "should require name" do
|
|
@@ -38,21 +46,10 @@ describe Field do
|
|
|
38
46
|
@field.should have(1).error_on(:label)
|
|
39
47
|
end
|
|
40
48
|
|
|
41
|
-
it "should require
|
|
42
|
-
@field.should have(
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
it "should require type within the allowable types" do
|
|
46
|
-
@field.field_type = "unsupported_type"
|
|
47
|
-
@field.should have(1).error_on(:field_type)
|
|
49
|
+
it "should require type" do
|
|
50
|
+
@field.should have(1).error_on(:type)
|
|
48
51
|
end
|
|
49
52
|
|
|
50
|
-
it "should require type within the allowable types" do
|
|
51
|
-
@field.field_type = "select"
|
|
52
|
-
@field.should have(0).error_on(:field_type)
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
|
|
56
53
|
it "should require enabled true or false" do
|
|
57
54
|
@field.enabled = true
|
|
58
55
|
@field.should have(0).error_on(:enabled)
|
|
@@ -63,48 +60,111 @@ describe Field do
|
|
|
63
60
|
@field.should have(0).error_on(:required)
|
|
64
61
|
end
|
|
65
62
|
|
|
63
|
+
# this validation now comes from the field option mixin
|
|
64
|
+
# whenever we get around to tests, this needs to be moved over.
|
|
65
|
+
# lets see how long this takes (JH 2-27-2012)
|
|
66
66
|
it "should require options if the type is one that requires options" do
|
|
67
|
-
|
|
67
|
+
pending "this needs to be moved to the field option mixin"
|
|
68
|
+
@field.type = "select"
|
|
68
69
|
@field.should have(1).error_on(:field_options)
|
|
69
70
|
end
|
|
70
71
|
end
|
|
71
72
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
# Scopes and Static Methods
|
|
74
|
+
|
|
75
|
+
it { DynamicFieldsets::Field.should respond_to :descendants }
|
|
76
|
+
describe ".descendants" do
|
|
77
|
+
it "should call super if cache classes is on"
|
|
78
|
+
it "should call the config if cache classes is off"
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
it { DynamicFieldsets::Field.should respond_to :descendant_collection }
|
|
82
|
+
describe ".descendant_collection" do
|
|
83
|
+
it "should call descendants"
|
|
84
|
+
it "should convert the class names to humanized strings"
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
describe "form partial methods" do
|
|
88
|
+
it { should respond_to :form_partial }
|
|
89
|
+
describe ".form_partial" do
|
|
90
|
+
it "needs tests"
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
it { should respond_to :form_header_partial }
|
|
94
|
+
describe ".form_header_partial" do
|
|
95
|
+
it "needs tests"
|
|
75
96
|
end
|
|
76
97
|
|
|
77
|
-
it
|
|
78
|
-
|
|
79
|
-
|
|
98
|
+
it { should respond_to :use_form_header_partial? }
|
|
99
|
+
describe ".use_form_header_partial?" do
|
|
100
|
+
it "needs tests"
|
|
80
101
|
end
|
|
81
102
|
|
|
82
|
-
it
|
|
83
|
-
|
|
84
|
-
|
|
103
|
+
it { should respond_to :form_footer_partial }
|
|
104
|
+
describe ".form_footer_partial" do
|
|
105
|
+
it "needs tests"
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
it { should respond_to :use_form_footer_partial? }
|
|
109
|
+
describe ".use_form_footer_partial?" do
|
|
110
|
+
it "needs tests"
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
it { should respond_to :form_partial_locals }
|
|
114
|
+
describe ".form_partial_locals" do
|
|
115
|
+
it "needs tests"
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
it { should respond_to :html_attribute_hash }
|
|
119
|
+
describe ".html_attribute_hash" do
|
|
120
|
+
it "needs tests"
|
|
85
121
|
end
|
|
86
122
|
end
|
|
87
123
|
|
|
88
|
-
describe "
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
field.should_receive(:field_options).and_return([field_option])
|
|
94
|
-
field.options.should include field_option
|
|
124
|
+
describe "show partial methods" do
|
|
125
|
+
|
|
126
|
+
it { should respond_to :show_partial }
|
|
127
|
+
describe ".show_partial" do
|
|
128
|
+
it "needs tests"
|
|
95
129
|
end
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
130
|
+
|
|
131
|
+
it { should respond_to :show_header_partial }
|
|
132
|
+
describe ".show_header_partial" do
|
|
133
|
+
it "needs tests"
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
it { should respond_to :use_show_header_partial? }
|
|
137
|
+
describe ".use_show_header_partial?" do
|
|
138
|
+
it "needs tests"
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
it { should respond_to :show_footer_partial }
|
|
142
|
+
describe ".show_footer_partial" do
|
|
143
|
+
it "needs tests"
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
it { should respond_to :use_show_footer_partial? }
|
|
147
|
+
describe ".use_show_footer_partial?" do
|
|
148
|
+
it "needs tests"
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
it { should respond_to :show_partial_locals }
|
|
152
|
+
describe ".show_partial_locals" do
|
|
153
|
+
it "needs tests"
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
it { should respond_to :get_value_for_show }
|
|
157
|
+
describe ".get_value_for_show" do
|
|
158
|
+
it "needs tests"
|
|
102
159
|
end
|
|
103
160
|
end
|
|
104
161
|
|
|
162
|
+
# other methods
|
|
163
|
+
|
|
164
|
+
it { should respond_to :has_defaults? }
|
|
105
165
|
describe "has_defaults?" do
|
|
106
166
|
before(:each) do
|
|
107
|
-
@field = Field.new
|
|
167
|
+
@field = DynamicFieldsets::Field.new
|
|
108
168
|
end
|
|
109
169
|
|
|
110
170
|
it "should return true if the field default has a value" do
|
|
@@ -117,9 +177,89 @@ describe Field do
|
|
|
117
177
|
end
|
|
118
178
|
end
|
|
119
179
|
|
|
180
|
+
it { should respond_to :in_use? }
|
|
181
|
+
describe "in_use? method" do
|
|
182
|
+
before(:each) do
|
|
183
|
+
@field = DynamicFieldsets::Field.new
|
|
184
|
+
@field.stub!(:id).and_return(1)
|
|
185
|
+
|
|
186
|
+
end
|
|
187
|
+
it "should return true if there is a field record associated with the field" do
|
|
188
|
+
@fieldset_child = DynamicFieldsets::FieldsetChild.new(:child => @field, :fieldset => nil )
|
|
189
|
+
@fieldset_child.stub!(:field_records).and_return(["random", "array" "of", "stuff"])
|
|
190
|
+
@field.stub!(:fieldset_children).and_return([@fieldset_child])
|
|
191
|
+
|
|
192
|
+
@field.in_use?.should be_true
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
it "should return true if the field is in a fieldset (through a fieldset child)" do
|
|
196
|
+
@fieldset = DynamicFieldsets::Fieldset.new
|
|
197
|
+
@fieldset.stub!(:id).and_return(2)
|
|
198
|
+
@fieldset_child = DynamicFieldsets::FieldsetChild.new(:child => @field, :fieldset_id => @fieldset.id)
|
|
199
|
+
@field.stub!(:fieldset_children).and_return([@fieldset_child])
|
|
200
|
+
|
|
201
|
+
@field.in_use?.should be_true
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
it "should return false otherwise" do
|
|
205
|
+
@field.in_use?.should be_false
|
|
206
|
+
end
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
it { should respond_to :uses_field_options? }
|
|
210
|
+
describe ".uses_field_options?" do
|
|
211
|
+
it "should return false" do
|
|
212
|
+
@field.uses_field_options?.should be_false
|
|
213
|
+
end
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
it { should respond_to :collect_default_values }
|
|
217
|
+
describe ".collect_default_values" do
|
|
218
|
+
it "needs tests"
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
it { should respond_to :get_values_using_fsa_and_fsc }
|
|
222
|
+
describe ".get_values_using_fsa_and_fsc" do
|
|
223
|
+
it "needs tests"
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
it { should respond_to :collect_field_records_by_fsa_and_fsc }
|
|
227
|
+
describe ".collect_field_records_by_fsa_and_fsc" do
|
|
228
|
+
it "needs tests"
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
it { should respond_to :update_field_records }
|
|
232
|
+
describe ".update_field_records" do
|
|
233
|
+
it "should throw an error" do
|
|
234
|
+
lambda { @field.update_field_records }.should raise_exception
|
|
235
|
+
end
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
describe "options" do
|
|
239
|
+
before do
|
|
240
|
+
pending "This code has been moved to the field option mixin"
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
it "should return options from the field options table if enabled" do
|
|
244
|
+
field = DynamicFieldsets::Field.new
|
|
245
|
+
field_option = mock_model(DynamicFieldsets::FieldOption)
|
|
246
|
+
field_option.stub!(:enabled).and_return(true)
|
|
247
|
+
field.should_receive(:field_options).and_return([field_option])
|
|
248
|
+
field.options.should include field_option
|
|
249
|
+
end
|
|
250
|
+
it "should not return disabled options from the field options table" do
|
|
251
|
+
field = DynamicFieldsets::Field.new
|
|
252
|
+
field_option = mock_model(DynamicFieldsets::FieldOption)
|
|
253
|
+
field_option.stub!(:enabled).and_return(false)
|
|
254
|
+
field.should_receive(:field_options).and_return([field_option])
|
|
255
|
+
field.options.should_not include field_option
|
|
256
|
+
end
|
|
257
|
+
end
|
|
258
|
+
|
|
120
259
|
describe "default" do
|
|
121
260
|
before(:each) do
|
|
122
|
-
|
|
261
|
+
pending "this code has been moved to the single answer mixin"
|
|
262
|
+
@field = DynamicFieldsets::Field.new
|
|
123
263
|
end
|
|
124
264
|
|
|
125
265
|
it "should return a string if the type does not support multiple options" do
|
|
@@ -136,7 +276,8 @@ describe Field do
|
|
|
136
276
|
|
|
137
277
|
describe "defaults" do
|
|
138
278
|
before(:each) do
|
|
139
|
-
|
|
279
|
+
pending "this code has been moved to the multiple answer mixin"
|
|
280
|
+
@field = DynamicFieldsets::Field.new
|
|
140
281
|
end
|
|
141
282
|
|
|
142
283
|
it "should return an array if the type supports multiple options" do
|
|
@@ -150,44 +291,4 @@ describe Field do
|
|
|
150
291
|
@field.defaults.should be_nil
|
|
151
292
|
end
|
|
152
293
|
end
|
|
153
|
-
|
|
154
|
-
describe "field_types method" do
|
|
155
|
-
it "should return an array" do
|
|
156
|
-
Field.field_types.should be_a_kind_of Array
|
|
157
|
-
end
|
|
158
|
-
end
|
|
159
|
-
|
|
160
|
-
describe "option_field_types method" do
|
|
161
|
-
it "should return an array" do
|
|
162
|
-
Field.option_field_types.should be_a_kind_of Array
|
|
163
|
-
end
|
|
164
|
-
end
|
|
165
|
-
|
|
166
|
-
describe "in_use? method" do
|
|
167
|
-
before(:each) do
|
|
168
|
-
@field = Field.new
|
|
169
|
-
@field.stub!(:id).and_return(1)
|
|
170
|
-
|
|
171
|
-
end
|
|
172
|
-
it "should return true if there is a field record associated with the field" do
|
|
173
|
-
@fieldset_child = FieldsetChild.new(:child => @field, :fieldset => nil )
|
|
174
|
-
@fieldset_child.stub!(:field_records).and_return(["random", "array" "of", "stuff"])
|
|
175
|
-
@field.stub!(:fieldset_children).and_return([@fieldset_child])
|
|
176
|
-
|
|
177
|
-
@field.in_use?.should be_true
|
|
178
|
-
end
|
|
179
|
-
|
|
180
|
-
it "should return true if the field is in a fieldset (through a fieldset child)" do
|
|
181
|
-
@fieldset = Fieldset.new
|
|
182
|
-
@fieldset.stub!(:id).and_return(2)
|
|
183
|
-
@fieldset_child = FieldsetChild.new(:child => @field, :fieldset_id => @fieldset.id)
|
|
184
|
-
@field.stub!(:fieldset_children).and_return([@fieldset_child])
|
|
185
|
-
|
|
186
|
-
@field.in_use?.should be_true
|
|
187
|
-
end
|
|
188
|
-
|
|
189
|
-
it "should return false otherwise" do
|
|
190
|
-
@field.in_use?.should be_false
|
|
191
|
-
end
|
|
192
|
-
end
|
|
193
294
|
end
|