comfy_bootstrap_form 4.0.0 → 4.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +0 -2
- data/.travis.yml +2 -0
- data/Gemfile +3 -2
- data/LICENSE.md +1 -1
- data/README.md +32 -9
- data/bootstrap_form.gemspec +6 -3
- data/lib/bootstrap_form/version.rb +1 -1
- data/lib/bootstrap_form/view_helper.rb +30 -9
- metadata +5 -60
- data/demo/README.md +0 -18
- data/demo/Rakefile +0 -6
- data/demo/app/controllers/application_controller.rb +0 -2
- data/demo/app/controllers/bootstrap_controller.rb +0 -18
- data/demo/app/models/application_record.rb +0 -3
- data/demo/app/models/user.rb +0 -3
- data/demo/app/views/bootstrap/form.html.erb +0 -127
- data/demo/app/views/layouts/application.html.erb +0 -43
- data/demo/bin/bundle +0 -3
- data/demo/bin/rails +0 -4
- data/demo/bin/rake +0 -4
- data/demo/bin/setup +0 -36
- data/demo/bin/update +0 -31
- data/demo/bin/yarn +0 -11
- data/demo/config/application.rb +0 -24
- data/demo/config/boot.rb +0 -5
- data/demo/config/database.yml +0 -21
- data/demo/config/environment.rb +0 -5
- data/demo/config/environments/development.rb +0 -60
- data/demo/config/environments/test.rb +0 -48
- data/demo/config/initializers/application_controller_renderer.rb +0 -8
- data/demo/config/initializers/assets.rb +0 -14
- data/demo/config/initializers/backtrace_silencers.rb +0 -7
- data/demo/config/initializers/cookies_serializer.rb +0 -5
- data/demo/config/initializers/filter_parameter_logging.rb +0 -4
- data/demo/config/initializers/inflections.rb +0 -16
- data/demo/config/initializers/mime_types.rb +0 -4
- data/demo/config/initializers/wrap_parameters.rb +0 -14
- data/demo/config/locales/en.yml +0 -33
- data/demo/config/puma.rb +0 -56
- data/demo/config/routes.rb +0 -5
- data/demo/config/spring.rb +0 -6
- data/demo/config/storage.yml +0 -35
- data/demo/config.ru +0 -5
- data/demo/db/schema.rb +0 -14
- data/demo/form_preview_horizontal.png +0 -0
- data/demo/form_preview_horizontal_with_errors.png +0 -0
- data/demo/form_preview_inline.png +0 -0
- data/demo/form_preview_vertical.png +0 -0
- data/demo/log/.keep +0 -0
- data/demo/package.json +0 -5
- data/demo/public/favicon.ico +0 -0
- data/test/bootstrap_form/bootstrap_options_test.rb +0 -114
- data/test/bootstrap_form/fields_test.rb +0 -304
- data/test/bootstrap_form/fields_with_errors_test.rb +0 -111
- data/test/bootstrap_form/form_builder_test.rb +0 -17
- data/test/bootstrap_form/horizontal_form_test.rb +0 -160
- data/test/bootstrap_form/inline_form_test.rb +0 -68
- data/test/bootstrap_form/input_group_test.rb +0 -56
- data/test/bootstrap_form/radios_and_checkboxes_test.rb +0 -207
- data/test/bootstrap_form/submit_test.rb +0 -59
- data/test/bootstrap_form/view_helpers_test.rb +0 -99
- data/test/gemfiles/5.2.gemfile +0 -14
- data/test/test_helper.rb +0 -48
@@ -1,59 +0,0 @@
|
|
1
|
-
require_relative "../test_helper"
|
2
|
-
|
3
|
-
class SubmitTest < ActionView::TestCase
|
4
|
-
|
5
|
-
setup do
|
6
|
-
@user = User.new
|
7
|
-
@builder = BootstrapForm::FormBuilder.new(:user, @user, self, {})
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_submit
|
11
|
-
expected = <<-HTML
|
12
|
-
<div class="form-group">
|
13
|
-
<input class="btn" data-disable-with="Create User" name="commit" type="submit" value="Create User" />
|
14
|
-
</div>
|
15
|
-
HTML
|
16
|
-
assert_xml_equal expected, @builder.submit
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_primary
|
20
|
-
expected = <<-HTML
|
21
|
-
<div class="form-group">
|
22
|
-
<input class="btn-primary btn" data-disable-with="Create User" name="commit" type="submit" value="Create User" />
|
23
|
-
</div>
|
24
|
-
HTML
|
25
|
-
assert_xml_equal expected, @builder.primary
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_submit_with_label
|
29
|
-
expected = <<-HTML
|
30
|
-
<div class="form-group">
|
31
|
-
<input class="btn" data-disable-with="Test" name="commit" type="submit" value="Test" />
|
32
|
-
</div>
|
33
|
-
HTML
|
34
|
-
assert_xml_equal expected, @builder.submit("Test")
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_submit_with_css_class
|
38
|
-
expected = <<-HTML
|
39
|
-
<div class="form-group">
|
40
|
-
<input class="custom btn" data-disable-with="Create User" name="commit" type="submit" value="Create User" />
|
41
|
-
</div>
|
42
|
-
HTML
|
43
|
-
assert_xml_equal expected, @builder.submit(class: "custom")
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_submit_with_block
|
47
|
-
actual = @builder.submit do
|
48
|
-
%(<a href="/" class="btn btn-link">Cancel</a>).html_safe
|
49
|
-
end
|
50
|
-
expected = <<-HTML
|
51
|
-
<div class="form-group">
|
52
|
-
<input class="btn" data-disable-with="Create User" name="commit" type="submit" value="Create User"/>
|
53
|
-
<a href="/" class="btn btn-link">Cancel</a>
|
54
|
-
</div>
|
55
|
-
HTML
|
56
|
-
assert_xml_equal expected, actual
|
57
|
-
end
|
58
|
-
|
59
|
-
end
|
@@ -1,99 +0,0 @@
|
|
1
|
-
require_relative "../test_helper"
|
2
|
-
|
3
|
-
class ViewHelpersTest < ActionView::TestCase
|
4
|
-
|
5
|
-
include BootstrapForm::ViewHelper
|
6
|
-
|
7
|
-
def test_bootstrap_form_with
|
8
|
-
actual = bootstrap_form_with(url: "/test") {}
|
9
|
-
expected = <<-HTML
|
10
|
-
<form action="/test" accept-charset="UTF-8" data-remote="true" method="post">
|
11
|
-
<input name="utf8" type="hidden" value="✓" />
|
12
|
-
</form>
|
13
|
-
HTML
|
14
|
-
assert_xml_equal expected, actual
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_bootstrap_form_with_and_field
|
18
|
-
actual = bootstrap_form_with(url: "/test") do |form|
|
19
|
-
form.text_field :value
|
20
|
-
end
|
21
|
-
expected = <<-HTML
|
22
|
-
<form accept-charset="UTF-8" action="/test" data-remote="true" method="post">
|
23
|
-
<input name="utf8" type="hidden" value="✓"/>
|
24
|
-
<div class="form-group">
|
25
|
-
<label for="value">Value</label>
|
26
|
-
<input class="form-control" id="value" name="value" type="text"/>
|
27
|
-
</div>
|
28
|
-
</form>
|
29
|
-
HTML
|
30
|
-
assert_xml_equal expected, actual
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_bootstrap_form_as_horizontal
|
34
|
-
actual = bootstrap_form_with(url: "/test", bootstrap: { layout: :horizontal }) do |form|
|
35
|
-
form.text_field :value
|
36
|
-
end
|
37
|
-
expected = <<-HTML
|
38
|
-
<form accept-charset="UTF-8" action="/test" data-remote="true" method="post">
|
39
|
-
<input name="utf8" type="hidden" value="✓"/>
|
40
|
-
<div class="form-group row">
|
41
|
-
<label class="col-form-label col-sm-2 text-sm-right" for="value">Value</label>
|
42
|
-
<div class="col-sm-10">
|
43
|
-
<input class="form-control" id="value" name="value" type="text"/>
|
44
|
-
</div>
|
45
|
-
</div>
|
46
|
-
</form>
|
47
|
-
HTML
|
48
|
-
assert_xml_equal expected, actual
|
49
|
-
end
|
50
|
-
|
51
|
-
def test_bootstrap_form_with_inline
|
52
|
-
actual = bootstrap_form_with(url: "/test", bootstrap: { layout: :inline }) do |form|
|
53
|
-
form.text_field :value
|
54
|
-
form.submit
|
55
|
-
end
|
56
|
-
expected = <<-HTML
|
57
|
-
<form accept-charset="UTF-8" action="/test" class=" form-inline" data-remote="true" method="post">
|
58
|
-
<input name="utf8" type="hidden" value="✓"/>
|
59
|
-
<div class="form-group">
|
60
|
-
<input class="btn" data-disable-with="Save " name="commit" type="submit" value="Save "/>
|
61
|
-
</div>
|
62
|
-
</form>
|
63
|
-
HTML
|
64
|
-
assert_xml_equal expected, actual
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_bootstrap_form_with_supress_field_errors
|
68
|
-
user = User.new
|
69
|
-
user.errors.add(:test, "invalid")
|
70
|
-
actual = bootstrap_form_with(model: user, url: "/test") do |form|
|
71
|
-
form.text_field :test
|
72
|
-
end
|
73
|
-
expected = <<-HTML
|
74
|
-
<form accept-charset="UTF-8" action="/test" data-remote="true" method="post">
|
75
|
-
<input name="utf8" type="hidden" value="✓"/>
|
76
|
-
<div class="form-group">
|
77
|
-
<label for="user_test">Test</label>
|
78
|
-
<input class="form-control is-invalid" id="user_test" name="user[test]" type="text"/>
|
79
|
-
<div class="invalid-feedback">invalid</div>
|
80
|
-
</div>
|
81
|
-
</form>
|
82
|
-
HTML
|
83
|
-
assert_xml_equal expected, actual
|
84
|
-
end
|
85
|
-
|
86
|
-
def test_bootstrap_form_with_builder_override
|
87
|
-
actual = bootstrap_form_with(url: "/test", builder: ActionView::Helpers::FormBuilder) do |form|
|
88
|
-
form.text_field :value
|
89
|
-
end
|
90
|
-
expected = <<-HTML
|
91
|
-
<form accept-charset="UTF-8" action="/test" data-remote="true" method="post">
|
92
|
-
<input name="utf8" type="hidden" value="✓"/>
|
93
|
-
<input id="value" name="value" type="text"/>
|
94
|
-
</form>
|
95
|
-
HTML
|
96
|
-
assert_xml_equal expected, actual
|
97
|
-
end
|
98
|
-
|
99
|
-
end
|
data/test/gemfiles/5.2.gemfile
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
source "http://rubygems.org"
|
2
|
-
|
3
|
-
gemspec path: "../../"
|
4
|
-
|
5
|
-
gem "rails", "~> 5.2.0.rc1"
|
6
|
-
|
7
|
-
group :test do
|
8
|
-
gem "rubocop", "~> 0.51.0", require: false
|
9
|
-
gem "minitest"
|
10
|
-
gem "diffy"
|
11
|
-
gem "equivalent-xml"
|
12
|
-
gem "sqlite3"
|
13
|
-
gem "coveralls", require: false
|
14
|
-
end
|
data/test/test_helper.rb
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
ENV["RAILS_ENV"] = "test"
|
2
|
-
|
3
|
-
require "coveralls"
|
4
|
-
Coveralls.wear!
|
5
|
-
|
6
|
-
require "diffy"
|
7
|
-
require "nokogiri"
|
8
|
-
require "equivalent-xml"
|
9
|
-
|
10
|
-
require_relative "../demo/config/environment.rb"
|
11
|
-
require "rails/test_help"
|
12
|
-
|
13
|
-
Rails.backtrace_cleaner.remove_silencers!
|
14
|
-
|
15
|
-
class ActionView::TestCase
|
16
|
-
|
17
|
-
# Expected and actual are wrapped in a root tag to ensure proper XML structure
|
18
|
-
def assert_xml_equal(expected, actual)
|
19
|
-
expected_xml = Nokogiri::XML("<test-xml>\n#{expected}\n</test-xml>", &:noblanks)
|
20
|
-
actual_xml = Nokogiri::XML("<test-xml>\n#{actual}\n</test-xml>", &:noblanks)
|
21
|
-
|
22
|
-
equivalent = EquivalentXml.equivalent?(expected_xml, actual_xml)
|
23
|
-
assert equivalent, -> {
|
24
|
-
# using a lambda because diffing is expensive
|
25
|
-
Diffy::Diff.new(
|
26
|
-
sort_attributes(expected_xml.root).to_xml(indent: 2),
|
27
|
-
sort_attributes(actual_xml.root).to_xml(indent: 2)
|
28
|
-
).to_s
|
29
|
-
}
|
30
|
-
end
|
31
|
-
|
32
|
-
private
|
33
|
-
|
34
|
-
def sort_attributes(doc)
|
35
|
-
return if doc.blank?
|
36
|
-
doc.dup.traverse do |node|
|
37
|
-
if node.is_a?(Nokogiri::XML::Element)
|
38
|
-
attributes = node.attribute_nodes.sort_by(&:name)
|
39
|
-
attributes.each do |attribute|
|
40
|
-
node.delete(attribute.name)
|
41
|
-
node[attribute.name] = attribute.value
|
42
|
-
end
|
43
|
-
end
|
44
|
-
node
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|