minitest-rails-capybara 0.0.2 → 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.
- data/CHANGELOG.rdoc +13 -0
- data/Manifest.txt +4 -1
- data/README.rdoc +41 -8
- data/Rakefile +3 -3
- data/lib/minitest-rails-capybara.rb +9 -3
- data/lib/minitest/rails/capybara.rb +4 -1
- data/minitest-rails-capybara.gemspec +11 -11
- data/test/rails_helper.rb +30 -0
- data/test/test_dsl.rb +20 -0
- data/test/test_matchers.rb +145 -0
- data/test/test_sanity.rb +8 -0
- metadata +19 -14
- data/test/test_minitest_rails_capybara.rb +0 -8
data/CHANGELOG.rdoc
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
=== 0.1 / 2012-08-02
|
2
|
+
|
3
|
+
* Defer to minitest-capybara for Capybara integration
|
4
|
+
* Add support for Capybara matchers using minitest-matchers
|
5
|
+
|
6
|
+
https://github.com/blowmage/minitest-rails-capybara/compare/v0.0.2...v0.1
|
7
|
+
|
8
|
+
=== 0.0.2 / 2012-07-09
|
9
|
+
|
10
|
+
* Correct loading issue
|
11
|
+
|
12
|
+
https://github.com/blowmage/minitest-rails-capybara/compare/v0.0.1...v0.0.2
|
13
|
+
|
1
14
|
=== 0.0.1 / 2012-07-07
|
2
15
|
|
3
16
|
* 1 major enhancement
|
data/Manifest.txt
CHANGED
data/README.rdoc
CHANGED
@@ -10,15 +10,20 @@ This installs the following gems:
|
|
10
10
|
|
11
11
|
minitest
|
12
12
|
minitest-rails
|
13
|
+
minitest-matchers
|
14
|
+
minitest-capybara
|
13
15
|
capybara
|
14
16
|
|
15
17
|
== Configure
|
16
18
|
|
17
|
-
Follow the instructions to configure <tt>minitest-rails</tt>. Then add <tt>minitest-rails-capybara</tt> to the <tt>:test</tt>
|
19
|
+
Follow the instructions to configure <tt>minitest-rails</tt>. Then add <tt>minitest-rails-capybara</tt> to the <tt>:test</tt> group in Gemfile:
|
18
20
|
|
19
|
-
group :
|
20
|
-
gem
|
21
|
-
|
21
|
+
group :development, :test do
|
22
|
+
gem "minitest-rails"
|
23
|
+
end
|
24
|
+
|
25
|
+
group :test do
|
26
|
+
gem "minitest-rails-capybara"
|
22
27
|
end
|
23
28
|
|
24
29
|
Add the following to your <tt>minitest_helper.rb</tt> file to the <tt>test</tt> directory.
|
@@ -40,7 +45,18 @@ You can now use Capybara in your acceptance tests!
|
|
40
45
|
require "minitest_helper"
|
41
46
|
|
42
47
|
class CanAccessHomeTest < MiniTest::Rails::ActionDispatch::IntegrationTest
|
43
|
-
|
48
|
+
def test_homepage_has_content
|
49
|
+
visit root_path
|
50
|
+
assert page.has_content?("Home#index")
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
Or, using the Spec DSL:
|
55
|
+
|
56
|
+
require "minitest_helper"
|
57
|
+
|
58
|
+
describe "Can Access Home Acceptance Test" do
|
59
|
+
it "has content" do
|
44
60
|
visit root_path
|
45
61
|
assert page.has_content?("Home#index")
|
46
62
|
end
|
@@ -54,6 +70,23 @@ https://groups.google.com/group/minitest-rails
|
|
54
70
|
|
55
71
|
== License
|
56
72
|
|
57
|
-
Copyright
|
58
|
-
|
59
|
-
|
73
|
+
Copyright (c) 2012 Mike Moore
|
74
|
+
|
75
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
76
|
+
a copy of this software and associated documentation files (the
|
77
|
+
"Software"), to deal in the Software without restriction, including
|
78
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
79
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
80
|
+
permit persons to whom the Software is furnished to do so, subject to
|
81
|
+
the following conditions:
|
82
|
+
|
83
|
+
The above copyright notice and this permission notice shall be
|
84
|
+
included in all copies or substantial portions of the Software.
|
85
|
+
|
86
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
87
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
88
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
89
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
90
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
91
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
92
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
CHANGED
@@ -11,15 +11,15 @@ Hoe.spec 'minitest-rails-capybara' do
|
|
11
11
|
developer 'Mike Moore', 'mike@blowmage.com'
|
12
12
|
|
13
13
|
self.summary = 'Capybara integration for MiniTest::Rails.'
|
14
|
-
self.description = 'Adds Capybara to acceptance tests in
|
14
|
+
self.description = 'Adds Capybara to acceptance tests in MiniTest::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
|
-
|
22
|
-
|
21
|
+
dependency 'minitest-rails', '~> 0.1'
|
22
|
+
dependency 'minitest-capybara', '~> 0.1'
|
23
23
|
end
|
24
24
|
|
25
25
|
# vim: syntax=ruby
|
@@ -1,7 +1,10 @@
|
|
1
1
|
require "minitest/rails"
|
2
|
+
# Load minitest-matchers and fix Capybara::RSpecMatchers
|
3
|
+
require "minitest-capybara"
|
2
4
|
require "capybara/rails"
|
3
5
|
|
4
6
|
class MiniTest::Rails::ActionDispatch::IntegrationTest
|
5
7
|
include Rails.application.routes.url_helpers
|
8
|
+
include Capybara::RSpecMatchers
|
6
9
|
include Capybara::DSL
|
7
|
-
end
|
10
|
+
end
|
@@ -2,40 +2,40 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "minitest-rails-capybara"
|
5
|
-
s.version = "0.
|
5
|
+
s.version = "0.1.20120802135256"
|
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-
|
10
|
-
s.description = "Adds Capybara to acceptance tests in
|
9
|
+
s.date = "2012-08-02"
|
10
|
+
s.description = "Adds Capybara to acceptance tests in MiniTest::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/
|
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"]
|
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
18
|
s.rubygems_version = "1.8.24"
|
19
19
|
s.summary = "Capybara integration for MiniTest::Rails."
|
20
|
-
s.test_files = ["test/
|
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>, ["
|
27
|
-
s.add_runtime_dependency(%q<capybara>, ["
|
26
|
+
s.add_runtime_dependency(%q<minitest-rails>, ["~> 0.1"])
|
27
|
+
s.add_runtime_dependency(%q<minitest-capybara>, ["~> 0.1"])
|
28
28
|
s.add_development_dependency(%q<rdoc>, ["~> 3.10"])
|
29
29
|
s.add_development_dependency(%q<hoe>, ["~> 3.0"])
|
30
30
|
else
|
31
|
-
s.add_dependency(%q<minitest-rails>, ["
|
32
|
-
s.add_dependency(%q<capybara>, ["
|
31
|
+
s.add_dependency(%q<minitest-rails>, ["~> 0.1"])
|
32
|
+
s.add_dependency(%q<minitest-capybara>, ["~> 0.1"])
|
33
33
|
s.add_dependency(%q<rdoc>, ["~> 3.10"])
|
34
34
|
s.add_dependency(%q<hoe>, ["~> 3.0"])
|
35
35
|
end
|
36
36
|
else
|
37
|
-
s.add_dependency(%q<minitest-rails>, ["
|
38
|
-
s.add_dependency(%q<capybara>, ["
|
37
|
+
s.add_dependency(%q<minitest-rails>, ["~> 0.1"])
|
38
|
+
s.add_dependency(%q<minitest-capybara>, ["~> 0.1"])
|
39
39
|
s.add_dependency(%q<rdoc>, ["~> 3.10"])
|
40
40
|
s.add_dependency(%q<hoe>, ["~> 3.0"])
|
41
41
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "minitest/autorun"
|
2
|
+
require "action_controller/railtie"
|
3
|
+
|
4
|
+
class TestApp < Rails::Application
|
5
|
+
config.secret_token = "821c600ece97fc4ba952d67655b4b475"
|
6
|
+
initialize!
|
7
|
+
routes.draw do
|
8
|
+
root to: 'hello#world'
|
9
|
+
end
|
10
|
+
end
|
11
|
+
class HelloController < ActionController::Base
|
12
|
+
def world
|
13
|
+
render inline: "<!DOCTYPE html><title>TestApp</title>
|
14
|
+
<h1>Hello <span>World</span></h1>
|
15
|
+
<nav><ul><li><a href='/'>home</a></li></ul></nav>
|
16
|
+
<p><label>Email Address<input type='text'></label></p>
|
17
|
+
<button>random button</button>
|
18
|
+
<label>going<input type='checkbox' checked='checked'></label>
|
19
|
+
<label>avoid<input type='checkbox'></label>"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
Rails.application = TestApp
|
24
|
+
|
25
|
+
require "minitest/rails/capybara"
|
26
|
+
|
27
|
+
Capybara.session_name = nil
|
28
|
+
Capybara.default_driver = nil
|
29
|
+
Capybara.use_default_driver
|
30
|
+
Capybara.app = TestApp
|
data/test/test_dsl.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
require "rails_helper"
|
2
|
+
|
3
|
+
describe "Capybara DSL Acceptance Test" do
|
4
|
+
|
5
|
+
it "can call using_wait_time" do
|
6
|
+
Capybara.expects(:using_wait_time).with(6)
|
7
|
+
using_wait_time(6)
|
8
|
+
end
|
9
|
+
|
10
|
+
it "can call page" do
|
11
|
+
Capybara.expects(:current_session)
|
12
|
+
page
|
13
|
+
end
|
14
|
+
|
15
|
+
it "can call using_session" do
|
16
|
+
Capybara.expects(:using_session).with(:name)
|
17
|
+
using_session(:name)
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,145 @@
|
|
1
|
+
require "rails_helper"
|
2
|
+
|
3
|
+
describe "Capybara Matchers Acceptance Test" do
|
4
|
+
|
5
|
+
describe "have_content" do
|
6
|
+
it "has page with content" do
|
7
|
+
visit root_path
|
8
|
+
assert_have_content page, "Hello World"
|
9
|
+
refute_have_content page, "Goobye All!"
|
10
|
+
page.must_have_content "Hello World"
|
11
|
+
page.wont_have_content "Goobye All!"
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "with subject" do
|
15
|
+
before { visit(root_path) }
|
16
|
+
subject { page }
|
17
|
+
|
18
|
+
it { must have_content("Hello World") }
|
19
|
+
it { wont have_content("Goobye All!") }
|
20
|
+
must { have_content("Hello World") }
|
21
|
+
wont { have_content("Goobye All!") }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "have_selector" do
|
26
|
+
it "has page with heading" do
|
27
|
+
visit root_path
|
28
|
+
assert_have_selector page, "h1"
|
29
|
+
refute_have_selector page, "h3"
|
30
|
+
page.must_have_selector "h1"
|
31
|
+
page.wont_have_selector "h3"
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "with subject" do
|
35
|
+
before { visit(root_path) }
|
36
|
+
subject { page }
|
37
|
+
|
38
|
+
it { must have_selector("h1") }
|
39
|
+
it { wont have_selector("h3") }
|
40
|
+
must { have_selector("h1") }
|
41
|
+
wont { have_selector("h3") }
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe "have_link" do
|
46
|
+
it "has a link to home" do
|
47
|
+
visit root_path
|
48
|
+
assert_have_link page, "home"
|
49
|
+
refute_have_link page, "away"
|
50
|
+
page.must_have_link "home"
|
51
|
+
page.wont_have_link "away"
|
52
|
+
end
|
53
|
+
|
54
|
+
describe "with subject" do
|
55
|
+
before { visit(root_path) }
|
56
|
+
subject { page }
|
57
|
+
|
58
|
+
it { must have_link("home") }
|
59
|
+
it { wont have_link("away") }
|
60
|
+
must { have_link("home") }
|
61
|
+
wont { have_link("away") }
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
describe "have_field" do
|
66
|
+
it "has a button to submit" do
|
67
|
+
visit root_path
|
68
|
+
assert_have_field page, "Email Address"
|
69
|
+
refute_have_field page, "Bank Account"
|
70
|
+
page.must_have_field "Email Address"
|
71
|
+
page.wont_have_field "Bank Account"
|
72
|
+
end
|
73
|
+
|
74
|
+
describe "with subject" do
|
75
|
+
before { visit(root_path) }
|
76
|
+
subject { page }
|
77
|
+
|
78
|
+
it { must have_field("Email Address") }
|
79
|
+
it { wont have_field("Bank Account") }
|
80
|
+
must { have_field("Email Address") }
|
81
|
+
wont { have_field("Bank Account") }
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
describe "have_button" do
|
86
|
+
it "has a button to login" do
|
87
|
+
visit root_path
|
88
|
+
assert_have_button page, "random button"
|
89
|
+
refute_have_button page, "missing button"
|
90
|
+
page.must_have_button "random button"
|
91
|
+
page.wont_have_button "missing button"
|
92
|
+
end
|
93
|
+
|
94
|
+
describe "with subject" do
|
95
|
+
before { visit(root_path) }
|
96
|
+
subject { page }
|
97
|
+
|
98
|
+
it { must have_button("random button") }
|
99
|
+
it { wont have_button("missing button") }
|
100
|
+
must { have_button("random button") }
|
101
|
+
wont { have_button("missing button") }
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
describe "have_checked_field" do
|
106
|
+
it "has a button to submit" do
|
107
|
+
visit root_path
|
108
|
+
assert_have_checked_field page, "going"
|
109
|
+
refute_have_checked_field page, "avoid"
|
110
|
+
page.must_have_checked_field "going"
|
111
|
+
page.wont_have_checked_field "avoid"
|
112
|
+
end
|
113
|
+
|
114
|
+
describe "with subject" do
|
115
|
+
before { visit(root_path) }
|
116
|
+
subject { page }
|
117
|
+
|
118
|
+
it { must have_checked_field("going") }
|
119
|
+
it { wont have_checked_field("avoid") }
|
120
|
+
must { have_checked_field("going") }
|
121
|
+
wont { have_checked_field("avoid") }
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
describe "have_unchecked_field" do
|
126
|
+
it "has a button to submit" do
|
127
|
+
visit root_path
|
128
|
+
assert_have_unchecked_field page, "avoid"
|
129
|
+
refute_have_unchecked_field page, "going"
|
130
|
+
page.must_have_unchecked_field "avoid"
|
131
|
+
page.wont_have_unchecked_field "going"
|
132
|
+
end
|
133
|
+
|
134
|
+
describe "with subject" do
|
135
|
+
before { visit(root_path) }
|
136
|
+
subject { page }
|
137
|
+
|
138
|
+
it { must have_unchecked_field("avoid") }
|
139
|
+
it { wont have_unchecked_field("going") }
|
140
|
+
must { have_unchecked_field("avoid") }
|
141
|
+
wont { have_unchecked_field("going") }
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
end
|
data/test/test_sanity.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest-rails-capybara
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: '0.1'
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,40 +9,40 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-08-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: minitest-rails
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
21
|
+
version: '0.1'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '0'
|
29
|
+
version: '0.1'
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
|
-
name: capybara
|
31
|
+
name: minitest-capybara
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
35
|
-
- -
|
35
|
+
- - ~>
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: '0'
|
37
|
+
version: '0.1'
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
|
-
- -
|
43
|
+
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: '0'
|
45
|
+
version: '0.1'
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: rdoc
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -75,7 +75,7 @@ dependencies:
|
|
75
75
|
- - ~>
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '3.0'
|
78
|
-
description: Adds Capybara to acceptance tests in
|
78
|
+
description: Adds Capybara to acceptance tests in MiniTest::Rails.
|
79
79
|
email:
|
80
80
|
- mike@blowmage.com
|
81
81
|
executables: []
|
@@ -95,7 +95,10 @@ files:
|
|
95
95
|
- lib/minitest-rails-capybara.rb
|
96
96
|
- lib/minitest/rails/capybara.rb
|
97
97
|
- minitest-rails-capybara.gemspec
|
98
|
-
- test/
|
98
|
+
- test/rails_helper.rb
|
99
|
+
- test/test_dsl.rb
|
100
|
+
- test/test_matchers.rb
|
101
|
+
- test/test_sanity.rb
|
99
102
|
homepage: http://blowmage.com/minitest-rails-capybara
|
100
103
|
licenses: []
|
101
104
|
post_install_message:
|
@@ -123,4 +126,6 @@ signing_key:
|
|
123
126
|
specification_version: 3
|
124
127
|
summary: Capybara integration for MiniTest::Rails.
|
125
128
|
test_files:
|
126
|
-
- test/
|
129
|
+
- test/test_dsl.rb
|
130
|
+
- test/test_matchers.rb
|
131
|
+
- test/test_sanity.rb
|