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 CHANGED
@@ -1 +1 @@
1
- 0.1.2
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.2"
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(RSpec::RubyContentMatchers)
41
+ config.include RSpec::RubyContentMatchers
42
+ config.extend(FormHelperMacro)
20
43
  end
44
+
45
+
46
+
47
+
@@ -18,8 +18,8 @@ module Erb
18
18
  end
19
19
 
20
20
  class String
21
- def erb_code code
22
- Erb::Code.get_code code
21
+ def erb_code
22
+ Erb::Code.get_code self
23
23
  end
24
24
  end
25
25
 
@@ -1,97 +1,26 @@
1
- module Erb::RailsForm
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
- name_options_methods.each do |name|
70
- class_eval %{
71
- def have_#{name} name
72
- have_form_call :collection_select, :args => ":#{name}"
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
- module Links
79
- def self.link_methods
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
- link_methods.each do |name|
13
+ form_helpers.each do |name|
84
14
  class_eval %{
85
- def have_#{name} args
86
- have_form_call :collection_select, :args => args
87
- end
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
- def have_submit_button
92
- HaveDotCall.new(:submit)
93
- end
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
@@ -1,6 +1,6 @@
1
1
  module Erb::SimpleForm
2
2
  module ContentMatchers
3
- def have_simple_form_block name
3
+ def have_simple_form_for name
4
4
  have_block :simple_form_for, :args => name
5
5
  end
6
6
 
@@ -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(fixtures_dir, 'view-file.erb')
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 %>
@@ -1,5 +1,8 @@
1
1
  By default we are in into log mode...
2
+ HALLO
2
3
  This is debugging mode!
4
+ WHAT THE ??
3
5
  More info... but still in debugging mode
6
+ blip blap blup
4
7
  Back to info mode
5
8
 
data/spec/spec_helper.rb CHANGED
@@ -4,4 +4,8 @@ require 'code-spec'
4
4
 
5
5
  def fixtures_dir
6
6
  File.expand_path(File.dirname(__FILE__) + '/code-spec/fixtures')
7
+ end
8
+
9
+ def erb_fixtures_dir
10
+ File.join(fixtures_dir, 'erb')
7
11
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 2
9
- version: 0.1.2
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