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.
- data/.document +5 -0
- data/.gitignore +21 -0
- data/LICENSE +20 -0
- data/README.textile +129 -0
- data/Rakefile +47 -0
- data/VERSION +1 -0
- data/app/views/layouts/rules_view.html.erb +43 -0
- data/app/views/re_view/template.html.erb +196 -0
- data/autotest/discover.rb +2 -0
- data/generators/install_generator.rb +41 -0
- data/generators/layout_generator.rb +41 -0
- data/generators/manifests/application.rb +116 -0
- data/generators/manifests/application.yml +8 -0
- data/generators/manifests/layout.rb +17 -0
- data/generators/manifests/layout.yml +5 -0
- data/generators/manifests/templates/app/views/layouts/rules_view_layout.html.erb +47 -0
- data/generators/manifests/templates/config/initializers/rules_view.rb +1 -0
- data/generators/manifests/templates/doc/README.rules_view +97 -0
- data/generators/manifests/templates/public/javascripts/rules_view/jquery-1.4.2.min.js +154 -0
- data/generators/manifests/templates/public/javascripts/rules_view/jquery.autocomplete.pack.js +13 -0
- data/generators/manifests/templates/public/javascripts/rules_view/jquery.blockUI.js +486 -0
- data/generators/manifests/templates/public/javascripts/rules_view/jquery.fancybox-1.3.1.js +1077 -0
- data/generators/manifests/templates/public/javascripts/rules_view/re_view.js +148 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/ie.css +35 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/buttons/icons/cross.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/buttons/icons/key.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/buttons/icons/tick.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/buttons/readme.txt +32 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/buttons/screen.css +97 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/fancy-type/readme.txt +14 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/fancy-type/screen.css +71 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/link-icons/icons/doc.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/link-icons/icons/email.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/link-icons/icons/external.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/link-icons/icons/feed.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/link-icons/icons/im.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/link-icons/icons/pdf.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/link-icons/icons/visited.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/link-icons/icons/xls.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/link-icons/readme.txt +18 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/link-icons/screen.css +40 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/rtl/readme.txt +10 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/plugins/rtl/screen.css +110 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/print.css +29 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/screen.css +258 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/src/forms.css +65 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/src/grid.css +280 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/src/grid.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/src/ie.css +76 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/src/print.css +85 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/src/reset.css +45 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/blueprint/src/typography.css +106 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/blank.gif +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_close.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_loading.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_nav_left.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_nav_right.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_shadow_e.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_shadow_n.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_shadow_ne.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_shadow_nw.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_shadow_s.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_shadow_se.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_shadow_sw.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_shadow_w.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_title_left.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_title_main.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_title_over.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancy_title_right.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancybox-x.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancybox-y.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/fancybox.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/fancybox/jquery.fancybox-1.3.1.css +363 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_box/shadowbox.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_box/whitebox.jpg +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/checked-off.gif +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/checked-on.gif +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/icon-add.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/icon-delete.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/list-add.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/list-remove.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/list-select.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/oval-blue-left.gif +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/oval-blue-right.gif +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/oval-gray-left.gif +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/oval-gray-right.gif +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/oval-green-left.gif +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/oval-green-right.gif +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/oval-orange-left.gif +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/oval-orange-right.gif +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/oval-red-left.gif +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_button/oval-red-right.gif +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_error/re-alert-close.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/images/re_view_navigate/breadcrumb.png +0 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/jquery.autocomplete.css +53 -0
- data/generators/manifests/templates/public/stylesheets/rules_view/rules_view.css +738 -0
- data/init.rb +1 -0
- data/lib/rules_view/alerts.rb +51 -0
- data/lib/rules_view/boxes.rb +25 -0
- data/lib/rules_view/buttons.rb +113 -0
- data/lib/rules_view/config.rb +21 -0
- data/lib/rules_view/defer.rb +30 -0
- data/lib/rules_view/engine.rb +28 -0
- data/lib/rules_view/form_builder.rb +62 -0
- data/lib/rules_view/form_fields.rb +41 -0
- data/lib/rules_view/form_styles.rb +112 -0
- data/lib/rules_view/model_loader.rb +64 -0
- data/lib/rules_view/navigate.rb +40 -0
- data/lib/rules_view.rb +20 -0
- data/rules_view.gemspec +239 -0
- data/spec/lib/rules_view/alerts_spec.rb +145 -0
- data/spec/lib/rules_view/boxes_spec.rb +49 -0
- data/spec/lib/rules_view/buttons_spec.rb +184 -0
- data/spec/lib/rules_view/defer_spec.rb +90 -0
- data/spec/lib/rules_view/form_builder_fields_spec.rb +184 -0
- data/spec/lib/rules_view/form_builder_spec.rb +19 -0
- data/spec/lib/rules_view/form_fields_spec.rb +219 -0
- data/spec/lib/rules_view/form_styles_spec.rb +290 -0
- data/spec/lib/rules_view/model_loader_spec.rb +202 -0
- data/spec/lib/rules_view/navigate_spec.rb +61 -0
- data/spec/rails_3_0_0_root/.gitignore +4 -0
- data/spec/rails_3_0_0_root/.rspec +1 -0
- data/spec/rails_3_0_0_root/Gemfile +13 -0
- data/spec/rails_3_0_0_root/Gemfile.lock +101 -0
- data/spec/rails_3_0_0_root/README +256 -0
- data/spec/rails_3_0_0_root/Rakefile +7 -0
- data/spec/rails_3_0_0_root/app/controllers/application_controller.rb +3 -0
- data/spec/rails_3_0_0_root/app/helpers/application_helper.rb +2 -0
- data/spec/rails_3_0_0_root/app/views/layouts/application.html.erb +14 -0
- data/spec/rails_3_0_0_root/autotest/discover.rb +2 -0
- data/spec/rails_3_0_0_root/config/application.rb +42 -0
- data/spec/rails_3_0_0_root/config/boot.rb +13 -0
- data/spec/rails_3_0_0_root/config/database.yml +22 -0
- data/spec/rails_3_0_0_root/config/environment.rb +5 -0
- data/spec/rails_3_0_0_root/config/environments/development.rb +26 -0
- data/spec/rails_3_0_0_root/config/environments/production.rb +49 -0
- data/spec/rails_3_0_0_root/config/environments/test.rb +35 -0
- data/spec/rails_3_0_0_root/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/rails_3_0_0_root/config/initializers/inflections.rb +10 -0
- data/spec/rails_3_0_0_root/config/initializers/mime_types.rb +5 -0
- data/spec/rails_3_0_0_root/config/initializers/secret_token.rb +7 -0
- data/spec/rails_3_0_0_root/config/initializers/session_store.rb +8 -0
- data/spec/rails_3_0_0_root/config/locales/en.yml +5 -0
- data/spec/rails_3_0_0_root/config/routes.rb +58 -0
- data/spec/rails_3_0_0_root/config.ru +4 -0
- data/spec/rails_3_0_0_root/db/seeds.rb +7 -0
- data/spec/rails_3_0_0_root/doc/README_FOR_APP +2 -0
- data/spec/rails_3_0_0_root/lib/tasks/.gitkeep +0 -0
- data/spec/rails_3_0_0_root/public/404.html +26 -0
- data/spec/rails_3_0_0_root/public/422.html +26 -0
- data/spec/rails_3_0_0_root/public/500.html +26 -0
- data/spec/rails_3_0_0_root/public/favicon.ico +0 -0
- data/spec/rails_3_0_0_root/public/images/rails.png +0 -0
- data/spec/rails_3_0_0_root/public/index.html +239 -0
- data/spec/rails_3_0_0_root/public/javascripts/application.js +2 -0
- data/spec/rails_3_0_0_root/public/javascripts/controls.js +965 -0
- data/spec/rails_3_0_0_root/public/javascripts/dragdrop.js +974 -0
- data/spec/rails_3_0_0_root/public/javascripts/effects.js +1123 -0
- data/spec/rails_3_0_0_root/public/javascripts/prototype.js +6001 -0
- data/spec/rails_3_0_0_root/public/javascripts/rails.js +175 -0
- data/spec/rails_3_0_0_root/public/robots.txt +5 -0
- data/spec/rails_3_0_0_root/public/stylesheets/.gitkeep +0 -0
- data/spec/rails_3_0_0_root/script/rails +6 -0
- data/spec/rails_3_0_0_root/spec/spec_helper.rb +27 -0
- data/spec/rails_3_0_0_root/vendor/plugins/.gitkeep +0 -0
- data/spec/spec_helper.rb +29 -0
- data/spec/support/create_memory_db.rb +2 -0
- data/tasks/rspec.rake +46 -0
- 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(" ", hash_including(:dummy => 'option')).and_return(' ')
|
|
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(' ' + '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(" ", hash_including(:required => true))
|
|
104
|
+
@builder.should_receive(:re_build_form_label).with(" ", anything()).and_return(' ')
|
|
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(' ' + '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 == " "
|
|
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(" ", hash_including(:dummy => 'option')).and_return(' ')
|
|
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(' ' + '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(" ", hash_including(:required => true))
|
|
95
|
+
helper.should_receive(:re_build_form_label).with(" ", anything()).and_return(' ')
|
|
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(' ' + '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 == " "
|
|
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 == " "
|
|
181
|
+
end
|
|
182
|
+
form_field.should have_selector("div.re-form-data") do |form_data|
|
|
183
|
+
form_data.inner_html.should == " "
|
|
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
|
+
|