scoutui 0.1.3 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/pkg/scoutui-2.0.0.gem +0 -0
- metadata +49 -40
- data/.gitignore +0 -9
- data/.rspec +0 -2
- data/.travis.yml +0 -4
- data/CODE_OF_CONDUCT.md +0 -13
- data/Gemfile +0 -4
- data/LICENSE.txt +0 -21
- data/README.md +0 -116
- data/Rakefile +0 -6
- data/bin/console +0 -14
- data/bin/scoutui_driver.rb +0 -22
- data/bin/setup +0 -7
- data/examples/ex1/commands.yml +0 -25
- data/examples/ex1/test-example.sh +0 -36
- data/examples/ex1/test.config.json +0 -16
- data/examples/ex2/commands.yml +0 -35
- data/examples/ex2/page_model.json +0 -18
- data/examples/ex2/test-example.sh +0 -38
- data/examples/ex2/test.config.json +0 -25
- data/examples/ex6/commands.yml +0 -53
- data/examples/ex6/ex1.config.json +0 -24
- data/examples/ex6/test-example.sh +0 -36
- data/lib/scoutui/base/q_accounts.rb +0 -52
- data/lib/scoutui/base/q_applitools.rb +0 -125
- data/lib/scoutui/base/q_browser.rb +0 -74
- data/lib/scoutui/base/test_scout.rb +0 -123
- data/lib/scoutui/base/test_settings.rb +0 -109
- data/lib/scoutui/base/user_vars.rb +0 -105
- data/lib/scoutui/base/visual_test_framework.rb +0 -270
- data/lib/scoutui/eyes/eye_factory.rb +0 -76
- data/lib/scoutui/eyes/eye_scout.rb +0 -101
- data/lib/scoutui/navigator.rb +0 -24
- data/lib/scoutui/utils/utils.rb +0 -267
- data/lib/scoutui/version.rb +0 -3
- data/lib/scoutui.rb +0 -8
- data/scoutui.gemspec +0 -33
data/lib/scoutui/utils/utils.rb
DELETED
@@ -1,267 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'singleton'
|
3
|
-
require 'pp'
|
4
|
-
require 'optparse'
|
5
|
-
|
6
|
-
|
7
|
-
module Scoutui::Utils
|
8
|
-
|
9
|
-
|
10
|
-
class TestUtils
|
11
|
-
include Singleton
|
12
|
-
|
13
|
-
attr_accessor :options
|
14
|
-
attr_accessor :page_model
|
15
|
-
|
16
|
-
def initialize
|
17
|
-
|
18
|
-
@env_list={:accounts => 'SCOUTUI_ACCOUNTS', :browser => 'SCOUTUI_BROWSER', :applitools_api_key => 'APPLITOOLS_API_KEY'}
|
19
|
-
@options={}
|
20
|
-
|
21
|
-
[:accounts, :browser, :test_file, :host, :loc, :title, :viewport,
|
22
|
-
:userid, :password, :json_config_file, :page_model, :test_config, :debug].each do |o|
|
23
|
-
@options[o]=nil
|
24
|
-
end
|
25
|
-
|
26
|
-
@options[:enable_eyes]=false
|
27
|
-
@options[:match_level]='layout'
|
28
|
-
@options[:debug]=false
|
29
|
-
|
30
|
-
@page_model=nil
|
31
|
-
|
32
|
-
Scoutui::Base::UserVars.instance.set('eyes.viewport', '1024x768')
|
33
|
-
|
34
|
-
end
|
35
|
-
|
36
|
-
def loadPageModel()
|
37
|
-
if !@options[:page_model].nil?
|
38
|
-
_f = File.read(@options[:page_model].to_s)
|
39
|
-
@page_model = JSON.parse(_f)
|
40
|
-
|
41
|
-
puts __FILE__ + (__LINE__).to_s + " JSON-PageModel => #{@page_model}" if Scoutui::Utils::TestUtils.instance.isDebug?
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
|
46
|
-
def getPageElement(s)
|
47
|
-
hit=@page_model
|
48
|
-
|
49
|
-
nodes = s.split(/\./)
|
50
|
-
|
51
|
-
nodes.each { |elt|
|
52
|
-
getter = elt.split(/\(/)[0]
|
53
|
-
_obj = elt.match(/\((.*)\)/)[1]
|
54
|
-
|
55
|
-
puts __FILE__ + (__LINE__).to_s + " getter : #{getter} obj: #{_obj}" if Scoutui::Utils::TestUtils.instance.isDebug?
|
56
|
-
|
57
|
-
if getter.downcase=='page'
|
58
|
-
puts __FILE__ + (__LINE__).to_s + " -- process page --" if Scoutui::Utils::TestUtils.instance.isDebug?
|
59
|
-
hit=@page_model[_obj]
|
60
|
-
elsif getter.downcase=='get'
|
61
|
-
hit=hit[_obj]
|
62
|
-
end
|
63
|
-
puts __FILE__ + (__LINE__).to_s + " HIT => #{hit}" if Scoutui::Utils::TestUtils.instance.isDebug?
|
64
|
-
}
|
65
|
-
|
66
|
-
hit
|
67
|
-
|
68
|
-
end
|
69
|
-
|
70
|
-
|
71
|
-
def parseCommandLine()
|
72
|
-
|
73
|
-
OptionParser.new do |opt|
|
74
|
-
opt.on('-c', '--config TESTFILE') { |o|
|
75
|
-
if !o.nil?
|
76
|
-
@options[:json_config_file]=o
|
77
|
-
|
78
|
-
jFile = File.read(@options[:json_config_file])
|
79
|
-
@options[:test_config]=jsonData=JSON.parse(jFile)
|
80
|
-
end
|
81
|
-
}
|
82
|
-
opt.on('--accounts [Account]') { |o| @options[:accounts] = o }
|
83
|
-
opt.on('-b', '--browser [TYPE]', [:chrome, :firefox, :ie, :safari, :phantomjs], "Select browser (chrome, ie, firefox, safari)") { |o| @options[:browser] = o }
|
84
|
-
opt.on('-d', '--debug', 'Enable debug') { |o| @options[:debug] = true }
|
85
|
-
opt.on('-h', '--host HOST') { |o| @options[:host] = o }
|
86
|
-
opt.on('-l', '--lang LOCAL') { |o| @options[:loc] = o }
|
87
|
-
opt.on('-k', '--key EyesLicense') { |o| options[:license_file] = o }
|
88
|
-
opt.on('-a', '--app AppName') { |o| @options[:app] = o }
|
89
|
-
opt.on('--match [LEVEL]', [:layout2, :layout, :strict, :exact, :content], "Select match level (layout, strict, exact, content)") { |o| @options[:match_level] = o }
|
90
|
-
|
91
|
-
opt.on('--pagemodel [PageModel]') { |o|
|
92
|
-
@options[:page_model] = o
|
93
|
-
loadPageModel()
|
94
|
-
}
|
95
|
-
opt.on('-t', '--title TITLE') { |o| @options[:title] = o }
|
96
|
-
|
97
|
-
opt.on('-u', '--user USER_ID') { |o|
|
98
|
-
@options[:userid] = o
|
99
|
-
Scoutui::Base::UserVars.instance.setVar(:user, @options[:userid].to_s)
|
100
|
-
}
|
101
|
-
opt.on('-p', '--password PASSWORD') { |o| @options[:password] = o }
|
102
|
-
opt.on('-e', '--eyes', "Toggle eyes") {
|
103
|
-
@options[:enable_eyes]=true
|
104
|
-
}
|
105
|
-
opt.on('--viewport [resolution]') { |o| options[:viewport] = o }
|
106
|
-
end.parse!
|
107
|
-
|
108
|
-
if Scoutui::Utils::TestUtils.instance.isDebug?
|
109
|
-
puts __FILE__ + (__LINE__).to_s + " " + @options.to_s
|
110
|
-
puts "Test file => #{@options[:test_file]}"
|
111
|
-
puts "Host => #{@options[:host]}"
|
112
|
-
puts "Loc => #{@options[:loc]}"
|
113
|
-
puts "Title => #{@options[:title]}"
|
114
|
-
puts "Browser => #{@options[:browser]}"
|
115
|
-
puts "UserID => #{@options[:userid]}"
|
116
|
-
puts "Password => #{@options[:password]}"
|
117
|
-
puts "Eyes => #{@options[:enable_eyes]}"
|
118
|
-
puts "Test Cfg => #{@options[:json_config_file]}"
|
119
|
-
puts "Match Level => #{@options[:match_level]}"
|
120
|
-
puts "Accounts => #{@options[:accounts]}"
|
121
|
-
puts "Viewport => #{@options[:viewport]}"
|
122
|
-
puts "Viewport (Var) => #{Scoutui::Base::UserVars.instance.getViewPort().to_s}"
|
123
|
-
puts "PageModel file => #{@options[:page_model].to_s}"
|
124
|
-
end
|
125
|
-
|
126
|
-
@options
|
127
|
-
end
|
128
|
-
|
129
|
-
def isDebug?
|
130
|
-
@options[:debug]
|
131
|
-
end
|
132
|
-
|
133
|
-
def eyesEnabled?
|
134
|
-
@options[:enable_eyes]
|
135
|
-
end
|
136
|
-
|
137
|
-
def getLicenseFile()
|
138
|
-
@options[:license_file].to_s
|
139
|
-
end
|
140
|
-
|
141
|
-
def getBrowser()
|
142
|
-
getBrowserType()
|
143
|
-
end
|
144
|
-
def getBrowserType()
|
145
|
-
@options[:browser]
|
146
|
-
end
|
147
|
-
|
148
|
-
def hasTestConfig?
|
149
|
-
!@options[:json_config_file].nil?
|
150
|
-
end
|
151
|
-
|
152
|
-
def testConfigFile()
|
153
|
-
@options[:json_config_file]
|
154
|
-
end
|
155
|
-
|
156
|
-
# Returns JSON file contents/format
|
157
|
-
def getTestSettings()
|
158
|
-
|
159
|
-
[:accounts, :browser, :host, :userid, :password].each do |k|
|
160
|
-
|
161
|
-
puts __FILE__ + (__LINE__).to_s + " opt[test_config].has_key(#{k.to_s}) => #{@options[:test_config].has_key?(k.to_s)}" if Scoutui::Utils::TestUtils.instance.isDebug?
|
162
|
-
|
163
|
-
puts __FILE__ + (__LINE__).to_s + " options[#{k}] : #{@options[k].to_s}" if Scoutui::Utils::TestUtils.instance.isDebug?
|
164
|
-
if @options.has_key?(k) && !@options[k].nil?
|
165
|
-
Scoutui::Base::UserVars.instance.set(k, @options[k].to_s)
|
166
|
-
elsif @options[:test_config].has_key?(k.to_s)
|
167
|
-
|
168
|
-
puts __FILE__ + (__LINE__).to_s + " opts[#{k}].nil => #{@options[k].nil?}" if Scoutui::Utils::TestUtils.instance.isDebug?
|
169
|
-
# Ensure commnand line takes precedence
|
170
|
-
if !@options[k].nil?
|
171
|
-
puts __FILE__ + (__LINE__).to_s + " opt[#{k.to_s} => #{@options[k].to_s}" if Scoutui::Utils::TestUtils.instance.isDebug?
|
172
|
-
Scoutui::Base::UserVars.instance.set(k, @options[k].to_s)
|
173
|
-
else
|
174
|
-
Scoutui::Base::UserVars.instance.set(k, @options[:test_config][k.to_s].to_s)
|
175
|
-
end
|
176
|
-
|
177
|
-
elsif @env_list.has_key?(k)
|
178
|
-
# If an ENV is available, use it.
|
179
|
-
puts __FILE__ + (__LINE__).to_s + " #{k} => ENV(#{@env_list[k]}) = #{ENV[@env_list[k].to_s]}" if Scoutui::Utils::TestUtils.instance.isDebug?
|
180
|
-
Scoutui::Base::UserVars.instance.set(k, ENV[@env_list[k].to_s])
|
181
|
-
end
|
182
|
-
end
|
183
|
-
|
184
|
-
puts __FILE__ + (__LINE__).to_s + " test_config => #{@options[:test_config]}" if Scoutui::Utils::TestUtils.instance.isDebug?
|
185
|
-
|
186
|
-
|
187
|
-
# Applitools Eyes settings
|
188
|
-
if @options[:test_config].has_key?('eyes')
|
189
|
-
|
190
|
-
['match_level', 'title', 'app', 'viewport'].each do |k|
|
191
|
-
|
192
|
-
_v=nil
|
193
|
-
|
194
|
-
if @options[:test_config]['eyes'].has_key?(k)
|
195
|
-
_v=@options[:test_config]['eyes'][k].to_s
|
196
|
-
end
|
197
|
-
|
198
|
-
if !@options[k.to_sym].nil?
|
199
|
-
_v=@options[k.to_sym].to_s
|
200
|
-
end
|
201
|
-
|
202
|
-
if Scoutui::Utils::TestUtils.instance.isDebug?
|
203
|
-
puts __FILE__ + (__LINE__).to_s + " #{k} => #{_v}"
|
204
|
-
end
|
205
|
-
|
206
|
-
Scoutui::Base::UserVars.instance.set('eyes.' + k, _v) if !_v.nil?
|
207
|
-
|
208
|
-
end
|
209
|
-
end
|
210
|
-
|
211
|
-
@options[:test_config]
|
212
|
-
end
|
213
|
-
|
214
|
-
|
215
|
-
def getTestConfig()
|
216
|
-
@options[:test_config]
|
217
|
-
end
|
218
|
-
|
219
|
-
def match_level()
|
220
|
-
@options[:match_level]
|
221
|
-
end
|
222
|
-
|
223
|
-
def getUserId()
|
224
|
-
@options[:userid]
|
225
|
-
end
|
226
|
-
|
227
|
-
def getUser()
|
228
|
-
getUserId()
|
229
|
-
end
|
230
|
-
|
231
|
-
def getPassword()
|
232
|
-
@options[:password]
|
233
|
-
end
|
234
|
-
|
235
|
-
def testFile()
|
236
|
-
@options[:test_file]
|
237
|
-
end
|
238
|
-
|
239
|
-
def host()
|
240
|
-
@options[:host]
|
241
|
-
end
|
242
|
-
|
243
|
-
def loc()
|
244
|
-
@options[:loc]
|
245
|
-
end
|
246
|
-
def localization()
|
247
|
-
loc()
|
248
|
-
end
|
249
|
-
|
250
|
-
def appName()
|
251
|
-
@options[:app].to_s
|
252
|
-
end
|
253
|
-
|
254
|
-
def title()
|
255
|
-
@options[:title]
|
256
|
-
end
|
257
|
-
|
258
|
-
end
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
end
|
data/lib/scoutui/version.rb
DELETED
data/lib/scoutui.rb
DELETED
data/scoutui.gemspec
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
3
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'scoutui/version'
|
5
|
-
|
6
|
-
Gem::Specification.new do |spec|
|
7
|
-
spec.name = "scoutui"
|
8
|
-
spec.version = Scoutui::VERSION
|
9
|
-
spec.authors = ["Peter Kim"]
|
10
|
-
spec.email = ["h20dragon@outlook.com"]
|
11
|
-
|
12
|
-
spec.summary = %q{Simple yet powerful navigation and browser snapshot framework.}
|
13
|
-
spec.description = %q{Leverage a navigation framework integrated with Applitool's Eyes for page/image capture capabilities - welcome to the world of Visual Testing!}
|
14
|
-
spec.homepage = "https://github.com/h20dragon"
|
15
|
-
spec.license = "MIT"
|
16
|
-
|
17
|
-
# Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
|
18
|
-
# delete this section to allow pushing this gem to any host.
|
19
|
-
|
20
|
-
|
21
|
-
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
22
|
-
spec.bindir = "exe"
|
23
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
24
|
-
spec.require_paths = ["lib"]
|
25
|
-
|
26
|
-
spec.add_development_dependency "bundler"
|
27
|
-
spec.add_development_dependency "rake"
|
28
|
-
spec.add_development_dependency "rspec"
|
29
|
-
spec.add_development_dependency "eyes_selenium"
|
30
|
-
spec.add_development_dependency "selenium-webdriver", ">= 2.47"
|
31
|
-
spec.add_development_dependency "httparty"
|
32
|
-
spec.add_development_dependency "json"
|
33
|
-
end
|