watir_session 0.1.0 → 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 +4 -4
- data/README.md +6 -6
- data/lib/watir_session/custom_config.rb +4 -2
- data/lib/watir_session/watir_config.rb +2 -7
- data/lib/watir_session/watir_session.rb +62 -39
- data/watir_session.gemspec +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b8dbe01ed4a189544d75a9dd9442da5de4230658
|
4
|
+
data.tar.gz: 58006e6f4a52159e702fe9d0231f72c33e19027d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 711eabec5d9b973ded56125c98c010061cc98f6363bd4d85ec5eb41cae7e1cd010717cae92e73b2b25a0030a1e0412c26581535c041c584f6d32831e0081674d
|
7
|
+
data.tar.gz: 9c4a2f18ca0a97d6b5ea4e8a342d94495dabc790424e9eb190b2df87295b925be563af312ec915e448e5bde843f469787cde4c21b99b53006c3e3d2e7593a9fa
|
data/README.md
CHANGED
@@ -31,8 +31,8 @@ with your
test harness (RSpec, Cucumber, etc) for maximum flexibility.
|
|
31
31
|
|
32
32
|
```
ruby
|
33
33
|
WatirSession.start
|
34
|
-
WatirSession.
|
35
|
-
WatirSession.
|
34
|
+
WatirSession.before_each
|
35
|
+
WatirSession.after_each
|
36
36
|
```
|
37
37
|
|
38
38
|
## Example
|
@@ -50,9 +50,9 @@ class SauceSession
|
|
50
50
|
end
|
51
51
|
```
|
52
52
|
```ruby
|
53
|
-
require '
|
53
|
+
require 'watir_model'
|
54
54
|
|
55
|
-
class SauceConfig <
|
55
|
+
class SauceConfig < WatirModel
|
56
56
|
key(:sauce_username) { ENV['SAUCE_USERNAME'] }
|
57
57
|
key(:sauce_access_key) { ENV['SAUCE_ACCESS_KEY'] }
|
58
58
|
key(:endpoint) {"http://#{sauce_username}:#{sauce_access_key}@ondemand.saucelabs.com:80/wd/hub"}
|
@@ -64,10 +64,10 @@ RSpec.configure do |config|
|
|
64
64
|
WatirSession.register_session(SauceSession.new)
|
65
65
|
|
66
66
|
config.before(:each) do
|
67
|
-
@browser = WatirSession.
|
67
|
+
@browser = WatirSession.before_each
|
68
68
|
end
|
69
69
|
config.after(:each) do
|
70
|
-
WatirSession.
|
70
|
+
WatirSession.after_each
|
71
71
|
end
|
72
72
|
end
|
73
73
|
```
|
@@ -1,7 +1,6 @@
|
|
1
|
-
require '
|
2
|
-
require 'yaml'
|
1
|
+
require 'watir_model'
|
3
2
|
|
4
|
-
class WatirConfig <
|
3
|
+
class WatirConfig < WatirModel
|
5
4
|
|
6
5
|
## --Browser Options-- ##
|
7
6
|
|
@@ -63,8 +62,4 @@ class WatirConfig < Model
|
|
63
62
|
# Note: This setting will be ignored if platform is not Linux, and will raise error if xvfb is not installed
|
64
63
|
key(:headless) { ENV['HEADLESS'] == 'true' }
|
65
64
|
|
66
|
-
## --Additional Options-- ##
|
67
|
-
|
68
|
-
key(:custom_config)
|
69
|
-
|
70
65
|
end
|
@@ -3,12 +3,37 @@ module WatirSession
|
|
3
3
|
extend self
|
4
4
|
|
5
5
|
attr_reader :browser
|
6
|
-
|
6
|
+
attr_writer :watir_config
|
7
7
|
|
8
8
|
def watir_config
|
9
9
|
@watir_config ||= WatirConfig.new
|
10
10
|
end
|
11
11
|
|
12
|
+
def custom_config
|
13
|
+
@custom_config ||= CustomConfig.new
|
14
|
+
end
|
15
|
+
|
16
|
+
def create_configurations
|
17
|
+
spec_path = $LOAD_PATH.select { |path| path =~ /\/spec$/ }.first
|
18
|
+
config_path = spec_path.gsub('spec', 'config')
|
19
|
+
|
20
|
+
return unless Dir.exist?(config_path)
|
21
|
+
Dir.entries(config_path).select { |file| file =~ /\.yml$/ }.each do |yaml|
|
22
|
+
config_name = yaml.gsub('.yml', '')
|
23
|
+
next unless Object.const_defined?("#{config_name.capitalize}Config")
|
24
|
+
load_yml(config_path, config_name)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def load_yml(config_path, config_name)
|
29
|
+
config = YAML.load_file("#{config_path}/#{config_name}.yml")
|
30
|
+
if config.values.all? { |v| v.is_a? Hash } && custom_config.respond_to?(config_name.singularize)
|
31
|
+
config = config[custom_config.send(config_name.singularize)]
|
32
|
+
end
|
33
|
+
obj = Object.const_get("#{config_name.capitalize}Config").new(config)
|
34
|
+
custom_config.send("#{config_name}=", obj)
|
35
|
+
end
|
36
|
+
|
12
37
|
def registered_sessions
|
13
38
|
@registered_sessions ||= []
|
14
39
|
end
|
@@ -27,77 +52,74 @@ module WatirSession
|
|
27
52
|
end
|
28
53
|
end
|
29
54
|
|
55
|
+
def start
|
56
|
+
configure_watir
|
57
|
+
create_configurations
|
58
|
+
end
|
59
|
+
|
60
|
+
def before_suite(*args)
|
61
|
+
create_browser if watir_config.reuse_browser
|
62
|
+
|
63
|
+
execute_hook :before_suite, *args
|
64
|
+
end
|
65
|
+
|
66
|
+
def before_browser(*args)
|
67
|
+
execute_hook :before_browser, *args
|
68
|
+
end
|
69
|
+
|
30
70
|
def create_browser(*args)
|
31
|
-
use_headless_display if
|
71
|
+
use_headless_display if watir_config.headless
|
32
72
|
|
33
73
|
@browser = execute_hook(:create_browser, *args).compact.first
|
34
74
|
|
35
75
|
unless @browser
|
36
76
|
http_client = Selenium::WebDriver::Remote::Http::Default.new
|
37
|
-
http_client.timeout =
|
38
|
-
@browser = Watir::Browser.new(
|
77
|
+
http_client.timeout = watir_config.http_timeout
|
78
|
+
@browser = Watir::Browser.new(watir_config.browser,
|
39
79
|
http_client: http_client)
|
40
80
|
end
|
41
81
|
@browser
|
42
82
|
end
|
43
83
|
|
44
|
-
def
|
45
|
-
|
46
|
-
|
47
|
-
configure_watir
|
48
|
-
|
49
|
-
create_browser if @watir_config.reuse_browser
|
50
|
-
|
51
|
-
execute_hook :before_tests, *args
|
52
|
-
execute_hook :start, *args
|
53
|
-
end
|
54
|
-
alias_method :start, :before_tests
|
55
|
-
|
56
|
-
def start_test(*args)
|
57
|
-
if @watir_config.reuse_browser && browser.nil
|
84
|
+
def before_each(*args)
|
85
|
+
if watir_config.reuse_browser && browser.nil
|
58
86
|
raise StandardError, "#before_tests method must be set in order to use
|
59
87
|
the #reuse_browser configuration setting"
|
60
88
|
end
|
61
89
|
|
62
|
-
|
90
|
+
before_browser(*args)
|
63
91
|
|
64
|
-
@browser = create_browser(*args) unless
|
65
|
-
@browser.window.maximize if
|
92
|
+
@browser = create_browser(*args) unless watir_config.reuse_browser
|
93
|
+
@browser.window.maximize if watir_config.maximize_browser
|
66
94
|
|
67
|
-
execute_hook :
|
95
|
+
execute_hook :before_each, *args
|
68
96
|
|
69
97
|
@browser
|
70
98
|
end
|
71
99
|
|
72
|
-
def
|
73
|
-
execute_hook :
|
100
|
+
def after_each(*args)
|
101
|
+
execute_hook :after_each, *args
|
74
102
|
|
75
103
|
take_screenshot(*args) unless watir_config.take_screenshots == :never
|
76
104
|
|
77
105
|
quit_browser unless watir_config.reuse_browser
|
78
106
|
|
79
|
-
|
107
|
+
after_browser(*args)
|
80
108
|
end
|
81
109
|
|
82
|
-
def
|
83
|
-
|
84
|
-
|
85
|
-
execute_hook :after_tests, *args
|
86
|
-
execute_hook :end, *args
|
110
|
+
def after_browser(*args)
|
111
|
+
execute_hook :after_browser, *args
|
87
112
|
end
|
88
|
-
alias_method :end, :after_tests
|
89
113
|
|
90
114
|
def take_screenshot(*args)
|
91
115
|
screenshot = execute_hook(:take_screenshot, *args).compact
|
92
116
|
browser.screenshot.save("screenshot.png") if screenshot.nil?
|
93
117
|
end
|
94
118
|
|
95
|
-
def
|
96
|
-
|
97
|
-
end
|
119
|
+
def after_suite(*args)
|
120
|
+
quit_browser if watir_config.reuse_browser
|
98
121
|
|
99
|
-
|
100
|
-
execute_hook :after_test, *args
|
122
|
+
execute_hook :after_suite, *args
|
101
123
|
end
|
102
124
|
|
103
125
|
def quit_browser
|
@@ -119,6 +141,7 @@ the #reuse_browser configuration setting"
|
|
119
141
|
|
120
142
|
def reset_config!
|
121
143
|
@watir_config = nil
|
144
|
+
@custom_config = nil
|
122
145
|
end
|
123
146
|
|
124
147
|
def reset_registered_sessions!
|
@@ -126,9 +149,9 @@ the #reuse_browser configuration setting"
|
|
126
149
|
end
|
127
150
|
|
128
151
|
def configure_watir
|
129
|
-
Watir.default_timeout =
|
130
|
-
Watir.prefer_css =
|
131
|
-
Watir.always_locate =
|
152
|
+
Watir.default_timeout = watir_config.watir_timeout
|
153
|
+
Watir.prefer_css = watir_config.prefer_css
|
154
|
+
Watir.always_locate = watir_config.always_locate
|
132
155
|
end
|
133
156
|
|
134
157
|
def use_headless_display
|
data/watir_session.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = 'watir_session'
|
5
|
-
spec.version = '0.1.
|
5
|
+
spec.version = '0.1.1'
|
6
6
|
spec.authors = ['Titus Fortner']
|
7
7
|
spec.email = ['titusfortner@gmail.com']
|
8
8
|
|
@@ -29,6 +29,6 @@ to configurarion and session data so they do not need to be passed around as par
|
|
29
29
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
30
30
|
spec.add_development_dependency 'headless' # This only gets required when on Linux
|
31
31
|
spec.add_development_dependency 'watir-webdriver'
|
32
|
-
spec.add_development_dependency '
|
32
|
+
spec.add_development_dependency 'watir_model'
|
33
33
|
|
34
34
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: watir_session
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Titus Fortner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -81,7 +81,7 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: watir_model
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - ">="
|