rules_view 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.
Files changed (169) hide show
  1. data/.document +5 -0
  2. data/.gitignore +21 -0
  3. data/LICENSE +20 -0
  4. data/README.textile +129 -0
  5. data/Rakefile +47 -0
  6. data/VERSION +1 -0
  7. data/app/views/layouts/rules_view.html.erb +43 -0
  8. data/app/views/re_view/template.html.erb +196 -0
  9. data/autotest/discover.rb +2 -0
  10. data/generators/install_generator.rb +41 -0
  11. data/generators/layout_generator.rb +41 -0
  12. data/generators/manifests/application.rb +116 -0
  13. data/generators/manifests/application.yml +8 -0
  14. data/generators/manifests/layout.rb +17 -0
  15. data/generators/manifests/layout.yml +5 -0
  16. data/generators/manifests/templates/app/views/layouts/rules_view_layout.html.erb +47 -0
  17. data/generators/manifests/templates/config/initializers/rules_view.rb +1 -0
  18. data/generators/manifests/templates/doc/README.rules_view +97 -0
  19. data/generators/manifests/templates/public/javascripts/rules_view/jquery-1.4.2.min.js +154 -0
  20. data/generators/manifests/templates/public/javascripts/rules_view/jquery.autocomplete.pack.js +13 -0
  21. data/generators/manifests/templates/public/javascripts/rules_view/jquery.blockUI.js +486 -0
  22. data/generators/manifests/templates/public/javascripts/rules_view/jquery.fancybox-1.3.1.js +1077 -0
  23. data/generators/manifests/templates/public/javascripts/rules_view/re_view.js +148 -0
  24. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/ie.css +35 -0
  25. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/buttons/icons/cross.png +0 -0
  26. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/buttons/icons/key.png +0 -0
  27. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/buttons/icons/tick.png +0 -0
  28. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/buttons/readme.txt +32 -0
  29. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/buttons/screen.css +97 -0
  30. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/fancy-type/readme.txt +14 -0
  31. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/fancy-type/screen.css +71 -0
  32. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/link-icons/icons/doc.png +0 -0
  33. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/link-icons/icons/email.png +0 -0
  34. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/link-icons/icons/external.png +0 -0
  35. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/link-icons/icons/feed.png +0 -0
  36. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/link-icons/icons/im.png +0 -0
  37. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/link-icons/icons/pdf.png +0 -0
  38. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/link-icons/icons/visited.png +0 -0
  39. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/link-icons/icons/xls.png +0 -0
  40. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/link-icons/readme.txt +18 -0
  41. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/link-icons/screen.css +40 -0
  42. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/rtl/readme.txt +10 -0
  43. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/rtl/screen.css +110 -0
  44. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/print.css +29 -0
  45. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/screen.css +258 -0
  46. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/src/forms.css +65 -0
  47. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/src/grid.css +280 -0
  48. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/src/grid.png +0 -0
  49. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/src/ie.css +76 -0
  50. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/src/print.css +85 -0
  51. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/src/reset.css +45 -0
  52. data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/src/typography.css +106 -0
  53. data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/blank.gif +0 -0
  54. data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_close.png +0 -0
  55. data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_loading.png +0 -0
  56. data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_nav_left.png +0 -0
  57. data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_nav_right.png +0 -0
  58. data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_shadow_e.png +0 -0
  59. data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_shadow_n.png +0 -0
  60. data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_shadow_ne.png +0 -0
  61. data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_shadow_nw.png +0 -0
  62. data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_shadow_s.png +0 -0
  63. data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_shadow_se.png +0 -0
  64. data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_shadow_sw.png +0 -0
  65. data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_shadow_w.png +0 -0
  66. data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_title_left.png +0 -0
  67. data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_title_main.png +0 -0
  68. data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_title_over.png +0 -0
  69. data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_title_right.png +0 -0
  70. data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancybox-x.png +0 -0
  71. data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancybox-y.png +0 -0
  72. data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancybox.png +0 -0
  73. data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/jquery.fancybox-1.3.1.css +363 -0
  74. data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_box/shadowbox.png +0 -0
  75. data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_box/whitebox.jpg +0 -0
  76. data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/checked-off.gif +0 -0
  77. data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/checked-on.gif +0 -0
  78. data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/icon-add.png +0 -0
  79. data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/icon-delete.png +0 -0
  80. data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/list-add.png +0 -0
  81. data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/list-remove.png +0 -0
  82. data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/list-select.png +0 -0
  83. data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/oval-blue-left.gif +0 -0
  84. data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/oval-blue-right.gif +0 -0
  85. data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/oval-gray-left.gif +0 -0
  86. data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/oval-gray-right.gif +0 -0
  87. data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/oval-green-left.gif +0 -0
  88. data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/oval-green-right.gif +0 -0
  89. data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/oval-orange-left.gif +0 -0
  90. data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/oval-orange-right.gif +0 -0
  91. data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/oval-red-left.gif +0 -0
  92. data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/oval-red-right.gif +0 -0
  93. data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_error/re-alert-close.png +0 -0
  94. data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_navigate/breadcrumb.png +0 -0
  95. data/generators/manifests/templates/public/stylesheets/rules_view/jquery.autocomplete.css +53 -0
  96. data/generators/manifests/templates/public/stylesheets/rules_view/rules_view.css +738 -0
  97. data/init.rb +1 -0
  98. data/lib/rules_view/alerts.rb +51 -0
  99. data/lib/rules_view/boxes.rb +25 -0
  100. data/lib/rules_view/buttons.rb +113 -0
  101. data/lib/rules_view/config.rb +21 -0
  102. data/lib/rules_view/defer.rb +30 -0
  103. data/lib/rules_view/engine.rb +28 -0
  104. data/lib/rules_view/form_builder.rb +62 -0
  105. data/lib/rules_view/form_fields.rb +41 -0
  106. data/lib/rules_view/form_styles.rb +112 -0
  107. data/lib/rules_view/model_loader.rb +64 -0
  108. data/lib/rules_view/navigate.rb +40 -0
  109. data/lib/rules_view.rb +20 -0
  110. data/rules_view.gemspec +239 -0
  111. data/spec/lib/rules_view/alerts_spec.rb +145 -0
  112. data/spec/lib/rules_view/boxes_spec.rb +49 -0
  113. data/spec/lib/rules_view/buttons_spec.rb +184 -0
  114. data/spec/lib/rules_view/defer_spec.rb +90 -0
  115. data/spec/lib/rules_view/form_builder_fields_spec.rb +184 -0
  116. data/spec/lib/rules_view/form_builder_spec.rb +19 -0
  117. data/spec/lib/rules_view/form_fields_spec.rb +219 -0
  118. data/spec/lib/rules_view/form_styles_spec.rb +290 -0
  119. data/spec/lib/rules_view/model_loader_spec.rb +202 -0
  120. data/spec/lib/rules_view/navigate_spec.rb +61 -0
  121. data/spec/rails_3_0_0_root/.gitignore +4 -0
  122. data/spec/rails_3_0_0_root/.rspec +1 -0
  123. data/spec/rails_3_0_0_root/Gemfile +13 -0
  124. data/spec/rails_3_0_0_root/Gemfile.lock +101 -0
  125. data/spec/rails_3_0_0_root/README +256 -0
  126. data/spec/rails_3_0_0_root/Rakefile +7 -0
  127. data/spec/rails_3_0_0_root/app/controllers/application_controller.rb +3 -0
  128. data/spec/rails_3_0_0_root/app/helpers/application_helper.rb +2 -0
  129. data/spec/rails_3_0_0_root/app/views/layouts/application.html.erb +14 -0
  130. data/spec/rails_3_0_0_root/autotest/discover.rb +2 -0
  131. data/spec/rails_3_0_0_root/config/application.rb +42 -0
  132. data/spec/rails_3_0_0_root/config/boot.rb +13 -0
  133. data/spec/rails_3_0_0_root/config/database.yml +22 -0
  134. data/spec/rails_3_0_0_root/config/environment.rb +5 -0
  135. data/spec/rails_3_0_0_root/config/environments/development.rb +26 -0
  136. data/spec/rails_3_0_0_root/config/environments/production.rb +49 -0
  137. data/spec/rails_3_0_0_root/config/environments/test.rb +35 -0
  138. data/spec/rails_3_0_0_root/config/initializers/backtrace_silencers.rb +7 -0
  139. data/spec/rails_3_0_0_root/config/initializers/inflections.rb +10 -0
  140. data/spec/rails_3_0_0_root/config/initializers/mime_types.rb +5 -0
  141. data/spec/rails_3_0_0_root/config/initializers/secret_token.rb +7 -0
  142. data/spec/rails_3_0_0_root/config/initializers/session_store.rb +8 -0
  143. data/spec/rails_3_0_0_root/config/locales/en.yml +5 -0
  144. data/spec/rails_3_0_0_root/config/routes.rb +58 -0
  145. data/spec/rails_3_0_0_root/config.ru +4 -0
  146. data/spec/rails_3_0_0_root/db/seeds.rb +7 -0
  147. data/spec/rails_3_0_0_root/doc/README_FOR_APP +2 -0
  148. data/spec/rails_3_0_0_root/lib/tasks/.gitkeep +0 -0
  149. data/spec/rails_3_0_0_root/public/404.html +26 -0
  150. data/spec/rails_3_0_0_root/public/422.html +26 -0
  151. data/spec/rails_3_0_0_root/public/500.html +26 -0
  152. data/spec/rails_3_0_0_root/public/favicon.ico +0 -0
  153. data/spec/rails_3_0_0_root/public/images/rails.png +0 -0
  154. data/spec/rails_3_0_0_root/public/index.html +239 -0
  155. data/spec/rails_3_0_0_root/public/javascripts/application.js +2 -0
  156. data/spec/rails_3_0_0_root/public/javascripts/controls.js +965 -0
  157. data/spec/rails_3_0_0_root/public/javascripts/dragdrop.js +974 -0
  158. data/spec/rails_3_0_0_root/public/javascripts/effects.js +1123 -0
  159. data/spec/rails_3_0_0_root/public/javascripts/prototype.js +6001 -0
  160. data/spec/rails_3_0_0_root/public/javascripts/rails.js +175 -0
  161. data/spec/rails_3_0_0_root/public/robots.txt +5 -0
  162. data/spec/rails_3_0_0_root/public/stylesheets/.gitkeep +0 -0
  163. data/spec/rails_3_0_0_root/script/rails +6 -0
  164. data/spec/rails_3_0_0_root/spec/spec_helper.rb +27 -0
  165. data/spec/rails_3_0_0_root/vendor/plugins/.gitkeep +0 -0
  166. data/spec/spec_helper.rb +29 -0
  167. data/spec/support/create_memory_db.rb +2 -0
  168. data/tasks/rspec.rake +46 -0
  169. metadata +278 -0
@@ -0,0 +1,90 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
+
3
+ describe "set_re_javascript_include" do
4
+ include RSpec::Rails::HelperExampleGroup
5
+
6
+ it "should be accessible to rails apps by default" do
7
+ ActionView::Base.new.methods.should include("set_re_javascript_include")
8
+ end
9
+
10
+ it "should set defer_re_javascript_include" do
11
+ helper.should_receive(:content_for).with(:defer_re_javascript_include)
12
+ helper.set_re_javascript_include('me')
13
+ end
14
+
15
+ it "should set defer_re_javascript_include variable " do
16
+ helper.set_re_javascript_include('me')
17
+ helper.instance_variable_get(:@_content_for)[:defer_re_javascript_include].should == helper.javascript_include_tag('me')
18
+ end
19
+ end
20
+
21
+ describe "set_re_breadcrumbs" do
22
+ include RSpec::Rails::HelperExampleGroup
23
+
24
+ before(:each) do
25
+ RulesView::Config.prefix_breadcrumbs = nil
26
+ end
27
+
28
+ it "should be accessible to rails apps by default" do
29
+ ActionView::Base.new.methods.should include("set_re_breadcrumbs")
30
+ end
31
+
32
+ it "should set defer_re_breadcrumbs" do
33
+ helper.should_receive(:content_for).with(:defer_re_breadcrumbs)
34
+ helper.set_re_breadcrumbs('me')
35
+ end
36
+
37
+ it "should set defer_re_breadcrumbs variable " do
38
+ helper.set_re_breadcrumbs('me')
39
+ helper.instance_variable_get(:@_content_for)[:defer_re_breadcrumbs].should == helper.re_breadcrumbs('me')
40
+ end
41
+ end
42
+
43
+ describe "set_re_breadcrumbs_prefix" do
44
+ include RSpec::Rails::HelperExampleGroup
45
+
46
+ before(:each) do
47
+ RulesView::Config.prefix_breadcrumbs = "HERE"
48
+ end
49
+
50
+ it "should add the prefix to the breadcrumb array" do
51
+ helper.set_re_breadcrumbs('me')
52
+ helper.instance_variable_get(:@_content_for)[:defer_re_breadcrumbs].should == helper.re_breadcrumbs('HERE', 'me')
53
+ end
54
+ end
55
+
56
+ describe "set_re_breadcrumbs_right" do
57
+ include RSpec::Rails::HelperExampleGroup
58
+
59
+ before(:each) do
60
+ RulesView::Config.prefix_breadcrumbs = nil
61
+ end
62
+
63
+ it "should be accessible to rails apps by default" do
64
+ ActionView::Base.new.methods.should include("set_re_breadcrumbs_right")
65
+ end
66
+
67
+ it "should set defer_re_breadcrumbs" do
68
+ helper.should_receive(:content_for).with(:defer_re_breadcrumbs)
69
+ helper.set_re_breadcrumbs_right('me')
70
+ end
71
+
72
+ it "should set defer_re_breadcrumbs variable " do
73
+ helper.set_re_breadcrumbs_right('me')
74
+ helper.instance_variable_get(:@_content_for)[:defer_re_breadcrumbs].should == helper.re_breadcrumbs_right('me')
75
+ end
76
+ end
77
+
78
+ describe "set_re_breadcrumbs_right_prefix" do
79
+ include RSpec::Rails::HelperExampleGroup
80
+
81
+ before(:each) do
82
+ RulesView::Config.prefix_breadcrumbs = "HERE"
83
+ end
84
+
85
+ it "should add the prefix to the breadcrumb array" do
86
+ helper.set_re_breadcrumbs_right('me')
87
+ helper.instance_variable_get(:@_content_for)[:defer_re_breadcrumbs].should == helper.re_breadcrumbs_right('HERE', 'me')
88
+ end
89
+ end
90
+
@@ -0,0 +1,184 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
+
3
+ describe RulesView::FormBuilder do
4
+ include Webrat::Matchers
5
+
6
+ before do
7
+ @expected_attrib = :the_attrib
8
+
9
+ @mock_object = mock('the-object')
10
+ @mock_template = mock("the-template")
11
+
12
+ @mock_template.stub!(:label).and_return("<label/>".html_safe)
13
+
14
+ @builder = RulesView::FormBuilder.new('builder-name', @mock_object, @mock_template, {}, nil)
15
+ end
16
+
17
+ %w(text_field password_field file_field text_area select date_select datetime_select time_select time_zone_select).each do |method|
18
+ describe "#{method}" do
19
+ before(:each) do
20
+ @mock_template.stub!(method).and_return("<#{method}/>".html_safe)
21
+ end
22
+
23
+ it "should call the origional method" do
24
+ @mock_template.should_receive(method)
25
+ @builder.send(method, @expected_attrib)
26
+ end
27
+
28
+ it "should build the form by calling re_build_form_label, re_build_form_data, and re_build_form_field" do
29
+ @builder.should_receive(:re_build_form_label).with(anything(), hash_including(:dummy => 'option')).and_return('re_build_form_label')
30
+ @builder.should_receive(:re_build_form_data).with(anything(), hash_including(:dummy => 'option')).and_return('re_build_form_data')
31
+ @builder.should_receive(:re_build_form_field).with('re_build_form_label' + 're_build_form_data', hash_including(:dummy => 'option'))
32
+ @builder.send(method, @expected_attrib, :dummy => 'option')
33
+ end
34
+
35
+ it "should build the form field" do
36
+ @builder.send(method, @expected_attrib).should have_selector("div.re-form-field") do |form_field|
37
+ form_field.should have_selector("div.re-form-label") do |form_label|
38
+ form_label.should have_selector("label")
39
+ end
40
+ form_field.should have_selector("div.re-form-data") do |form_data|
41
+ form_data.should have_selector("#{method}")
42
+ end
43
+ end
44
+ end
45
+
46
+ it "should use the span options in the call" do
47
+ @builder.send(method, @expected_attrib, {}).should have_selector("div.re-form-field.span-12") do |form_field|
48
+ form_field.should have_selector("div.re-form-label.span-4")
49
+ form_field.should have_selector("div.re-form-data.span-8.last")
50
+ end
51
+
52
+ @builder.send(method, @expected_attrib, {:span => '5x5'}).should have_selector("div.re-form-field.span-10") do |form_field|
53
+ form_field.should have_selector("div.re-form-label.span-5")
54
+ form_field.should have_selector("div.re-form-data.span-5.last")
55
+ end
56
+ end
57
+
58
+ it "should use the span options in the builder" do
59
+ @builder = RulesView::FormBuilder.new('builder-name', @mock_object, @mock_template, {:span => '5x5'}, nil)
60
+ @builder.send(method, @expected_attrib, {}).should have_selector("div.re-form-field.span-10") do |form_field|
61
+ form_field.should have_selector("div.re-form-label.span-5")
62
+ form_field.should have_selector("div.re-form-data.span-5.last")
63
+ end
64
+ end
65
+
66
+ it "should use the override the builder span options with the field options" do
67
+ @builder = RulesView::FormBuilder.new('builder-name', @mock_object, @mock_template, {:span => '5x5'}, nil)
68
+ @builder.send(method, @expected_attrib, {:span => '3x3'}).should have_selector("div.re-form-field.span-6") do |form_field|
69
+ form_field.should have_selector("div.re-form-label.span-3")
70
+ form_field.should have_selector("div.re-form-data.span-3.last")
71
+ end
72
+ end
73
+
74
+ %w(error hint label required span).each do |option|
75
+ it "should exclude the #{option} from the calls to label and method" do
76
+ @builder.should_receive("label").with(anything(), anything, {}).and_return("test")
77
+ @builder.should_receive("orig_" + method).with(anything(), {}).and_return("<#{method}/>")
78
+ @builder.send(method, @expected_attrib, option.to_sym => 'test')
79
+ end
80
+ end
81
+ end
82
+ end
83
+
84
+ describe "check_box" do
85
+ before(:each) do
86
+ @mock_template.stub!(:check_box).and_return("<check_box/>".html_safe)
87
+ end
88
+
89
+ it "should call the origional method" do
90
+ @mock_template.should_receive(:check_box)
91
+ @builder.send(:check_box, @expected_attrib)
92
+ end
93
+
94
+ it "should build the form by calling re_build_form_label, re_build_form_data, and re_build_form_field" do
95
+ @builder.should_receive(:re_build_form_label).with("&nbsp;", hash_including(:dummy => 'option')).and_return('&nbsp;')
96
+ @builder.should_receive(:re_build_form_label).with(anything(), hash_including(:dummy => 'option')).and_return('re_build_form_label')
97
+ @builder.should_receive(:re_build_form_data).with(anything(), hash_including(:dummy => 'option')).and_return('re_build_form_data')
98
+ @builder.should_receive(:re_build_form_field).with('&nbsp;' + 're_build_form_data', hash_including(:dummy => 'option'))
99
+ @builder.send(:check_box, @expected_attrib, :dummy => 'option')
100
+ end
101
+
102
+ it "should not pass the required flag to the first label" do
103
+ @builder.should_not_receive(:re_build_form_label).with("&nbsp;", hash_including(:required => true))
104
+ @builder.should_receive(:re_build_form_label).with("&nbsp;", anything()).and_return('&nbsp;')
105
+ @builder.should_receive(:re_build_form_label).with(anything(), hash_including(:required => true)).and_return('re_build_form_label')
106
+ @builder.should_receive(:re_build_form_data).with(anything(), hash_including(:required => true)).and_return('re_build_form_data')
107
+ @builder.should_receive(:re_build_form_field).with('&nbsp;' + 're_build_form_data', hash_including(:required => true))
108
+ @builder.send(:check_box, @expected_attrib, :required => true)
109
+ end
110
+
111
+ it "should build the form field" do
112
+ checkbox = @builder.send(:check_box, @expected_attrib)
113
+ checkbox.should have_selector("div.re-form-field > div.re-form-label") do |form_label|
114
+ form_label.inner_html.should == "&nbsp;"
115
+ end
116
+
117
+ checkbox.should have_selector("div.re-form-field") do |form_field|
118
+ form_field.should have_selector("div.re-form-data.re-form-field-checkbox") do |form_data|
119
+ form_data.should have_selector("check_box")
120
+ form_data.should have_selector("check_box + span.form-text") do |form_text|
121
+ form_text.should have_selector(".re-form-label label")
122
+ end
123
+ end
124
+ end
125
+ end
126
+
127
+ it "should build the form field the default dimensions 4x8" do
128
+ @builder.send(:check_box, @expected_attrib).should have_selector("div.re-form-field.span-12.clear") do |form_field|
129
+ form_field.should have_selector("div.re-form-label.span-4")
130
+ form_field.should have_selector("div.re-form-data.span-8.last")
131
+ end
132
+ end
133
+
134
+ it "should build the form field the span-dimensions :span=>LABELxDATA" do
135
+ @builder.send(:check_box, @expected_attrib, :span=>'8x12').should have_selector("div.re-form-field.span-20.clear") do |form_field|
136
+ form_field.should have_selector("div.re-form-label.span-8")
137
+ form_field.should have_selector("div.re-form-data.span-12.last")
138
+ end
139
+ end
140
+
141
+ it "should build the form field the span-dimensions :span=>LABEL" do
142
+ @builder.send(:check_box, @expected_attrib, :span=>'6').should have_selector("div.re-form-field.span-8.clear") do |form_field|
143
+ form_field.should have_selector("div.re-form-label.span-6")
144
+ form_field.should have_selector("div.re-form-data.span-2.last")
145
+ end
146
+ end
147
+
148
+ it "should set the required field in the form data" do
149
+ @builder.send(:check_box, @expected_attrib, :required=>true).should have_selector("div.re-form-field") do |form_field|
150
+ form_field.should have_selector("div.re-form-data span.re-form-required", :content => "*")
151
+ end
152
+ end
153
+
154
+ %w(error hint label required span).each do |option|
155
+ it "should exclude the #{option} from the calls to label and method" do
156
+ @builder.should_receive("label").with(anything(), anything, {}).and_return("test")
157
+ @builder.should_receive("orig_check_box").with(anything(), {}, anything(), anything()).and_return("<check_box/>")
158
+ @builder.send(:check_box, @expected_attrib, option.to_sym => 'test')
159
+ end
160
+ end
161
+ end
162
+
163
+ describe "re_error_on" do
164
+ describe "no error" do
165
+ it "should be blank" do
166
+ @mock_object.stub!(:errors).and_return({})
167
+ @builder.send(:re_error_on, "Error Message to Write").should be_blank
168
+ end
169
+ end
170
+
171
+ describe "has errors error" do
172
+ it "should call re_error_on_tag" do
173
+ @mock_object.stub!(:errors).and_return({:opps => "there is an error"})
174
+ @builder.should_receive(:re_error_on_tag).with("Error Message to Write")
175
+ @builder.send(:re_error_on, "Error Message to Write")
176
+ end
177
+
178
+ it "should display the error" do
179
+ @mock_object.stub!(:errors).and_return({:opps => "there is an error"})
180
+ @builder.send(:re_error_on, "Error Message to Write").should =~ /Error Message to Write/
181
+ end
182
+ end
183
+ end
184
+ end
@@ -0,0 +1,19 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
+
3
+ %w(form_for fields_for form_remote_for remote_form_for).each do |action|
4
+
5
+ describe action do
6
+ include RSpec::Rails::HelperExampleGroup
7
+
8
+ it "should be accessible to rails apps by default" do
9
+ ActionView::Base.new.methods.should include("re_#{action}")
10
+ end
11
+
12
+ it "should set the builder to the RulesView::FormBuilder" do
13
+ options = {}
14
+ helper.should_receive(action.to_sym).with("Name", {:builder => RulesView::FormBuilder})
15
+ helper.send("re_#{action}", "Name", options)
16
+ end
17
+ end
18
+
19
+ end
@@ -0,0 +1,219 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
+
3
+ %w(text_field password_field file_field text_area select date_select datetime_select time_select time_zone_select).each do |method|
4
+
5
+ describe "re_#{method}" do
6
+
7
+ include RSpec::Rails::HelperExampleGroup
8
+
9
+ before(:each) do
10
+ helper.stub!(method + "_tag").and_return("<#{method}/>".html_safe)
11
+ end
12
+
13
+ def call_method method, options = {}
14
+ helper.send("re_#{method}", "Label Value", "the_name", "The Value", options)
15
+ end
16
+
17
+ it "should be accessible to rails apps by default" do
18
+ ActionView::Base.new.methods.should include("re_#{method}")
19
+ end
20
+
21
+ it "should build the form by calling re_build_form_label, re_build_form_data, and re_build_form_field" do
22
+ helper.should_receive(:re_build_form_label).with(anything(), hash_including(:dummy => 'option')).and_return('re_build_form_label')
23
+ helper.should_receive(:re_build_form_data).with(anything(), hash_including(:dummy => 'option')).and_return('re_build_form_data')
24
+ helper.should_receive(:re_build_form_field).with('re_build_form_label' + 're_build_form_data', hash_including(:dummy => 'option'))
25
+ call_method(method, :dummy => 'option')
26
+ end
27
+
28
+ it "should build the form field with a re-form-label and a re-form-data" do
29
+ call_method(method).should have_selector("div.re-form-field") do |form_field|
30
+ form_field.should have_selector("div.re-form-label") do |form_label|
31
+ form_label.should have_selector("label[for=the_name]", :content => "Label Value")
32
+ end
33
+ form_field.should have_selector("div.re-form-data") do |form_data|
34
+ form_data.should have_selector(method)
35
+ end
36
+ end
37
+ end
38
+
39
+ it "should build the form field the default dimensions 4x8" do
40
+ call_method(method).should have_selector("div.re-form-field.span-12.clear") do |form_field|
41
+ form_field.should have_selector("div.re-form-label.span-4")
42
+ form_field.should have_selector("div.re-form-data.span-8.last")
43
+ end
44
+ end
45
+
46
+ it "should build the form field the span-dimensions :span=>LABELxDATA" do
47
+ call_method(method, :span=>'8x12').should have_selector("div.re-form-field.span-20.clear") do |form_field|
48
+ form_field.should have_selector("div.re-form-label.span-8")
49
+ form_field.should have_selector("div.re-form-data.span-12.last")
50
+ end
51
+ end
52
+
53
+ it "should build the form field the span-dimensions :span=>LABEL" do
54
+ call_method(method, :span=>'6').should have_selector("div.re-form-field.span-8.clear") do |form_field|
55
+ form_field.should have_selector("div.re-form-label.span-6")
56
+ form_field.should have_selector("div.re-form-data.span-2.last")
57
+ end
58
+ end
59
+
60
+ %w(error hint label required span).each do |option|
61
+ it "should exclude the #{option} from the calls to label and method" do
62
+ helper.should_receive("label_tag").with(anything(), anything, {}).and_return("test")
63
+ helper.should_receive(method + "_tag").with(anything(), anything, {}).and_return("<#{method}/>")
64
+ call_method(method, option.to_sym => 'test')
65
+ end
66
+ end
67
+ end
68
+ end
69
+
70
+ describe "re_check_box" do
71
+ include RSpec::Rails::HelperExampleGroup
72
+
73
+ before(:each) do
74
+ helper.stub!("check_box_tag").and_return("<check_box/>".html_safe)
75
+ end
76
+
77
+ def call_re_check_box options = {}
78
+ helper.re_check_box("Label", "the_name", "1", "false", options)
79
+ end
80
+
81
+ it "should be accessible to rails apps by default" do
82
+ ActionView::Base.new.methods.should include("re_check_box")
83
+ end
84
+
85
+ it "should build the form by calling re_build_form_label, re_build_form_data, and re_build_form_field" do
86
+ helper.should_receive(:re_build_form_label).with("&nbsp;", hash_including(:dummy => 'option')).and_return('&nbsp;')
87
+ helper.should_receive(:re_build_form_label).with(anything(), hash_including(:dummy => 'option')).and_return('re_build_form_label')
88
+ helper.should_receive(:re_build_form_data).with(anything(), hash_including(:dummy => 'option')).and_return('re_build_form_data')
89
+ helper.should_receive(:re_build_form_field).with('&nbsp;' + 're_build_form_data', hash_including(:dummy => 'option'))
90
+ call_re_check_box(:dummy => 'option')
91
+ end
92
+
93
+ it "should not pass the required flag to the first label" do
94
+ helper.should_not_receive(:re_build_form_label).with("&nbsp;", hash_including(:required => true))
95
+ helper.should_receive(:re_build_form_label).with("&nbsp;", anything()).and_return('&nbsp;')
96
+ helper.should_receive(:re_build_form_label).with(anything(), hash_including(:required => true)).and_return('re_build_form_label')
97
+ helper.should_receive(:re_build_form_data).with(anything(), hash_including(:required => true)).and_return('re_build_form_data')
98
+ helper.should_receive(:re_build_form_field).with('&nbsp;' + 're_build_form_data', hash_including(:required => true))
99
+ call_re_check_box(:required => true)
100
+ end
101
+
102
+ it "should build the form field with a label and form data" do
103
+ checkbox = call_re_check_box
104
+ checkbox.should have_selector("div.re-form-field > div.re-form-label") do |form_label|
105
+ form_label.inner_html.should == "&nbsp;"
106
+ end
107
+
108
+ checkbox.should have_selector("div.re-form-field") do |form_field|
109
+ form_field.should have_selector("div.re-form-data.re-form-field-checkbox") do |form_data|
110
+ form_data.should have_selector("check_box")
111
+ form_data.should have_selector("check_box + span.form-text") do |form_text|
112
+ form_text.should have_selector(".re-form-label label[for=the_name]", :content => "Label")
113
+ end
114
+ end
115
+ end
116
+ end
117
+
118
+ it "should build the form field the default dimensions 4x8" do
119
+ call_re_check_box.should have_selector("div.re-form-field.span-12.clear") do |form_field|
120
+ form_field.should have_selector("div.re-form-label.span-4")
121
+ form_field.should have_selector("div.re-form-data.span-8.last")
122
+ end
123
+ end
124
+
125
+ it "should build the form field the span-dimensions :span=>LABELxDATA" do
126
+ call_re_check_box(:span=>'8x12').should have_selector("div.re-form-field.span-20.clear") do |form_field|
127
+ form_field.should have_selector("div.re-form-label.span-8")
128
+ form_field.should have_selector("div.re-form-data.span-12.last")
129
+ end
130
+ end
131
+
132
+ it "should build the form field the span-dimensions :span=>LABEL" do
133
+ call_re_check_box(:span=>'6').should have_selector("div.re-form-field.span-8.clear") do |form_field|
134
+ form_field.should have_selector("div.re-form-label.span-6")
135
+ form_field.should have_selector("div.re-form-data.span-2.last")
136
+ end
137
+ end
138
+
139
+ it "should set the required field in the form data" do
140
+ call_re_check_box(:required=>true).should have_selector("div.re-form-field") do |form_field|
141
+ form_field.should have_selector("div.re-form-data span.re-form-required", :content => "*")
142
+ end
143
+ end
144
+
145
+ %w(error hint label required span).each do |option|
146
+ it "should exclude the #{option} from the calls to label and method" do
147
+ helper.should_receive("label_tag").with(anything(), anything, {}).and_return("test")
148
+ helper.should_receive("check_box_tag").with(anything(), anything, anything, {}).and_return("<check_box/>")
149
+ call_re_check_box(option.to_sym => 'test')
150
+ end
151
+ end
152
+ end
153
+
154
+
155
+ describe "re_form_text" do
156
+ include RSpec::Rails::HelperExampleGroup
157
+
158
+ it "should be accessible to rails apps by default" do
159
+ ActionView::Base.new.methods.should include("re_form_text")
160
+ end
161
+
162
+ it "should build the form field with a label and form text" do
163
+ helper.re_form_text("Label", "Text", {}).should have_selector("div.re-form-field") do |form_field|
164
+ form_field.should have_selector("div.re-form-label", :content => "Label")
165
+ form_field.should have_selector("div.re-form-data span.form-text", :content => "Text")
166
+ end
167
+ end
168
+ end
169
+
170
+ describe "re_form_blank" do
171
+ include RSpec::Rails::HelperExampleGroup
172
+
173
+ it "should be accessible to rails apps by default" do
174
+ ActionView::Base.new.methods.should include("re_form_blank")
175
+ end
176
+
177
+ it "should build the form field with a label and data sections" do
178
+ helper.re_form_blank({}).should have_selector("div.re-form-field") do |form_field|
179
+ form_field.should have_selector("div.re-form-label") do |form_label|
180
+ form_label.inner_html.should == "&nbsp;"
181
+ end
182
+ form_field.should have_selector("div.re-form-data") do |form_data|
183
+ form_data.inner_html.should == "&nbsp;"
184
+ end
185
+ end
186
+ end
187
+ end
188
+
189
+ describe "re_error_on_tag" do
190
+ include RSpec::Rails::HelperExampleGroup
191
+
192
+ before(:each) do
193
+ @model = mock('model')
194
+ @model.stub!(:errors).and_return({:opps => "something wen wrong"})
195
+ end
196
+
197
+ it "should be accessible to rails apps by default" do
198
+ ActionView::Base.new.methods.should include("re_error_on_tag")
199
+ end
200
+
201
+ describe "no error" do
202
+ it "should be blank" do
203
+ @model.stub!(:errors).and_return({})
204
+ helper.re_error_on(@model, "The Error Message to Show").should be_blank
205
+ end
206
+ end
207
+
208
+ describe "has errors error" do
209
+ it "should call re_error_on_tag" do
210
+ helper.should_receive(:re_error_on_tag).with("The Error Message to Show")
211
+ helper.re_error_on(@model, "The Error Message to Show")
212
+ end
213
+
214
+ it "should display the error" do
215
+ helper.re_error_on(@model, "The Error Message to Show").should =~ /The Error Message to Show/
216
+ end
217
+ end
218
+ end
219
+