waterpig 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/waterpig/browser-integration.rb +14 -0
- data/lib/waterpig/browser-size.rb +18 -0
- data/lib/waterpig/database-cleaner.rb +26 -8
- data/lib/waterpig/deadbeat-connections.rb +32 -0
- data/spec/embarrassing.rb +1 -0
- data/spec_help/spec_helper.rb +8 -3
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a2a5a3dc8d067e31bd44da7641251085c79f8a9
|
4
|
+
data.tar.gz: e9bf6eb922f230797d4281a5aab4151fed8a0d64
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 319ea313489f5e5d6df14637712d008e03dfe120a35f50152b5cfb1657541ae2cc3cf332bea0f80cbc7df027facc790a42b6065e806cbf6d99a58b186a73a66d
|
7
|
+
data.tar.gz: d57ad2069c0d90fdd5274d4969cf02edfab660af5925df482655ea84c6b4f7597c6d36db29dd83ca7e68d122588587e6cdd6d36cf63ae1698919af96e6782930
|
@@ -9,6 +9,7 @@ require 'waterpig/save-and-open-on-fail'
|
|
9
9
|
require 'waterpig/ckeditor-tools'
|
10
10
|
require 'waterpig/tinymce-tools'
|
11
11
|
require 'waterpig/browser-tools'
|
12
|
+
require 'waterpig/browser-size'
|
12
13
|
require 'waterpig/snap-step'
|
13
14
|
|
14
15
|
module Waterpig
|
@@ -22,10 +23,19 @@ end
|
|
22
23
|
|
23
24
|
RSpec.configure do |config|
|
24
25
|
config.add_setting :waterpig_browser_types, :default => [:feature]
|
26
|
+
config.add_setting :waterpig_browser_size_types, :default => [:feature]
|
27
|
+
|
25
28
|
config.add_setting :waterpig_autosnap, :default => ENV['WATERPIG_AUTOSNAP']
|
26
29
|
config.add_setting :waterpig_driver, :default => ENV['CAPYBARA_DRIVER']
|
27
30
|
config.add_setting :waterpig_js_driver, :default => ENV['CAPYBARA_JS_DRIVER']
|
28
31
|
|
32
|
+
config.add_setting :waterpig_browser_sizes, :default => {
|
33
|
+
:mobile => { :width => 320, :height => 480 },
|
34
|
+
:small => { :width => 550, :height => 700 },
|
35
|
+
:medium => { :width => 800, :height => 900 },
|
36
|
+
:desktop => { :width => 1024, :height => 1024 }
|
37
|
+
}
|
38
|
+
|
29
39
|
|
30
40
|
config.before(:suite) do
|
31
41
|
Capybara.default_driver = Waterpig.pick_capybara_driver(config.waterpig_driver)
|
@@ -45,4 +55,8 @@ RSpec.configure do |config|
|
|
45
55
|
config.waterpig_autosnap? && config.waterpig_browser_types.include?(value)
|
46
56
|
}
|
47
57
|
config.include Waterpig::SnapStep, :snapshots_into => proc{|v| v.is_a? String}
|
58
|
+
|
59
|
+
config.include Waterpig::BrowserSize, :type => proc{|value|
|
60
|
+
config.waterpig_browser_size_types && config.waterpig_browser_size_types.include?(value)
|
61
|
+
}
|
48
62
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Waterpig
|
2
|
+
module BrowserSize
|
3
|
+
def self.included(group)
|
4
|
+
group.before(:each) do |example|
|
5
|
+
sizes = RSpec.configuration.waterpig_browser_sizes
|
6
|
+
BrowserSize.resize_browser_window(sizes[BrowserSize.current_size(example)])
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.resize_browser_window(size)
|
11
|
+
Capybara.current_session.driver.browser.manage.window.resize_to(size[:width], size[:height])
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.current_size(example)
|
15
|
+
(example.metadata[:size] || ENV['BROWSER_SIZE'] || :desktop).to_sym
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -9,20 +9,38 @@ RSpec.configure do |config|
|
|
9
9
|
config.add_setting :waterpig_database_truncation_config, :default => {:except => %w[spatial_ref_sys]}
|
10
10
|
config.add_setting :waterpig_db_seeds, :default => 'db/seeds.rb'
|
11
11
|
|
12
|
+
def with_showing(show, detailed)
|
13
|
+
begin
|
14
|
+
old_show, old_show_detailed =
|
15
|
+
Rails.application.config.action_dispatch.show_exceptions,
|
16
|
+
Rails.application.config.action_dispatch.show_detailed_exceptions
|
17
|
+
Rails.application.config.action_dispatch.show_exceptions = show
|
18
|
+
Rails.application.config.action_dispatch.show_detailed_exceptions = detailed
|
19
|
+
yield
|
20
|
+
ensure
|
21
|
+
Rails.application.config.action_dispatch.show_exceptions = old_show
|
22
|
+
Rails.application.config.action_dispatch.show_detailed_exceptions = old_show_detailed
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
12
26
|
config.before :all, :type => proc{ |value| config.waterpig_truncation_types.include?(value)} do
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
27
|
+
with_showing(true, false) do
|
28
|
+
DatabaseCleaner.clean_with :truncation, config.waterpig_database_truncation_config
|
29
|
+
unless config.waterpig_exclude_seeds_types.include?(self.class.metadata[:type])
|
30
|
+
if config.waterpig_db_seeds?
|
31
|
+
load config.waterpig_db_seeds
|
32
|
+
end
|
18
33
|
end
|
19
34
|
end
|
20
35
|
end
|
21
36
|
|
22
37
|
config.after :all, :type => proc{ |value| config.waterpig_truncation_types.include?(value)} do
|
23
|
-
|
24
|
-
|
25
|
-
|
38
|
+
with_showing(true, true) do
|
39
|
+
Rails.application.config.action_dispatch.show_detailed_exceptions = true
|
40
|
+
DatabaseCleaner.clean_with :truncation, config.waterpig_database_truncation_config
|
41
|
+
if config.waterpig_db_seeds?
|
42
|
+
load config.waterpig_db_seeds
|
43
|
+
end
|
26
44
|
end
|
27
45
|
end
|
28
46
|
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Waterpig
|
2
|
+
class DeadbeatConnectionRelease
|
3
|
+
def initialize(app)
|
4
|
+
@app = app
|
5
|
+
end
|
6
|
+
|
7
|
+
#This is a brittle hack for what appears to be a bug in ActiveRecord 4:
|
8
|
+
#connections aren't being properly released after their owning threads die
|
9
|
+
def call(env)
|
10
|
+
response = @app.call(env)
|
11
|
+
response[2] = ::Rack::BodyProxy.new(response[2]) do
|
12
|
+
ActiveRecord::Base.connection_handler.connection_pool_list.each do |pool|
|
13
|
+
reservers = pool.instance_variable_get("@reserved_connections").keys
|
14
|
+
deadbeats = reservers - Thread.list.map(&:object_id)
|
15
|
+
Rails.logger.info{ "Releasing connections held by these no-longer-living Threads: #{deadbeats}" } unless deadbeats.empty?
|
16
|
+
deadbeats.each do |deadbeat_id|
|
17
|
+
pool.release_connection(deadbeat_id)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
response
|
23
|
+
rescue Object => ex
|
24
|
+
require 'pp'
|
25
|
+
Rails.logger.fatal "Problem responding to request in test"
|
26
|
+
Rails.logger.fatal [ex.class, ex.message, ex.backtrace].join("\n")
|
27
|
+
Rails.logger.fatal env.pretty_inspect
|
28
|
+
Rails.logger.fatal response.pretty_inspect
|
29
|
+
raise
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/spec/embarrassing.rb
CHANGED
data/spec_help/spec_helper.rb
CHANGED
@@ -1,9 +1,14 @@
|
|
1
1
|
require 'rspec'
|
2
2
|
require 'rspec/core/formatters/base_formatter'
|
3
|
-
require 'cadre/
|
3
|
+
require 'cadre/rspec3'
|
4
4
|
|
5
5
|
RSpec.configure do |config|
|
6
6
|
config.run_all_when_everything_filtered = true
|
7
|
-
config.
|
8
|
-
|
7
|
+
if config.formatters.empty?
|
8
|
+
config.add_formatter(:progress)
|
9
|
+
#but do consider:
|
10
|
+
#config.add_formatter(Cadre::RSpec3::TrueFeelingsFormatter)
|
11
|
+
end
|
12
|
+
config.add_formatter(Cadre::RSpec3::NotifyOnCompleteFormatter)
|
13
|
+
config.add_formatter(Cadre::RSpec3::QuickfixFormatter)
|
9
14
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: waterpig
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Judson Lester
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-12-
|
11
|
+
date: 2014-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capybara
|
@@ -65,12 +65,14 @@ files:
|
|
65
65
|
- lib/waterpig/ckeditor-tools.rb
|
66
66
|
- lib/waterpig/selenium_chrome.rb
|
67
67
|
- lib/waterpig/database-cleaner.rb
|
68
|
+
- lib/waterpig/deadbeat-connections.rb
|
68
69
|
- lib/waterpig/tinymce-tools.rb
|
69
70
|
- lib/waterpig/browser-integration.rb
|
70
71
|
- lib/waterpig/poltergeist.rb
|
71
72
|
- lib/waterpig/warning-suppressor.rb
|
72
73
|
- lib/waterpig/snap-step.rb
|
73
74
|
- lib/waterpig/browser-tools.rb
|
75
|
+
- lib/waterpig/browser-size.rb
|
74
76
|
- spec/embarrassing.rb
|
75
77
|
- spec_help/spec_helper.rb
|
76
78
|
- spec_help/gem_test_suite.rb
|
@@ -84,7 +86,7 @@ rdoc_options:
|
|
84
86
|
- --main
|
85
87
|
- doc/README
|
86
88
|
- --title
|
87
|
-
- waterpig-0.
|
89
|
+
- waterpig-0.4.0 Documentation
|
88
90
|
require_paths:
|
89
91
|
- lib/
|
90
92
|
required_ruby_version: !ruby/object:Gem::Requirement
|