gaku_testing 0.1.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.
- checksums.yaml +7 -0
- data/lib/gaku/testing.rb +10 -0
- data/lib/gaku/testing/engine.rb +10 -0
- data/lib/gaku/testing/env.rb +19 -0
- data/lib/gaku/testing/feature_helpers.rb +159 -0
- data/lib/gaku/testing/flash_helpers.rb +35 -0
- data/lib/gaku/testing/spec_helpers/spec_helper.rb +47 -0
- data/lib/gaku/testing/spec_helpers/spec_helper_base.rb +17 -0
- data/lib/gaku/testing/spec_helpers/spec_helper_controllers.rb +45 -0
- data/lib/gaku/testing/spec_helpers/spec_helper_models.rb +38 -0
- data/lib/gaku/testing/spec_helpers/spec_helper_routing.rb +6 -0
- data/lib/gaku_testing.rb +1 -0
- metadata +70 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8985d28e8b8e0b8c20ca27d04e7a5755b355c07e
|
4
|
+
data.tar.gz: 24add0f0aad3bd3cc5b840a0b257e04033dc272d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 331cb59f49071dd77ae925b66c9bc5695080a4999b06e09c8fd6d2f3249e479b81eb115cfa06e3d5cec6656682e54385720482f43573f966a0bfbea6f1f75177
|
7
|
+
data.tar.gz: 78e6a5f7bb8dc696bec0ce6c8bab157cc8b969e288b2458d599564b52104343da95d0fdc7a26ac02087e8e1b0ae2767fb6cd1346198df58a235c5b4545d5ab45
|
data/lib/gaku/testing.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'capybara'
|
2
|
+
require 'capybara/dsl'
|
3
|
+
require 'capybara/poltergeist'
|
4
|
+
|
5
|
+
Capybara.default_selector = :css
|
6
|
+
Capybara.default_wait_time = 5
|
7
|
+
Capybara.default_driver = :rack_test
|
8
|
+
|
9
|
+
Capybara.register_driver :poltergeist_debug do |app|
|
10
|
+
Capybara::Poltergeist::Driver.new(app, :inspector => true, js_errors: false)
|
11
|
+
end
|
12
|
+
|
13
|
+
if ENV['SELENIUM']
|
14
|
+
Capybara.javascript_driver = :selenium
|
15
|
+
elsif ENV['PHANTOM']
|
16
|
+
Capybara.javascript_driver = :poltergeist_debug
|
17
|
+
else
|
18
|
+
Capybara.javascript_driver = :poltergeist_debug
|
19
|
+
end
|
@@ -0,0 +1,159 @@
|
|
1
|
+
module Gaku::Testing::FeatureHelpers
|
2
|
+
|
3
|
+
@@resource = ''
|
4
|
+
@@resource_plural = ''
|
5
|
+
|
6
|
+
def set_resource(x)
|
7
|
+
@@resource = x
|
8
|
+
@@resource_plural = plural(x)
|
9
|
+
end
|
10
|
+
|
11
|
+
def get_resource
|
12
|
+
@@resource
|
13
|
+
end
|
14
|
+
|
15
|
+
def tab_link
|
16
|
+
"##{@@resource_plural}-tab-link"
|
17
|
+
end
|
18
|
+
|
19
|
+
def form
|
20
|
+
"#new-#{@@resource}"
|
21
|
+
end
|
22
|
+
|
23
|
+
def new_link
|
24
|
+
"#new-#{@@resource}-link"
|
25
|
+
end
|
26
|
+
|
27
|
+
def submit
|
28
|
+
"#submit-#{@@resource}-button"
|
29
|
+
end
|
30
|
+
|
31
|
+
def cancel_link
|
32
|
+
"#cancel-#{@@resource}-link"
|
33
|
+
end
|
34
|
+
|
35
|
+
def modal
|
36
|
+
'.modal'
|
37
|
+
end
|
38
|
+
|
39
|
+
def count_div
|
40
|
+
".#{@@resource_plural}-count"
|
41
|
+
end
|
42
|
+
|
43
|
+
def table
|
44
|
+
"##{@@resource_plural}-index"
|
45
|
+
end
|
46
|
+
|
47
|
+
def table_rows
|
48
|
+
"##{@@resource_plural}-index tr"
|
49
|
+
end
|
50
|
+
|
51
|
+
def edit_link
|
52
|
+
'.edit-link'
|
53
|
+
end
|
54
|
+
|
55
|
+
def js_edit_link
|
56
|
+
'.js-edit-link'
|
57
|
+
end
|
58
|
+
|
59
|
+
|
60
|
+
def recovery_link
|
61
|
+
'.recovery-link'
|
62
|
+
end
|
63
|
+
|
64
|
+
def modal_delete_link
|
65
|
+
'.modal-delete-link'
|
66
|
+
end
|
67
|
+
|
68
|
+
def show_link
|
69
|
+
'.show-link'
|
70
|
+
end
|
71
|
+
|
72
|
+
def delete_link
|
73
|
+
'.delete-link'
|
74
|
+
end
|
75
|
+
|
76
|
+
def close
|
77
|
+
'.close'
|
78
|
+
end
|
79
|
+
|
80
|
+
def accept_alert
|
81
|
+
page.driver.browser.switch_to.alert.accept if Capybara.javascript_driver == :selenium
|
82
|
+
end
|
83
|
+
|
84
|
+
def size_of(selector)
|
85
|
+
page.all(selector).size
|
86
|
+
end
|
87
|
+
|
88
|
+
def visible?(selector)
|
89
|
+
find(selector).visible?
|
90
|
+
end
|
91
|
+
|
92
|
+
def invisible?(selector)
|
93
|
+
page.has_no_selector?(selector)
|
94
|
+
end
|
95
|
+
|
96
|
+
def click(selector)
|
97
|
+
if Capybara.javascript_driver == :selenium
|
98
|
+
find(selector).click
|
99
|
+
else
|
100
|
+
find(selector).trigger('click')
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
def click_option(resource)
|
105
|
+
find("option[value='#{resource.id}']").click
|
106
|
+
end
|
107
|
+
|
108
|
+
def ensure_delete_is_working
|
109
|
+
within(table) { click delete_link }
|
110
|
+
accept_alert
|
111
|
+
end
|
112
|
+
|
113
|
+
def wait_for_ready
|
114
|
+
page.has_no_selector?('.nprogress-busy')
|
115
|
+
end
|
116
|
+
|
117
|
+
def wait_for_ajax(timeout = Capybara.default_wait_time)
|
118
|
+
Timeout.timeout(timeout) do
|
119
|
+
active = page.evaluate_script('jQuery.active')
|
120
|
+
until active == 0
|
121
|
+
active = page.evaluate_script('jQuery.active')
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
def has_validations?
|
127
|
+
click submit
|
128
|
+
page.has_content? "can't be blank"
|
129
|
+
end
|
130
|
+
|
131
|
+
def count?(count)
|
132
|
+
within(count_div) { page.has_content? count }
|
133
|
+
end
|
134
|
+
|
135
|
+
def check_path(current_url,expected_path)
|
136
|
+
uri = URI.parse(current_url)
|
137
|
+
"#{uri.path}?#{uri.query}".should == expected_path
|
138
|
+
end
|
139
|
+
|
140
|
+
def picture_path
|
141
|
+
Rails.root + '../../../core/spec/support/120x120.jpg'
|
142
|
+
end
|
143
|
+
|
144
|
+
private
|
145
|
+
|
146
|
+
def plural(text)
|
147
|
+
a = []
|
148
|
+
a = text.split('-')
|
149
|
+
p = a.last.pluralize
|
150
|
+
result = a[0..-2] << p
|
151
|
+
result * '-'
|
152
|
+
end
|
153
|
+
|
154
|
+
end
|
155
|
+
|
156
|
+
RSpec.configure do |config|
|
157
|
+
config.include Gaku::Testing::FeatureHelpers, type: :feature
|
158
|
+
end
|
159
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Gaku::Testing::FlashHelpers
|
2
|
+
|
3
|
+
def flash?(text)
|
4
|
+
page.should have_selector('#notice', text: text)
|
5
|
+
end
|
6
|
+
|
7
|
+
def flash_created?
|
8
|
+
flash? 'successfully created'
|
9
|
+
end
|
10
|
+
|
11
|
+
def flash_updated?
|
12
|
+
flash? 'successfully updated'
|
13
|
+
end
|
14
|
+
|
15
|
+
def flash_destroyed?
|
16
|
+
flash? 'successfully destroyed'
|
17
|
+
end
|
18
|
+
|
19
|
+
def flash_recovered?
|
20
|
+
flash? 'successfully recovered'
|
21
|
+
end
|
22
|
+
|
23
|
+
def flash_uploaded?
|
24
|
+
flash? 'successfully uploaded'
|
25
|
+
end
|
26
|
+
|
27
|
+
def flash_error_for(field)
|
28
|
+
page.should have_selector("div.#{field}formError")
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
RSpec.configure do |config|
|
34
|
+
config.include Gaku::Testing::FlashHelpers, type: :feature
|
35
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require_relative 'spec_helper_base'
|
2
|
+
require 'rubygems'
|
3
|
+
|
4
|
+
require 'rspec/rails'
|
5
|
+
require 'rspec/autorun'
|
6
|
+
require 'database_cleaner'
|
7
|
+
require 'active_record/fixtures'
|
8
|
+
require 'factory_girl_rails'
|
9
|
+
require 'ffaker'
|
10
|
+
|
11
|
+
require 'gaku/testing/env'
|
12
|
+
require 'gaku/testing/factories'
|
13
|
+
require 'gaku/testing/feature_helpers'
|
14
|
+
require 'gaku/testing/flash_helpers'
|
15
|
+
require 'gaku/testing/auth_helpers'
|
16
|
+
require 'gaku/core/url_helpers'
|
17
|
+
|
18
|
+
|
19
|
+
#require 'gaku/testing/support/features'
|
20
|
+
|
21
|
+
ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
|
22
|
+
|
23
|
+
RSpec.configure do |config|
|
24
|
+
|
25
|
+
config.before(:each) do
|
26
|
+
if example.metadata[:js]
|
27
|
+
DatabaseCleaner.strategy = :truncation
|
28
|
+
else
|
29
|
+
DatabaseCleaner.strategy = :transaction
|
30
|
+
end
|
31
|
+
|
32
|
+
DatabaseCleaner.start
|
33
|
+
end
|
34
|
+
|
35
|
+
config.after(:each) do
|
36
|
+
DatabaseCleaner.clean
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
config.use_transactional_fixtures = false
|
41
|
+
config.infer_base_class_for_anonymous_controllers = false
|
42
|
+
|
43
|
+
config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
44
|
+
config.include FactoryGirl::Syntax::Methods
|
45
|
+
config.include Gaku::Core::UrlHelpers
|
46
|
+
|
47
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'gaku/testing/deferred_garbage_collection'
|
2
|
+
require 'gaku/testing/coverage'
|
3
|
+
|
4
|
+
Rails.logger.level = 3
|
5
|
+
|
6
|
+
RSpec.configure do |config|
|
7
|
+
config.mock_with :rspec
|
8
|
+
config.order = 'random'
|
9
|
+
|
10
|
+
config.before(:all) do
|
11
|
+
DeferredGarbageCollection.start
|
12
|
+
end
|
13
|
+
|
14
|
+
config.after(:all) do
|
15
|
+
DeferredGarbageCollection.reconsider
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require_relative 'spec_helper_base'
|
2
|
+
|
3
|
+
require 'rspec/core'
|
4
|
+
require 'rspec/rails/extensions'
|
5
|
+
require 'rspec/rails/adapters'
|
6
|
+
#require 'rspec/rails/mocks'
|
7
|
+
require 'rspec/rails/view_rendering'
|
8
|
+
require 'rspec/rails/example'
|
9
|
+
|
10
|
+
require 'shoulda-matchers'
|
11
|
+
require 'database_cleaner'
|
12
|
+
require 'factory_girl_rails'
|
13
|
+
require 'handy_controller_helpers'
|
14
|
+
|
15
|
+
require 'gaku/testing/factories'
|
16
|
+
require 'gaku/testing/controller_helpers'
|
17
|
+
require 'gaku/testing/auth_helpers'
|
18
|
+
require 'gaku/core/url_helpers'
|
19
|
+
|
20
|
+
#require 'gaku/testing/support/controllers'
|
21
|
+
|
22
|
+
ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
|
23
|
+
|
24
|
+
|
25
|
+
RSpec.configure do |config|
|
26
|
+
config.before(:suite) do
|
27
|
+
DatabaseCleaner.strategy = :transaction
|
28
|
+
DatabaseCleaner.clean_with(:truncation)
|
29
|
+
end
|
30
|
+
|
31
|
+
config.before(:each) do
|
32
|
+
DatabaseCleaner.start
|
33
|
+
end
|
34
|
+
|
35
|
+
config.after(:each) do
|
36
|
+
DatabaseCleaner.clean
|
37
|
+
end
|
38
|
+
|
39
|
+
config.include FactoryGirl::Syntax::Methods
|
40
|
+
config.include Devise::TestHelpers, type: :controller
|
41
|
+
config.include HandyControllerHelpers::AllHelpers, type: :controller
|
42
|
+
config.include Gaku::Core::UrlHelpers
|
43
|
+
|
44
|
+
config.alias_it_should_behave_like_to :ensures, 'ensures'
|
45
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require_relative 'spec_helper_base'
|
2
|
+
|
3
|
+
require 'rspec/core'
|
4
|
+
require 'rspec/rails/extensions'
|
5
|
+
require 'rspec/rails/adapters'
|
6
|
+
require 'rspec/rails/matchers'
|
7
|
+
require 'rspec/rails/mocks'
|
8
|
+
|
9
|
+
require 'database_cleaner'
|
10
|
+
require 'factory_girl_rails'
|
11
|
+
require 'paperclip/matchers'
|
12
|
+
require 'ffaker'
|
13
|
+
require 'shoulda-matchers'
|
14
|
+
|
15
|
+
require 'gaku/testing/factories'
|
16
|
+
|
17
|
+
Dir["#{File.dirname(__FILE__)}/support/models/**/*.rb"].each { |f| require f }
|
18
|
+
ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
|
19
|
+
|
20
|
+
RSpec.configure do |config|
|
21
|
+
|
22
|
+
config.before(:suite) do
|
23
|
+
DatabaseCleaner.strategy = :transaction
|
24
|
+
DatabaseCleaner.clean_with(:truncation)
|
25
|
+
end
|
26
|
+
|
27
|
+
config.before(:each) do
|
28
|
+
DatabaseCleaner.start
|
29
|
+
end
|
30
|
+
|
31
|
+
config.after(:each) do
|
32
|
+
DatabaseCleaner.clean
|
33
|
+
end
|
34
|
+
|
35
|
+
config.include FactoryGirl::Syntax::Methods
|
36
|
+
config.include Paperclip::Shoulda::Matchers
|
37
|
+
|
38
|
+
end
|
data/lib/gaku_testing.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'gaku/testing'
|
metadata
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: gaku_testing
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Rei Kagetsuki
|
8
|
+
- Nakaya Yukiharu
|
9
|
+
- Vassil Kalkov
|
10
|
+
- Georgi Tapalilov
|
11
|
+
autorequire:
|
12
|
+
bindir: bin
|
13
|
+
cert_chain: []
|
14
|
+
date: 2014-02-24 00:00:00.000000000 Z
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: gaku_core
|
18
|
+
requirement: !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- - '='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 0.1.1
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - '='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.1.1
|
30
|
+
description: Testing helpers used in other engines
|
31
|
+
email: info@genshin.org
|
32
|
+
executables: []
|
33
|
+
extensions: []
|
34
|
+
extra_rdoc_files: []
|
35
|
+
files:
|
36
|
+
- lib/gaku/testing.rb
|
37
|
+
- lib/gaku/testing/flash_helpers.rb
|
38
|
+
- lib/gaku/testing/spec_helpers/spec_helper_models.rb
|
39
|
+
- lib/gaku/testing/spec_helpers/spec_helper_routing.rb
|
40
|
+
- lib/gaku/testing/spec_helpers/spec_helper_controllers.rb
|
41
|
+
- lib/gaku/testing/spec_helpers/spec_helper.rb
|
42
|
+
- lib/gaku/testing/spec_helpers/spec_helper_base.rb
|
43
|
+
- lib/gaku/testing/engine.rb
|
44
|
+
- lib/gaku/testing/env.rb
|
45
|
+
- lib/gaku/testing/feature_helpers.rb
|
46
|
+
- lib/gaku_testing.rb
|
47
|
+
homepage: http://github.com/Genshin/gaku
|
48
|
+
licenses: []
|
49
|
+
metadata: {}
|
50
|
+
post_install_message:
|
51
|
+
rdoc_options: []
|
52
|
+
require_paths:
|
53
|
+
- lib
|
54
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - ~>
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: 2.0.0
|
59
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - '>='
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
64
|
+
requirements: []
|
65
|
+
rubyforge_project:
|
66
|
+
rubygems_version: 2.1.11
|
67
|
+
signing_key:
|
68
|
+
specification_version: 4
|
69
|
+
summary: Shared testing helpers for GAKU Engine
|
70
|
+
test_files: []
|