code-spec 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/code-spec.gemspec +10 -2
- data/lib/code-spec.rb +28 -1
- data/lib/code_spec/erb/code-stripper.rb +2 -2
- data/lib/code_spec/erb/matchers/rails_view/have_form.rb +16 -87
- data/lib/code_spec/erb/matchers/rails_view/helpers/links.rb +21 -0
- data/lib/code_spec/erb/matchers/rails_view/helpers/options.rb +30 -0
- data/lib/code_spec/erb/matchers/rails_view/helpers/tags.rb +30 -0
- data/lib/code_spec/erb/matchers/simpleform/have_simpleform.rb +1 -1
- data/spec/code-spec/erb/code-stripper_spec.rb +1 -1
- data/spec/code-spec/erb/matchers/formtastic/have_formtastic_spec.rb +21 -0
- data/spec/code-spec/erb/matchers/rails_view/have_form_spec.rb +22 -0
- data/spec/code-spec/erb/matchers/simpleform/have_simpleform_spec.rb +22 -0
- data/spec/code-spec/fixtures/erb/formtastic-ex1.erb +28 -0
- data/spec/code-spec/fixtures/erb/railsform-ex1.erb +19 -0
- data/spec/code-spec/fixtures/erb/simpleform-ex1.erb +17 -0
- data/spec/code-spec/fixtures/{view-file.erb → erb/view-file.erb} +0 -0
- data/spec/code-spec/fixtures/logfile.log +3 -0
- data/spec/spec_helper.rb +4 -0
- metadata +11 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.3
|
data/code-spec.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{code-spec}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kristian Mandrup"]
|
@@ -32,6 +32,9 @@ Gem::Specification.new do |s|
|
|
32
32
|
"lib/code_spec/erb/code-stripper.rb",
|
33
33
|
"lib/code_spec/erb/matchers/formtastic/have_formtastic.rb",
|
34
34
|
"lib/code_spec/erb/matchers/rails_view/have_form.rb",
|
35
|
+
"lib/code_spec/erb/matchers/rails_view/helpers/links.rb",
|
36
|
+
"lib/code_spec/erb/matchers/rails_view/helpers/options.rb",
|
37
|
+
"lib/code_spec/erb/matchers/rails_view/helpers/tags.rb",
|
35
38
|
"lib/code_spec/erb/matchers/simpleform/have_simpleform.rb",
|
36
39
|
"lib/code_spec/matchers/content_matcher.rb",
|
37
40
|
"lib/code_spec/matchers/have_block.rb",
|
@@ -50,8 +53,12 @@ Gem::Specification.new do |s|
|
|
50
53
|
"spec/code-spec/erb/code-stripper_spec.rb",
|
51
54
|
"spec/code-spec/erb/matchers/formtastic/have_formtastic_spec.rb",
|
52
55
|
"spec/code-spec/erb/matchers/rails_view/have_form_spec.rb",
|
56
|
+
"spec/code-spec/erb/matchers/simpleform/have_simpleform_spec.rb",
|
57
|
+
"spec/code-spec/fixtures/erb/formtastic-ex1.erb",
|
58
|
+
"spec/code-spec/fixtures/erb/railsform-ex1.erb",
|
59
|
+
"spec/code-spec/fixtures/erb/simpleform-ex1.erb",
|
60
|
+
"spec/code-spec/fixtures/erb/view-file.erb",
|
53
61
|
"spec/code-spec/fixtures/logfile.log",
|
54
|
-
"spec/code-spec/fixtures/view-file.erb",
|
55
62
|
"spec/code-spec/matchers/class_self_spec.rb",
|
56
63
|
"spec/code-spec/matchers/have_block_spec.rb",
|
57
64
|
"spec/code-spec/matchers/have_call_spec.rb",
|
@@ -75,6 +82,7 @@ Gem::Specification.new do |s|
|
|
75
82
|
"spec/code-spec/erb/code-stripper_spec.rb",
|
76
83
|
"spec/code-spec/erb/matchers/formtastic/have_formtastic_spec.rb",
|
77
84
|
"spec/code-spec/erb/matchers/rails_view/have_form_spec.rb",
|
85
|
+
"spec/code-spec/erb/matchers/simpleform/have_simpleform_spec.rb",
|
78
86
|
"spec/code-spec/matchers/class_self_spec.rb",
|
79
87
|
"spec/code-spec/matchers/have_block_spec.rb",
|
80
88
|
"spec/code-spec/matchers/have_call_spec.rb",
|
data/lib/code-spec.rb
CHANGED
@@ -15,6 +15,33 @@ require_all File.dirname(__FILE__) + '/code_spec/erb'
|
|
15
15
|
require 'code_spec/content_helpers'
|
16
16
|
require 'code_spec/core_ext'
|
17
17
|
|
18
|
+
module FormHelperMacro
|
19
|
+
def with_form_helper name
|
20
|
+
class_eval do
|
21
|
+
include get_form_matcher(name)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
protected
|
26
|
+
|
27
|
+
def get_form_matcher name
|
28
|
+
case name
|
29
|
+
when :formtastic
|
30
|
+
Erb::Formtastic::ContentMatchers
|
31
|
+
when :simpleform
|
32
|
+
Erb::SimpleForm::ContentMatchers
|
33
|
+
else
|
34
|
+
Erb::RailsForm::ContentMatchers
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
|
18
40
|
RSpec.configure do |config|
|
19
|
-
config.include
|
41
|
+
config.include RSpec::RubyContentMatchers
|
42
|
+
config.extend(FormHelperMacro)
|
20
43
|
end
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
|
@@ -1,97 +1,26 @@
|
|
1
|
-
|
2
|
-
module Base
|
3
|
-
module ContentMatchers
|
4
|
-
def have_form_block name
|
5
|
-
have_block :form_for, :args => name
|
6
|
-
end
|
7
|
-
|
8
|
-
def self.form_helpers
|
9
|
-
[:check_box, :file_field, :hidden_field, :label, :password_field, :radio_button, :text_area]
|
10
|
-
end
|
11
|
-
|
12
|
-
form_helpers.each do |name|
|
13
|
-
class_eval %{
|
14
|
-
def have_#{name} obj_name, args=nil
|
15
|
-
args = args ? ":name => \#{obj_name}, \#{args}" : ":name => \#{obj_name}"
|
16
|
-
have_form_call :#{name}, :args => args
|
17
|
-
end
|
18
|
-
}
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
module Tags
|
24
|
-
|
25
|
-
def have_field_set_tag legend
|
26
|
-
have_form_call :field_set_tag, :args => "'#{legend}'"
|
27
|
-
end
|
28
|
-
|
29
|
-
def have_form_tag url
|
30
|
-
have_form_call :form_tag, :args => "'#{url}'"
|
31
|
-
end
|
32
|
-
|
33
|
-
def have_password_field_tag name = "password"
|
34
|
-
have_form_call :password_field_tag, :args => "'#{name}'"
|
35
|
-
end
|
36
|
-
|
37
|
-
def self.tags_list
|
38
|
-
[ :check_box_tag, :file_field_tag, :text_field_tag, :hidden_field_tag, :image_submit_tag,
|
39
|
-
:radio_button_tag, :select_tag, :label_tag, :submit_tag, :text_area_tag ]
|
40
|
-
end
|
41
|
-
|
42
|
-
tags_list.each do |name|
|
43
|
-
class_eval %{
|
44
|
-
def have_#{name} name
|
45
|
-
have_form_call :#{name}, :args => "'\#{name}'"
|
46
|
-
end
|
47
|
-
}
|
48
|
-
end
|
49
|
-
|
50
|
-
end
|
51
|
-
|
52
|
-
module Options
|
53
|
-
def self.options_methods
|
54
|
-
[ :grouped_collection_select, :option_groups_from_collection_for_select, :option_groups_from_collection_for_select,
|
55
|
-
:options_from_collection_for_select, :time_zone_options_for_select ]
|
56
|
-
|
57
|
-
options_methods.each do |name|
|
58
|
-
class_eval %{
|
59
|
-
def have_#{name} name
|
60
|
-
have_form_call :#{name}
|
61
|
-
end
|
62
|
-
}
|
63
|
-
end
|
64
|
-
|
65
|
-
def self.name_options_methods
|
66
|
-
[ :collection_select, :grouped_collection_select, :select, :time_zone_select ]
|
67
|
-
end
|
1
|
+
require_all File.dirname(__FILE__) + '/helpers'
|
68
2
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
end
|
74
|
-
}
|
3
|
+
module Erb::RailsForm
|
4
|
+
module ContentMatchers
|
5
|
+
def have_form_for name
|
6
|
+
have_block :form_for, :args => name
|
75
7
|
end
|
76
|
-
end
|
77
8
|
|
78
|
-
|
79
|
-
|
80
|
-
[ :button_to, :link_to, :mail_to ]
|
9
|
+
def self.form_helpers
|
10
|
+
[:check_box, :file_field, :hidden_field, :label, :password_field, :radio_button, :text_area]
|
81
11
|
end
|
82
12
|
|
83
|
-
|
13
|
+
form_helpers.each do |name|
|
84
14
|
class_eval %{
|
85
|
-
def have_#{name} args
|
86
|
-
|
87
|
-
|
15
|
+
def have_#{name} obj_name, args=nil
|
16
|
+
args = args ? ":\#{obj_name}, \#{args}" : ":\#{obj_name}"
|
17
|
+
have_form_call :#{name}, :args => args
|
18
|
+
end
|
88
19
|
}
|
89
20
|
end
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
end
|
95
|
-
|
21
|
+
|
22
|
+
include LinkHelpers
|
23
|
+
include OptionHelpers
|
24
|
+
include TagHelpers
|
96
25
|
end
|
97
26
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Erb::RailsForm
|
2
|
+
module ContentMatchers
|
3
|
+
module LinkHelpers
|
4
|
+
def self.link_methods
|
5
|
+
[ :button_to, :link_to, :mail_to ]
|
6
|
+
end
|
7
|
+
|
8
|
+
link_methods.each do |name|
|
9
|
+
class_eval %{
|
10
|
+
def have_#{name} args
|
11
|
+
have_form_call :collection_select, :args => args
|
12
|
+
end
|
13
|
+
}
|
14
|
+
end
|
15
|
+
|
16
|
+
def have_submit_button
|
17
|
+
HaveDotCall.new(:submit)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Erb::RailsForm
|
2
|
+
module ContentMatchers
|
3
|
+
module OptionHelpers
|
4
|
+
def self.options_methods
|
5
|
+
[ :grouped_collection_select, :option_groups_from_collection_for_select, :option_groups_from_collection_for_select,
|
6
|
+
:options_from_collection_for_select, :time_zone_options_for_select ]
|
7
|
+
end
|
8
|
+
|
9
|
+
options_methods.each do |name|
|
10
|
+
class_eval %{
|
11
|
+
def have_#{name} name
|
12
|
+
have_form_call :#{name}
|
13
|
+
end
|
14
|
+
}
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.name_options_methods
|
18
|
+
[ :collection_select, :grouped_collection_select, :select, :time_zone_select ]
|
19
|
+
end
|
20
|
+
|
21
|
+
name_options_methods.each do |name|
|
22
|
+
class_eval %{
|
23
|
+
def have_#{name} name
|
24
|
+
have_form_call :collection_select, :args => ":#{name}"
|
25
|
+
end
|
26
|
+
}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Erb::RailsForm
|
2
|
+
module ContentMatchers
|
3
|
+
module TagHelpers
|
4
|
+
def have_field_set_tag legend
|
5
|
+
have_form_call :field_set_tag, :args => "'#{legend}'"
|
6
|
+
end
|
7
|
+
|
8
|
+
def have_form_tag url
|
9
|
+
have_form_call :form_tag, :args => "'#{url}'"
|
10
|
+
end
|
11
|
+
|
12
|
+
def have_password_field_tag name = "password"
|
13
|
+
have_form_call :password_field_tag, :args => "'#{name}'"
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.tags_list
|
17
|
+
[ :check_box_tag, :file_field_tag, :text_field_tag, :hidden_field_tag, :image_submit_tag,
|
18
|
+
:radio_button_tag, :select_tag, :label_tag, :submit_tag, :text_area_tag ]
|
19
|
+
end
|
20
|
+
|
21
|
+
tags_list.each do |name|
|
22
|
+
class_eval %{
|
23
|
+
def have_#{name} name
|
24
|
+
have_form_call :#{name}, :args => "'\#{name}'"
|
25
|
+
end
|
26
|
+
}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -6,7 +6,7 @@ module Erb
|
|
6
6
|
context "valid ERB file" do
|
7
7
|
it "should get only the ERB code from a valid ERB file" do
|
8
8
|
debug = false # true
|
9
|
-
erb_file = File.join(
|
9
|
+
erb_file = File.join(erb_fixtures_dir, 'view-file.erb')
|
10
10
|
File.new(erb_file).erb_code.should match_lines %{for @item in @items\nhello :you\nhello :me}
|
11
11
|
end
|
12
12
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Formtastic form matcher' do
|
4
|
+
with_form_helper :formtastic
|
5
|
+
|
6
|
+
context "Formtastic example 1 view file" do
|
7
|
+
form_file = File.join(erb_fixtures_dir, 'formtastic-ex1.erb')
|
8
|
+
it "content should match form expectations" do
|
9
|
+
form_file.should have_content do |content|
|
10
|
+
content.erb_code.should have_semantic_form_for '@article' do |form|
|
11
|
+
form.should have_inputs "Basic"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Rails 3 form matcher' do
|
4
|
+
with_form_helper :rails_form
|
5
|
+
|
6
|
+
context "Rails 3 form example 1 view file" do
|
7
|
+
form_file = File.join(erb_fixtures_dir, 'railsform-ex1.erb')
|
8
|
+
|
9
|
+
it "content should match form expectations" do
|
10
|
+
form_file.should have_content do |content|
|
11
|
+
content.erb_code.should have_form_for '@person' do |form|
|
12
|
+
form.should have_label :name
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Simpleform form matcher' do
|
4
|
+
with_form_helper :simpleform
|
5
|
+
|
6
|
+
context "Simpleform example 1 view file" do
|
7
|
+
form_file = File.join(erb_fixtures_dir, 'simpleform-ex1.erb')
|
8
|
+
|
9
|
+
it "content should match form expectations" do
|
10
|
+
form_file.should have_content do |content|
|
11
|
+
content.erb_code.should have_simple_form_for '@user' do |form|
|
12
|
+
form.should have_username
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<% semantic_form_for @article do |form| %>
|
2
|
+
|
3
|
+
<% form.inputs :name => "Basic" do %>
|
4
|
+
<%= form.input :title %>
|
5
|
+
<%= form.input :body %>
|
6
|
+
<%= form.input :section %>
|
7
|
+
<%= form.input :publication_state, :as => :radio %>
|
8
|
+
<%= form.input :category %>
|
9
|
+
<%= form.input :allow_comments, :label => "Allow commenting on this article" %>
|
10
|
+
<% end %>
|
11
|
+
|
12
|
+
<% form.inputs :name => "Advanced" do %>
|
13
|
+
<%= form.input :keywords, :required => false, :hint => "Example: ruby, rails, forms" %>
|
14
|
+
<%= form.input :extract, :required => false %>
|
15
|
+
<%= form.input :description, :required => false %>
|
16
|
+
<%= form.input :url_title, :required => false %>
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
<% form.inputs :name => "Author", :for => :author do |author_form| %>
|
20
|
+
<%= author_form.input :first_name %>
|
21
|
+
<%= author_form.input :last_name %>
|
22
|
+
<% end %>
|
23
|
+
|
24
|
+
<% form.buttons do %>
|
25
|
+
<%= form.commit_button %>
|
26
|
+
<% end %>
|
27
|
+
|
28
|
+
<% end %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<% form_for @person do |person_form| %>
|
2
|
+
|
3
|
+
<%= person_form.label :name %>
|
4
|
+
<%= person_form.text_field :name %>
|
5
|
+
|
6
|
+
<% person_form.fields_for :children do |child_form| %>
|
7
|
+
|
8
|
+
<%= child_form.label :name %>
|
9
|
+
<%= child_form.text_field :name %>
|
10
|
+
|
11
|
+
<% unless child_form.object.new_record? %>
|
12
|
+
<%= child_form.check_box '_delete' %>
|
13
|
+
<%= child_form.label '_delete', 'Remove' %>
|
14
|
+
<% end %>
|
15
|
+
|
16
|
+
<% end %>
|
17
|
+
|
18
|
+
<%= submit_tag %>
|
19
|
+
<% end %>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<%= simple_form_for @user do |f| %>
|
2
|
+
<%= f.input :username, :label_html => { :class => 'my_class' } %>
|
3
|
+
<%= f.input :password, :hint => false, :error_html => { :id => "password_error"} %>
|
4
|
+
<%= f.input :password_confirmation, :label => false %>
|
5
|
+
<%= f.input :time_zone, :priority => /US/%>
|
6
|
+
<%= f.error :username, :id => 'user_name_error' %>
|
7
|
+
<%= f.hint 'No special characters, please!' %>
|
8
|
+
<%= f.association :company %>
|
9
|
+
<%= f.association :role %>
|
10
|
+
|
11
|
+
<%= f.association :companies, :as => :radio %>
|
12
|
+
<%= f.association :roles, :as => :check_boxes %>
|
13
|
+
|
14
|
+
<%= f.button :submit %>
|
15
|
+
<%= f.button :submit %>
|
16
|
+
<%= f.submit 'Save' %>
|
17
|
+
<% end %>
|
File without changes
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 3
|
9
|
+
version: 0.1.3
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Kristian Mandrup
|
@@ -90,6 +90,9 @@ files:
|
|
90
90
|
- lib/code_spec/erb/code-stripper.rb
|
91
91
|
- lib/code_spec/erb/matchers/formtastic/have_formtastic.rb
|
92
92
|
- lib/code_spec/erb/matchers/rails_view/have_form.rb
|
93
|
+
- lib/code_spec/erb/matchers/rails_view/helpers/links.rb
|
94
|
+
- lib/code_spec/erb/matchers/rails_view/helpers/options.rb
|
95
|
+
- lib/code_spec/erb/matchers/rails_view/helpers/tags.rb
|
93
96
|
- lib/code_spec/erb/matchers/simpleform/have_simpleform.rb
|
94
97
|
- lib/code_spec/matchers/content_matcher.rb
|
95
98
|
- lib/code_spec/matchers/have_block.rb
|
@@ -108,8 +111,12 @@ files:
|
|
108
111
|
- spec/code-spec/erb/code-stripper_spec.rb
|
109
112
|
- spec/code-spec/erb/matchers/formtastic/have_formtastic_spec.rb
|
110
113
|
- spec/code-spec/erb/matchers/rails_view/have_form_spec.rb
|
114
|
+
- spec/code-spec/erb/matchers/simpleform/have_simpleform_spec.rb
|
115
|
+
- spec/code-spec/fixtures/erb/formtastic-ex1.erb
|
116
|
+
- spec/code-spec/fixtures/erb/railsform-ex1.erb
|
117
|
+
- spec/code-spec/fixtures/erb/simpleform-ex1.erb
|
118
|
+
- spec/code-spec/fixtures/erb/view-file.erb
|
111
119
|
- spec/code-spec/fixtures/logfile.log
|
112
|
-
- spec/code-spec/fixtures/view-file.erb
|
113
120
|
- spec/code-spec/matchers/class_self_spec.rb
|
114
121
|
- spec/code-spec/matchers/have_block_spec.rb
|
115
122
|
- spec/code-spec/matchers/have_call_spec.rb
|
@@ -159,6 +166,7 @@ test_files:
|
|
159
166
|
- spec/code-spec/erb/code-stripper_spec.rb
|
160
167
|
- spec/code-spec/erb/matchers/formtastic/have_formtastic_spec.rb
|
161
168
|
- spec/code-spec/erb/matchers/rails_view/have_form_spec.rb
|
169
|
+
- spec/code-spec/erb/matchers/simpleform/have_simpleform_spec.rb
|
162
170
|
- spec/code-spec/matchers/class_self_spec.rb
|
163
171
|
- spec/code-spec/matchers/have_block_spec.rb
|
164
172
|
- spec/code-spec/matchers/have_call_spec.rb
|