minitest-rails-capybara 0.1 → 0.5

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/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012 Mike Moore
1
+ Copyright (c) 2013 Mike Moore
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/Manifest.txt CHANGED
@@ -5,6 +5,9 @@ LICENSE
5
5
  Manifest.txt
6
6
  README.rdoc
7
7
  Rakefile
8
+ lib/generators/mini_test/feature/feature_generator.rb
9
+ lib/generators/mini_test/feature/templates/feature_spec.rb
10
+ lib/generators/mini_test/feature/templates/feature_test.rb
8
11
  lib/minitest-rails-capybara.rb
9
12
  lib/minitest/rails/capybara.rb
10
13
  minitest-rails-capybara.gemspec
data/README.rdoc CHANGED
@@ -1,6 +1,6 @@
1
1
  = minitest-rails-capybara
2
2
 
3
- Capybara integration for MiniTest::Rails.
3
+ Capybara integration for MiniTest and Rails.
4
4
 
5
5
  == Install
6
6
 
@@ -32,19 +32,21 @@ Add the following to your <tt>minitest_helper.rb</tt> file to the <tt>test</tt>
32
32
 
33
33
  == Usage
34
34
 
35
- Generate a new acceptance test using the default generator:
35
+ Capybara is intended to be used for automating a browser to test your application's features. This is different than the integration tests that Rails provides, so you must use the <tt>Capybara::Rails::TestCase</tt> for your feature tests.
36
36
 
37
- rails generate integration_test CanAccessHome
37
+ To generate these feature tests, you can use the feature generator:
38
+
39
+ rails generate mini_test:feature CanAccessHome
38
40
 
39
41
  And you can specify use of the MiniTest::Spec DSL by providing the <tt>--spec</tt> option:
40
42
 
41
- rails generate integration_test CanAccessHome --spec
43
+ rails generate mini_test:feature CanAccessHome --spec
42
44
 
43
45
  You can now use Capybara in your acceptance tests!
44
46
 
45
47
  require "minitest_helper"
46
48
 
47
- class CanAccessHomeTest < MiniTest::Rails::ActionDispatch::IntegrationTest
49
+ class CanAccessHomeTest < Capybara::Rails::TestCase
48
50
  def test_homepage_has_content
49
51
  visit root_path
50
52
  assert page.has_content?("Home#index")
@@ -55,13 +57,21 @@ Or, using the Spec DSL:
55
57
 
56
58
  require "minitest_helper"
57
59
 
58
- describe "Can Access Home Acceptance Test" do
60
+ describe "Can Access Home Feature Test" do
59
61
  it "has content" do
60
62
  visit root_path
61
63
  assert page.has_content?("Home#index")
62
64
  end
63
65
  end
64
66
 
67
+ If you want Capybara within your integration tests, add the following to your <tt>minitest_helper.rb</tt> file:
68
+
69
+ class ActionDispatch::IntegrationTest
70
+ include Rails.application.routes.url_helpers
71
+ include Capybara::RSpecMatchers
72
+ include Capybara::DSL
73
+ end
74
+
65
75
  == Get Involved
66
76
 
67
77
  Join the mailing list to get help or offer suggestions.
@@ -70,7 +80,7 @@ https://groups.google.com/group/minitest-rails
70
80
 
71
81
  == License
72
82
 
73
- Copyright (c) 2012 Mike Moore
83
+ Copyright (c) 2013 Mike Moore
74
84
 
75
85
  Permission is hereby granted, free of charge, to any person obtaining
76
86
  a copy of this software and associated documentation files (the
data/Rakefile CHANGED
@@ -10,16 +10,18 @@ Hoe.plugins.delete :rubyforge
10
10
  Hoe.spec 'minitest-rails-capybara' do
11
11
  developer 'Mike Moore', 'mike@blowmage.com'
12
12
 
13
- self.summary = 'Capybara integration for MiniTest::Rails.'
14
- self.description = 'Adds Capybara to acceptance tests in MiniTest::Rails.'
13
+ self.summary = 'Capybara integration for MiniTest and Rails'
14
+ self.description = 'Adds Capybara feature tests in MiniTest and Rails.'
15
15
  self.urls = ['http://blowmage.com/minitest-rails-capybara']
16
16
 
17
17
  self.history_file = "CHANGELOG.rdoc"
18
18
  self.readme_file = "README.rdoc"
19
19
  self.testlib = :minitest
20
20
 
21
- dependency 'minitest-rails', '~> 0.1'
21
+ dependency 'minitest-rails', '~> 0.5'
22
+ dependency 'capybara', '~> 2.0'
22
23
  dependency 'minitest-capybara', '~> 0.1'
24
+ dependency 'minitest-matchers', '>= 1.2'
23
25
  end
24
26
 
25
27
  # vim: syntax=ruby
@@ -0,0 +1,25 @@
1
+ require "minitest-rails"
2
+ require "generators/mini_test"
3
+
4
+ module MiniTest
5
+ module Generators
6
+ class FeatureGenerator < Base
7
+
8
+ def self.source_root
9
+ @_minitest_capybara_source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
10
+ end
11
+
12
+ class_option :spec, :type => :boolean, :default => false, :desc => "Use MiniTest::Spec DSL"
13
+
14
+ check_class_collision :suffix => "Test"
15
+
16
+ def create_test_files
17
+ if options[:spec]
18
+ template 'feature_spec.rb', File.join('test/features', class_path, "#{file_name}_test.rb")
19
+ else
20
+ template 'feature_test.rb', File.join('test/features', class_path, "#{file_name}_test.rb")
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,10 @@
1
+ require "minitest_helper"
2
+
3
+ # To be handled correctly by Capybara this spec must end with "Feature Test"
4
+ describe "<%= class_name %> Feature Test" do
5
+ it "sanity" do
6
+ visit root_path
7
+ page.must_have_content "Hello World"
8
+ page.wont_have_content "Goobye All!"
9
+ end
10
+ end
@@ -0,0 +1,9 @@
1
+ require "minitest_helper"
2
+
3
+ class <%= class_name %>Test < Capybara::Rails::TestCase
4
+ test "sanity" do
5
+ visit root_path
6
+ assert_have_content page, "Hello World"
7
+ refute_have_content page, "Goobye All!"
8
+ end
9
+ end
@@ -3,8 +3,15 @@ require "minitest/rails"
3
3
  require "minitest-capybara"
4
4
  require "capybara/rails"
5
5
 
6
- class MiniTest::Rails::ActionDispatch::IntegrationTest
7
- include Rails.application.routes.url_helpers
8
- include Capybara::RSpecMatchers
9
- include Capybara::DSL
6
+ module Capybara
7
+ module Rails
8
+ class TestCase < ::ActiveSupport::TestCase
9
+ include ::Rails.application.routes.url_helpers
10
+ include Capybara::RSpecMatchers
11
+ include Capybara::DSL
12
+
13
+ # Register by name
14
+ register_spec_type(/(Feature|Browser)( ?Test)?\z/i, self)
15
+ end
16
+ end
10
17
  end
@@ -3,7 +3,7 @@ require "minitest-rails"
3
3
  module MiniTest
4
4
  module Rails
5
5
  module Capybara
6
- VERSION = "0.1"
6
+ VERSION = "0.5"
7
7
  end
8
8
  end
9
9
  end
@@ -2,41 +2,47 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "minitest-rails-capybara"
5
- s.version = "0.1.20120802135256"
5
+ s.version = "0.5.20130110235730"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Mike Moore"]
9
- s.date = "2012-08-02"
10
- s.description = "Adds Capybara to acceptance tests in MiniTest::Rails."
9
+ s.date = "2013-01-11"
10
+ s.description = "Adds Capybara feature tests in MiniTest and Rails."
11
11
  s.email = ["mike@blowmage.com"]
12
12
  s.extra_rdoc_files = ["CHANGELOG.rdoc", "Manifest.txt", "README.rdoc"]
13
- s.files = [".autotest", ".gemtest", "CHANGELOG.rdoc", "LICENSE", "Manifest.txt", "README.rdoc", "Rakefile", "lib/minitest-rails-capybara.rb", "lib/minitest/rails/capybara.rb", "minitest-rails-capybara.gemspec", "test/rails_helper.rb", "test/test_dsl.rb", "test/test_matchers.rb", "test/test_sanity.rb"]
13
+ s.files = [".autotest", ".gemtest", "CHANGELOG.rdoc", "LICENSE", "Manifest.txt", "README.rdoc", "Rakefile", "lib/generators/mini_test/feature/feature_generator.rb", "lib/generators/mini_test/feature/templates/feature_spec.rb", "lib/generators/mini_test/feature/templates/feature_test.rb", "lib/minitest-rails-capybara.rb", "lib/minitest/rails/capybara.rb", "minitest-rails-capybara.gemspec", "test/rails_helper.rb", "test/test_dsl.rb", "test/test_matchers.rb", "test/test_sanity.rb"]
14
14
  s.homepage = "http://blowmage.com/minitest-rails-capybara"
15
15
  s.rdoc_options = ["--main", "README.rdoc"]
16
16
  s.require_paths = ["lib"]
17
17
  s.rubyforge_project = "minitest-rails-capybara"
18
- s.rubygems_version = "1.8.24"
19
- s.summary = "Capybara integration for MiniTest::Rails."
18
+ s.rubygems_version = "1.8.23"
19
+ s.summary = "Capybara integration for MiniTest and Rails"
20
20
  s.test_files = ["test/test_dsl.rb", "test/test_matchers.rb", "test/test_sanity.rb"]
21
21
 
22
22
  if s.respond_to? :specification_version then
23
23
  s.specification_version = 3
24
24
 
25
25
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
26
- s.add_runtime_dependency(%q<minitest-rails>, ["~> 0.1"])
26
+ s.add_runtime_dependency(%q<minitest-rails>, ["~> 0.5"])
27
+ s.add_runtime_dependency(%q<capybara>, ["~> 2.0"])
27
28
  s.add_runtime_dependency(%q<minitest-capybara>, ["~> 0.1"])
29
+ s.add_runtime_dependency(%q<minitest-matchers>, [">= 1.2"])
28
30
  s.add_development_dependency(%q<rdoc>, ["~> 3.10"])
29
- s.add_development_dependency(%q<hoe>, ["~> 3.0"])
31
+ s.add_development_dependency(%q<hoe>, ["~> 3.3"])
30
32
  else
31
- s.add_dependency(%q<minitest-rails>, ["~> 0.1"])
33
+ s.add_dependency(%q<minitest-rails>, ["~> 0.5"])
34
+ s.add_dependency(%q<capybara>, ["~> 2.0"])
32
35
  s.add_dependency(%q<minitest-capybara>, ["~> 0.1"])
36
+ s.add_dependency(%q<minitest-matchers>, [">= 1.2"])
33
37
  s.add_dependency(%q<rdoc>, ["~> 3.10"])
34
- s.add_dependency(%q<hoe>, ["~> 3.0"])
38
+ s.add_dependency(%q<hoe>, ["~> 3.3"])
35
39
  end
36
40
  else
37
- s.add_dependency(%q<minitest-rails>, ["~> 0.1"])
41
+ s.add_dependency(%q<minitest-rails>, ["~> 0.5"])
42
+ s.add_dependency(%q<capybara>, ["~> 2.0"])
38
43
  s.add_dependency(%q<minitest-capybara>, ["~> 0.1"])
44
+ s.add_dependency(%q<minitest-matchers>, [">= 1.2"])
39
45
  s.add_dependency(%q<rdoc>, ["~> 3.10"])
40
- s.add_dependency(%q<hoe>, ["~> 3.0"])
46
+ s.add_dependency(%q<hoe>, ["~> 3.3"])
41
47
  end
42
48
  end
data/test/test_dsl.rb CHANGED
@@ -1,20 +1,26 @@
1
1
  require "rails_helper"
2
2
 
3
- describe "Capybara DSL Acceptance Test" do
3
+ describe "Capybara DSL Feature Test" do
4
4
 
5
5
  it "can call using_wait_time" do
6
- Capybara.expects(:using_wait_time).with(6)
7
- using_wait_time(6)
6
+ ret = "ZOMG! using_wait_time was called!"
7
+ Capybara.stub :using_wait_time, ret do
8
+ assert_equal ret, using_wait_time(6)
9
+ end
8
10
  end
9
11
 
10
12
  it "can call page" do
11
- Capybara.expects(:current_session)
12
- page
13
+ ret = "ZOMG! page called current_session!"
14
+ Capybara.stub :current_session, ret do
15
+ assert_equal ret, page
16
+ end
13
17
  end
14
18
 
15
19
  it "can call using_session" do
16
- Capybara.expects(:using_session).with(:name)
17
- using_session(:name)
20
+ ret = "ZOMG! using_session was called!"
21
+ Capybara.stub :using_session, ret do
22
+ using_session(:name)
23
+ end
18
24
  end
19
25
 
20
26
  end
@@ -1,6 +1,6 @@
1
1
  require "rails_helper"
2
2
 
3
- describe "Capybara Matchers Acceptance Test" do
3
+ describe "Capybara Matchers Feature Test" do
4
4
 
5
5
  describe "have_content" do
6
6
  it "has page with content" do
metadata CHANGED
@@ -1,81 +1,113 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest-rails-capybara
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.1'
5
4
  prerelease:
5
+ version: '0.5'
6
6
  platform: ruby
7
7
  authors:
8
8
  - Mike Moore
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-02 00:00:00.000000000 Z
12
+ date: 2013-01-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
+ type: :runtime
15
16
  name: minitest-rails
16
- requirement: !ruby/object:Gem::Requirement
17
+ prerelease: false
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: '0.5'
17
23
  none: false
24
+ requirement: !ruby/object:Gem::Requirement
18
25
  requirements:
19
26
  - - ~>
20
27
  - !ruby/object:Gem::Version
21
- version: '0.1'
28
+ version: '0.5'
29
+ none: false
30
+ - !ruby/object:Gem::Dependency
22
31
  type: :runtime
32
+ name: capybara
23
33
  prerelease: false
24
34
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
35
  requirements:
27
36
  - - ~>
28
37
  - !ruby/object:Gem::Version
29
- version: '0.1'
30
- - !ruby/object:Gem::Dependency
31
- name: minitest-capybara
32
- requirement: !ruby/object:Gem::Requirement
38
+ version: '2.0'
33
39
  none: false
40
+ requirement: !ruby/object:Gem::Requirement
34
41
  requirements:
35
42
  - - ~>
36
43
  - !ruby/object:Gem::Version
37
- version: '0.1'
44
+ version: '2.0'
45
+ none: false
46
+ - !ruby/object:Gem::Dependency
38
47
  type: :runtime
48
+ name: minitest-capybara
39
49
  prerelease: false
40
50
  version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '0.1'
41
55
  none: false
56
+ requirement: !ruby/object:Gem::Requirement
42
57
  requirements:
43
58
  - - ~>
44
59
  - !ruby/object:Gem::Version
45
60
  version: '0.1'
61
+ none: false
46
62
  - !ruby/object:Gem::Dependency
47
- name: rdoc
48
- requirement: !ruby/object:Gem::Requirement
63
+ type: :runtime
64
+ name: minitest-matchers
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '1.2'
49
71
  none: false
72
+ requirement: !ruby/object:Gem::Requirement
50
73
  requirements:
51
- - - ~>
74
+ - - ! '>='
52
75
  - !ruby/object:Gem::Version
53
- version: '3.10'
76
+ version: '1.2'
77
+ none: false
78
+ - !ruby/object:Gem::Dependency
54
79
  type: :development
80
+ name: rdoc
55
81
  prerelease: false
56
82
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
83
  requirements:
59
84
  - - ~>
60
85
  - !ruby/object:Gem::Version
61
86
  version: '3.10'
62
- - !ruby/object:Gem::Dependency
63
- name: hoe
64
- requirement: !ruby/object:Gem::Requirement
65
87
  none: false
88
+ requirement: !ruby/object:Gem::Requirement
66
89
  requirements:
67
90
  - - ~>
68
91
  - !ruby/object:Gem::Version
69
- version: '3.0'
92
+ version: '3.10'
93
+ none: false
94
+ - !ruby/object:Gem::Dependency
70
95
  type: :development
96
+ name: hoe
71
97
  prerelease: false
72
98
  version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ~>
101
+ - !ruby/object:Gem::Version
102
+ version: '3.3'
73
103
  none: false
104
+ requirement: !ruby/object:Gem::Requirement
74
105
  requirements:
75
106
  - - ~>
76
107
  - !ruby/object:Gem::Version
77
- version: '3.0'
78
- description: Adds Capybara to acceptance tests in MiniTest::Rails.
108
+ version: '3.3'
109
+ none: false
110
+ description: Adds Capybara feature tests in MiniTest and Rails.
79
111
  email:
80
112
  - mike@blowmage.com
81
113
  executables: []
@@ -92,6 +124,9 @@ files:
92
124
  - Manifest.txt
93
125
  - README.rdoc
94
126
  - Rakefile
127
+ - lib/generators/mini_test/feature/feature_generator.rb
128
+ - lib/generators/mini_test/feature/templates/feature_spec.rb
129
+ - lib/generators/mini_test/feature/templates/feature_test.rb
95
130
  - lib/minitest-rails-capybara.rb
96
131
  - lib/minitest/rails/capybara.rb
97
132
  - minitest-rails-capybara.gemspec
@@ -108,23 +143,23 @@ rdoc_options:
108
143
  require_paths:
109
144
  - lib
110
145
  required_ruby_version: !ruby/object:Gem::Requirement
111
- none: false
112
146
  requirements:
113
147
  - - ! '>='
114
148
  - !ruby/object:Gem::Version
115
149
  version: '0'
116
- required_rubygems_version: !ruby/object:Gem::Requirement
117
150
  none: false
151
+ required_rubygems_version: !ruby/object:Gem::Requirement
118
152
  requirements:
119
153
  - - ! '>='
120
154
  - !ruby/object:Gem::Version
121
155
  version: '0'
156
+ none: false
122
157
  requirements: []
123
158
  rubyforge_project: minitest-rails-capybara
124
- rubygems_version: 1.8.24
159
+ rubygems_version: 1.8.23
125
160
  signing_key:
126
161
  specification_version: 3
127
- summary: Capybara integration for MiniTest::Rails.
162
+ summary: Capybara integration for MiniTest and Rails
128
163
  test_files:
129
164
  - test/test_dsl.rb
130
165
  - test/test_matchers.rb