bbq 0.0.1 → 0.0.2.beta.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.
Files changed (69) hide show
  1. data/.gitignore +8 -0
  2. data/.travis.yml +8 -0
  3. data/Gemfile +2 -1
  4. data/MIT-LICENSE +20 -0
  5. data/README.md +152 -0
  6. data/Rakefile +29 -1
  7. data/bbq.gemspec +14 -4
  8. data/lib/bbq.rb +5 -1
  9. data/lib/bbq/devise.rb +53 -0
  10. data/lib/bbq/railtie.rb +7 -0
  11. data/lib/bbq/rspec.rb +86 -0
  12. data/lib/bbq/test.rb +36 -0
  13. data/lib/bbq/test_user.rb +61 -0
  14. data/lib/bbq/util.rb +19 -0
  15. data/lib/bbq/version.rb +1 -1
  16. data/lib/generators/bbq/install_generator.rb +5 -0
  17. data/lib/generators/bbq/test_generator.rb +5 -0
  18. data/lib/generators/rspec/bbq_install_generator.rb +18 -0
  19. data/lib/generators/rspec/bbq_test_generator.rb +9 -0
  20. data/lib/generators/rspec/templates/README +5 -0
  21. data/lib/generators/rspec/templates/bbq_spec.rb +7 -0
  22. data/lib/generators/rspec/templates/test_user.rb +5 -0
  23. data/lib/generators/test_unit/bbq_install_generator.rb +18 -0
  24. data/lib/generators/test_unit/bbq_test_generator.rb +9 -0
  25. data/lib/generators/test_unit/templates/README +5 -0
  26. data/lib/generators/test_unit/templates/bbq_test_case.rb +7 -0
  27. data/lib/generators/test_unit/templates/test_user.rb +5 -0
  28. data/lib/tasks/bbq.rake +15 -0
  29. data/test/dummy/Rakefile +7 -0
  30. data/test/dummy/app/controllers/application_controller.rb +3 -0
  31. data/test/dummy/app/controllers/home_controller.rb +11 -0
  32. data/test/dummy/app/helpers/application_helper.rb +2 -0
  33. data/test/dummy/app/models/user.rb +6 -0
  34. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  35. data/test/dummy/config.ru +4 -0
  36. data/test/dummy/config/application.rb +46 -0
  37. data/test/dummy/config/boot.rb +10 -0
  38. data/test/dummy/config/database.yml +3 -0
  39. data/test/dummy/config/environment.rb +5 -0
  40. data/test/dummy/config/environments/development.rb +26 -0
  41. data/test/dummy/config/environments/production.rb +49 -0
  42. data/test/dummy/config/environments/test.rb +35 -0
  43. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  44. data/test/dummy/config/initializers/devise.rb +194 -0
  45. data/test/dummy/config/initializers/inflections.rb +10 -0
  46. data/test/dummy/config/initializers/mime_types.rb +5 -0
  47. data/test/dummy/config/initializers/secret_token.rb +7 -0
  48. data/test/dummy/config/initializers/session_store.rb +8 -0
  49. data/test/dummy/config/locales/en.yml +5 -0
  50. data/test/dummy/config/routes.rb +6 -0
  51. data/test/dummy/db/schema.rb +19 -0
  52. data/test/dummy/public/404.html +26 -0
  53. data/test/dummy/public/422.html +26 -0
  54. data/test/dummy/public/500.html +26 -0
  55. data/test/dummy/public/favicon.ico +0 -0
  56. data/test/dummy/script/rails +6 -0
  57. data/test/dummy/spec/spec_helper.rb +10 -0
  58. data/test/dummy/test/test_helper.rb +2 -0
  59. data/test/support/helpers.rb +14 -0
  60. data/test/test_helper.rb +20 -0
  61. data/test/unit/bbq_devise_test.rb +39 -0
  62. data/test/unit/bbq_install_generator_test.rb +37 -0
  63. data/test/unit/bbq_rspec_test.rb +63 -0
  64. data/test/unit/bbq_test_generator_test.rb +23 -0
  65. data/test/unit/bbq_test_unit_test.rb +31 -0
  66. data/test/unit/bbq_test_user_test.rb +56 -0
  67. data/test/unit/bbq_two_simultaneous_users_test.rb +55 -0
  68. data/test/unit/bbq_util_test.rb +40 -0
  69. metadata +153 -11
@@ -0,0 +1,37 @@
1
+ require "test_helper"
2
+ require "generators/bbq/install_generator"
3
+
4
+ class BbqInstallGeneratorTest < Rails::Generators::TestCase
5
+ destination Bbq.root.join("tmp")
6
+ setup :prepare_destination
7
+
8
+ tests Bbq::InstallGenerator
9
+
10
+ def test_creating_test_unit_test_directories
11
+ run_generator %w(-t test_unit)
12
+
13
+ assert_directory "test/acceptance"
14
+ assert_directory "test/support"
15
+ end
16
+
17
+ def test_creating_rspec_test_directories
18
+ run_generator %w(-t rspec)
19
+
20
+ assert_directory "spec/acceptance"
21
+ assert_directory "spec/support"
22
+ end
23
+
24
+ def test_creating_test_unit_test_user_stub
25
+ run_generator %w(-t test_unit)
26
+
27
+ assert_file "test/support/test_user.rb", /class TestUser < Bbq::TestUser/
28
+ assert_file "test/support/test_user.rb", /require "test_helper"/
29
+ end
30
+
31
+ def test_creating_rspec_test_user_stub
32
+ run_generator %w(-t rspec)
33
+
34
+ assert_file "spec/support/test_user.rb", /class TestUser < Bbq::TestUser/
35
+ assert_file "spec/support/test_user.rb", /require "spec_helper"/
36
+ end
37
+ end
@@ -0,0 +1,63 @@
1
+ require 'test_helper'
2
+
3
+ class BbqRspecTest < Test::Unit::TestCase
4
+ include CommandHelper
5
+
6
+ def test_dsl
7
+ create_file 'test/dummy/spec/acceptance/dsl_spec.rb', <<-RSPEC
8
+ require 'spec_helper'
9
+ require 'bbq/rspec'
10
+
11
+ feature 'dsl' do
12
+ background do
13
+ @a = 1
14
+ end
15
+
16
+ scenario 'valid' do
17
+ @a.should == 1
18
+ end
19
+ end
20
+ RSPEC
21
+
22
+ run_cmd 'rspec -Itest/dummy/spec test/dummy/spec/acceptance/dsl_spec.rb'
23
+ assert_match /1 example, 0 failures/, output
24
+ end
25
+
26
+ def test_capybara_matchers
27
+ create_file 'test/dummy/spec/acceptance/capybara_matchers_spec.rb', <<-RSPEC
28
+ require 'spec_helper'
29
+ require 'bbq/rspec'
30
+
31
+ feature 'capybara matchers' do
32
+ scenario 'should see welcome text' do
33
+ user = Bbq::TestUser.new
34
+ user.visit "/miracle"
35
+ user.page.should have_content("MIRACLE")
36
+ user.should have_no_content("BBQ")
37
+ end
38
+ end
39
+ RSPEC
40
+
41
+ run_cmd 'rspec -Itest/dummy/spec test/dummy/spec/acceptance/capybara_matchers_spec.rb'
42
+ assert_match /1 example, 0 failures/, output
43
+ end
44
+
45
+ def test_bbq_matchers
46
+ create_file 'test/dummy/spec/acceptance/bbq_matchers_spec.rb', <<-RSPEC
47
+ require 'spec_helper'
48
+ require 'bbq/rspec'
49
+
50
+ feature 'bbq matchers' do
51
+ scenario 'should see welcome text' do
52
+ user = Bbq::TestUser.new
53
+ user.visit "/miracle"
54
+ user.should see("MIRACLE")
55
+ user.should not_see("BBQ")
56
+ end
57
+ end
58
+ RSPEC
59
+
60
+ run_cmd 'rspec -Itest/dummy/spec test/dummy/spec/acceptance/bbq_matchers_spec.rb'
61
+ assert_match /1 example, 0 failures/, output
62
+ end
63
+ end
@@ -0,0 +1,23 @@
1
+ require "test_helper"
2
+ require "generators/bbq/test_generator"
3
+
4
+ class BbqTestGeneratorTest < Rails::Generators::TestCase
5
+ destination Bbq.root.join("tmp")
6
+ setup :prepare_destination
7
+
8
+ tests Bbq::TestGenerator
9
+
10
+ def test_creating_test_unit_feature_file
11
+ run_generator %w(MySuperThing -t test_unit)
12
+
13
+ assert_file "test/acceptance/my_super_thing_test.rb", /class MySuperThingTest < Bbq::TestCase/
14
+ assert_file "test/acceptance/my_super_thing_test.rb", /require "test_helper"/
15
+ end
16
+
17
+ def test_creating_rspec_feature_file
18
+ run_generator %w(MySuperThing -t rspec)
19
+
20
+ assert_file "spec/acceptance/my_super_thing_spec.rb", /feature "My super thing" do/
21
+ assert_file "spec/acceptance/my_super_thing_spec.rb", /require "spec_helper"/
22
+ end
23
+ end
@@ -0,0 +1,31 @@
1
+ require 'test_helper'
2
+
3
+ class BbqTestUnitTest < Test::Unit::TestCase
4
+ include CommandHelper
5
+
6
+ def test_dsl
7
+ create_file 'test/dummy/test/acceptance/dsl_test.rb', <<-TESTCASE
8
+ require 'test_helper'
9
+ require 'bbq/test'
10
+
11
+ class DslTest < Bbq::TestCase
12
+ background do
13
+ @a = 1
14
+ end
15
+
16
+ background :second_ivar
17
+
18
+ scenario "valid" do
19
+ assert_equal 3, @a + @b
20
+ end
21
+
22
+ def second_ivar
23
+ @b = 2
24
+ end
25
+ end
26
+ TESTCASE
27
+
28
+ run_cmd 'ruby -Ilib -Itest/dummy/test test/dummy/test/acceptance/dsl_test.rb'
29
+ assert_match /1 tests, 1 assertions, 0 failures, 0 errors/, output
30
+ end
31
+ end
@@ -0,0 +1,56 @@
1
+ require 'test_helper'
2
+ require 'bbq/test_user'
3
+
4
+ class TestUser < Bbq::TestUser
5
+ module Commenter
6
+ def comment
7
+ end
8
+ end
9
+
10
+ module VideoUploader
11
+ def upload
12
+ end
13
+ end
14
+
15
+ module CommentModerator
16
+ def moderate
17
+ end
18
+ end
19
+ end
20
+
21
+ class BbqTestUserTest < Test::Unit::TestCase
22
+
23
+ def test_capybara_dsl_methods
24
+ user = TestUser.new
25
+ Capybara::Session::DSL_METHODS.each do |m|
26
+ assert user.respond_to?(m)
27
+ end
28
+ end
29
+
30
+ def test_roles
31
+ user = TestUser.new
32
+ %w(comment upload moderate).each { |m| assert !user.respond_to?(m) }
33
+
34
+ user.roles(:commenter, "comment_moderator")
35
+ %w(comment moderate).each { |m| assert user.respond_to?(m) }
36
+ assert !user.respond_to?(:upload)
37
+
38
+ user.roles(:video_uploader)
39
+ %w(comment upload moderate).each { |m| assert user.respond_to?(m) }
40
+ end
41
+
42
+ def test_implicit_user_eyes
43
+ @user = TestUser.new
44
+ @user.visit "/miracle"
45
+ assert_raises(FAILED_ASSERTION) { @user.see!("BBQ") }
46
+ assert_raises(FAILED_ASSERTION) { @user.not_see!("MIRACLE") }
47
+ end
48
+
49
+ def test_explicit_user_eyes
50
+ @user = TestUser.new
51
+ @user.visit "/miracle"
52
+ assert @user.not_see?("BBQ")
53
+ assert @user.see?("MIRACLE")
54
+ end
55
+
56
+ end
@@ -0,0 +1,55 @@
1
+ # encoding utf-8
2
+
3
+ require 'test_helper'
4
+ require 'capybara/rails'
5
+ require 'bbq/test_user'
6
+ require 'bbq/devise'
7
+
8
+ class DeviseTestUser < Bbq::TestUser
9
+ include Bbq::Devise
10
+ end
11
+
12
+ class BbqTwoSimultaneousUsersTest < Test::Unit::TestCase
13
+
14
+ Text = "BBQ"
15
+
16
+ def teardown
17
+ User.find_by_email(@andy.email).try(:destroy)
18
+ User.find_by_email(@dhh.email).try(:destroy)
19
+ end
20
+
21
+ def test_user_register
22
+ @andy = DeviseTestUser.new
23
+ @dhh = DeviseTestUser.new
24
+
25
+ @andy.register
26
+ @dhh.register
27
+
28
+ @andy.see?(Text)
29
+ @dhh.see?(Text)
30
+
31
+ @andy.logout
32
+ @dhh.logout
33
+
34
+ @andy.not_see?(Text)
35
+ @dhh.not_see?(Text)
36
+
37
+ @andy.login
38
+ @andy.see?(Text)
39
+ @dhh.not_see?(Text)
40
+
41
+ @dhh.login
42
+ @andy.see?(Text)
43
+ @dhh.see?(Text)
44
+
45
+ @andy.logout
46
+ @andy.not_see?(Text)
47
+ @dhh.see?(Text)
48
+
49
+ @dhh.logout
50
+ @andy.not_see?(Text)
51
+ @dhh.not_see?(Text)
52
+ end
53
+
54
+ end
55
+
@@ -0,0 +1,40 @@
1
+ require 'test_helper'
2
+ require 'bbq/util'
3
+
4
+ class User
5
+ module Commenter
6
+ end
7
+ end
8
+
9
+ module Commenter
10
+ end
11
+
12
+ class BbqUtilTest < Test::Unit::TestCase
13
+
14
+ def test_find_module_in_object_namespace
15
+ assert_commenter(User.new, User::Commenter)
16
+ end
17
+
18
+ def test_find_module_in_class_namespace
19
+ assert_commenter(User, User::Commenter)
20
+ end
21
+
22
+ def test_find_module_in_string_namespace
23
+ assert_commenter("User", User::Commenter)
24
+ end
25
+
26
+ def test_find_global_module
27
+ assert_commenter(nil, ::Commenter)
28
+ end
29
+
30
+
31
+ private
32
+
33
+
34
+ def assert_commenter(namespace, result)
35
+ [:commenter, "commenter"].each do |name|
36
+ assert_equal Bbq::Util.find_module(name, namespace), result
37
+ end
38
+ end
39
+
40
+ end
metadata CHANGED
@@ -1,30 +1,169 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bbq
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
5
- prerelease:
4
+ version: 0.0.2.beta.1
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
- - Paweł Pacana
8
+ - DRUG - Dolnośląska Grupa Użytkowników Ruby
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-04-20 00:00:00.000000000 +02:00
12
+ date: 2011-06-30 00:00:00.000000000 +02:00
13
13
  default_executable:
14
- dependencies: []
15
- description: Objected oriented acceptance testing using personas and events.
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: capybara
17
+ requirement: &20161160 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: 1.0.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *20161160
26
+ - !ruby/object:Gem::Dependency
27
+ name: rails
28
+ requirement: &20160620 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: 3.0.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *20160620
37
+ - !ruby/object:Gem::Dependency
38
+ name: sqlite3
39
+ requirement: &20160160 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ version: 1.3.3
45
+ type: :development
46
+ prerelease: false
47
+ version_requirements: *20160160
48
+ - !ruby/object:Gem::Dependency
49
+ name: rake
50
+ requirement: &20159700 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ~>
54
+ - !ruby/object:Gem::Version
55
+ version: 0.8.7
56
+ type: :development
57
+ prerelease: false
58
+ version_requirements: *20159700
59
+ - !ruby/object:Gem::Dependency
60
+ name: rdoc
61
+ requirement: &20159240 !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ~>
65
+ - !ruby/object:Gem::Version
66
+ version: '3.7'
67
+ type: :development
68
+ prerelease: false
69
+ version_requirements: *20159240
70
+ - !ruby/object:Gem::Dependency
71
+ name: devise
72
+ requirement: &20158780 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 1.4.0
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: *20158780
81
+ - !ruby/object:Gem::Dependency
82
+ name: rspec-rails
83
+ requirement: &20158320 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ~>
87
+ - !ruby/object:Gem::Version
88
+ version: 2.6.0
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: *20158320
92
+ description: Objected oriented acceptance testing for Rails, using personas.
16
93
  email:
17
- - pawel.pacana@gmail.com
94
+ - bbq@drug.org.pl
18
95
  executables: []
19
96
  extensions: []
20
97
  extra_rdoc_files: []
21
98
  files:
22
99
  - .gitignore
100
+ - .travis.yml
23
101
  - Gemfile
102
+ - MIT-LICENSE
103
+ - README.md
24
104
  - Rakefile
25
105
  - bbq.gemspec
26
106
  - lib/bbq.rb
107
+ - lib/bbq/devise.rb
108
+ - lib/bbq/railtie.rb
109
+ - lib/bbq/rspec.rb
110
+ - lib/bbq/test.rb
111
+ - lib/bbq/test_user.rb
112
+ - lib/bbq/util.rb
27
113
  - lib/bbq/version.rb
114
+ - lib/generators/bbq/install_generator.rb
115
+ - lib/generators/bbq/test_generator.rb
116
+ - lib/generators/rspec/bbq_install_generator.rb
117
+ - lib/generators/rspec/bbq_test_generator.rb
118
+ - lib/generators/rspec/templates/README
119
+ - lib/generators/rspec/templates/bbq_spec.rb
120
+ - lib/generators/rspec/templates/test_user.rb
121
+ - lib/generators/test_unit/bbq_install_generator.rb
122
+ - lib/generators/test_unit/bbq_test_generator.rb
123
+ - lib/generators/test_unit/templates/README
124
+ - lib/generators/test_unit/templates/bbq_test_case.rb
125
+ - lib/generators/test_unit/templates/test_user.rb
126
+ - lib/tasks/bbq.rake
127
+ - test/dummy/Rakefile
128
+ - test/dummy/app/controllers/application_controller.rb
129
+ - test/dummy/app/controllers/home_controller.rb
130
+ - test/dummy/app/helpers/application_helper.rb
131
+ - test/dummy/app/models/user.rb
132
+ - test/dummy/app/views/layouts/application.html.erb
133
+ - test/dummy/config.ru
134
+ - test/dummy/config/application.rb
135
+ - test/dummy/config/boot.rb
136
+ - test/dummy/config/database.yml
137
+ - test/dummy/config/environment.rb
138
+ - test/dummy/config/environments/development.rb
139
+ - test/dummy/config/environments/production.rb
140
+ - test/dummy/config/environments/test.rb
141
+ - test/dummy/config/initializers/backtrace_silencers.rb
142
+ - test/dummy/config/initializers/devise.rb
143
+ - test/dummy/config/initializers/inflections.rb
144
+ - test/dummy/config/initializers/mime_types.rb
145
+ - test/dummy/config/initializers/secret_token.rb
146
+ - test/dummy/config/initializers/session_store.rb
147
+ - test/dummy/config/locales/en.yml
148
+ - test/dummy/config/routes.rb
149
+ - test/dummy/db/schema.rb
150
+ - test/dummy/public/404.html
151
+ - test/dummy/public/422.html
152
+ - test/dummy/public/500.html
153
+ - test/dummy/public/favicon.ico
154
+ - test/dummy/script/rails
155
+ - test/dummy/spec/spec_helper.rb
156
+ - test/dummy/test/test_helper.rb
157
+ - test/support/helpers.rb
158
+ - test/test_helper.rb
159
+ - test/unit/bbq_devise_test.rb
160
+ - test/unit/bbq_install_generator_test.rb
161
+ - test/unit/bbq_rspec_test.rb
162
+ - test/unit/bbq_test_generator_test.rb
163
+ - test/unit/bbq_test_unit_test.rb
164
+ - test/unit/bbq_test_user_test.rb
165
+ - test/unit/bbq_two_simultaneous_users_test.rb
166
+ - test/unit/bbq_util_test.rb
28
167
  has_rdoc: true
29
168
  homepage: ''
30
169
  licenses: []
@@ -38,16 +177,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
38
177
  - - ! '>='
39
178
  - !ruby/object:Gem::Version
40
179
  version: '0'
180
+ segments:
181
+ - 0
182
+ hash: -1992066288343406768
41
183
  required_rubygems_version: !ruby/object:Gem::Requirement
42
184
  none: false
43
185
  requirements:
44
- - - ! '>='
186
+ - - ! '>'
45
187
  - !ruby/object:Gem::Version
46
- version: '0'
188
+ version: 1.3.1
47
189
  requirements: []
48
190
  rubyforge_project: bbq
49
- rubygems_version: 1.5.2
191
+ rubygems_version: 1.6.2
50
192
  signing_key:
51
193
  specification_version: 3
52
- summary: Acceptance testing philosophy for grown-ups
194
+ summary: Objected oriented acceptance testing for Rails, using personas.
53
195
  test_files: []