comfy_bootstrap_form 4.0.0 → 4.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.
- 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
|