awetestlib 0.1.28-x86-mingw32 → 0.1.29pre3-x86-mingw32
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/README.md +8 -1
- data/awetestlib_osx.gemspec +1 -1
- data/lib/awetestlib/logging.rb +1 -1
- data/lib/awetestlib/regression/browser.rb +37 -30
- data/lib/awetestlib/regression/drag_and_drop.rb +4 -3
- data/lib/awetestlib/regression/tables.rb +17 -9
- data/lib/awetestlib/regression/user_input.rb +1 -1
- data/lib/awetestlib/regression/utilities.rb +69 -11
- data/lib/awetestlib/regression/validations.rb +84 -65
- data/lib/version.rb +2 -2
- data/test/demo_wwd.rb +7 -0
- metadata +46 -162
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
data.tar.gz: 46e7dc87c61d2287263ebcd1d01f86e7252bf8ef
|
4
|
+
metadata.gz: 8a25933b192650ddebf8282489bf8408c38ac024
|
5
|
+
SHA512:
|
6
|
+
data.tar.gz: 2bb1c9ddf6098832cfce5cf82b12ff5347d038edd5af2555212baf0587261017b28460ebb1da3e6a2cf2eab0ee35af77a1e1dc4fd9a75b7244587b01c0c3c37e
|
7
|
+
metadata.gz: 16b7fcebb9920d9ac6c4547546d99c48991c0029fe5c0706aba51c9af1f538b994d9901332e7afd81f2c8294d577355fa03b073a19ea8e34743ca0d2e710073c
|
data/README.md
CHANGED
@@ -5,6 +5,8 @@ Run automated regression and mobile tests
|
|
5
5
|
|
6
6
|
After completing this guide you will be able to run tests locally from command line or from an IDE
|
7
7
|
|
8
|
+
v0.1.29pre3 fixes an issue with running scripts against Safari on OSX
|
9
|
+
|
8
10
|
------------
|
9
11
|
|
10
12
|
## Prerequisites
|
@@ -44,7 +46,12 @@ Run the following command to see the different usages
|
|
44
46
|
|
45
47
|
### Setup Safari (Mac OS X only)
|
46
48
|
|
47
|
-
To setup support for Safari browser, please follow the instructions at [SafariDriver](http://code.google.com/p/selenium/wiki/SafariDriver)
|
49
|
+
To setup support for Safari browser, please follow the instructions at [SafariDriver](http://code.google.com/p/selenium/wiki/SafariDriver)
|
50
|
+
|
51
|
+
It is important to start a selenium-server-standalone process in a terminal session before running Safari scripts.
|
52
|
+
When using raw Watir-webdriver for Safari, open the browser with
|
53
|
+
|
54
|
+
browser = Watir::Browser.new(:remote, :desired_capabilities=>:'safari')
|
48
55
|
|
49
56
|
### Setup Chrome
|
50
57
|
To setup support for Google Chrome browser, please download the latest Chromedriver version from [here](http://code.google.com/p/chromedriver/downloads/list)
|
data/awetestlib_osx.gemspec
CHANGED
@@ -32,7 +32,7 @@ Gem::Specification.new do |s|
|
|
32
32
|
s.add_dependency('nokogiri')
|
33
33
|
s.add_dependency('i18n')
|
34
34
|
s.add_dependency('rb-appscript')
|
35
|
-
s.add_dependency('json', '1.6.1') #for safari support
|
35
|
+
#s.add_dependency('json', '1.6.1') #for safari support
|
36
36
|
s.add_dependency('pry')
|
37
37
|
s.add_dependency('cucumber')
|
38
38
|
s.add_dependency('calabash-cucumber')
|
data/lib/awetestlib/logging.rb
CHANGED
@@ -126,7 +126,7 @@ module Awetestlib
|
|
126
126
|
end
|
127
127
|
strg << " #{message}" if message.length > 0
|
128
128
|
strg << " (#{desc})" if desc.length > 0
|
129
|
-
strg << " [#{call_line}]"
|
129
|
+
strg << " [#{call_line}]" if dbg or @debug_calls
|
130
130
|
strg << "\n#{list.to_yaml}" if dbg or @debug_calls
|
131
131
|
@report_class.add_to_report(strg, " ", lvl || 1) unless Awetestlib::Runner.nil?
|
132
132
|
log_message(INFO, strg, lvl, nil, 1)
|
@@ -40,6 +40,7 @@ module Awetestlib
|
|
40
40
|
|
41
41
|
# Open a browser based on the command line parameters that identify the browser and
|
42
42
|
# version to use for the test.
|
43
|
+
# @note Safari currently supported only on Mac OS X
|
43
44
|
# @example
|
44
45
|
# browser = open_browser('www.google.com')
|
45
46
|
# @param [String, Regexp] url When provided, the browser will go to this url.
|
@@ -53,10 +54,13 @@ module Awetestlib
|
|
53
54
|
@myHwnd = @myBrowser.hwnd
|
54
55
|
end
|
55
56
|
when 'FF'
|
56
|
-
@myBrowser =
|
57
|
+
@myBrowser = open_ff
|
57
58
|
when 'S'
|
58
|
-
|
59
|
-
|
59
|
+
if USING_OSX
|
60
|
+
@myBrowser = open_safari
|
61
|
+
else
|
62
|
+
raise "Safari is not supported under this operating system #{RUBY_PLATFORM}"
|
63
|
+
end
|
60
64
|
when 'C', 'GC'
|
61
65
|
@myBrowser = open_chrome
|
62
66
|
else
|
@@ -82,18 +86,16 @@ module Awetestlib
|
|
82
86
|
browser
|
83
87
|
end
|
84
88
|
|
85
|
-
# Open
|
86
|
-
# @
|
87
|
-
# @return [Watir::Browser
|
88
|
-
|
89
|
-
|
90
|
-
browser = Watir::Browser.new :firefox
|
89
|
+
# Open Safari browser instance.
|
90
|
+
# @note Safari currently supported only on Mac OS X
|
91
|
+
# @return [Watir::Browser]
|
92
|
+
def open_safari
|
93
|
+
browser = Watir::Browser.new(:remote, :desired_capabilities=>:'safari')
|
91
94
|
end
|
92
95
|
|
93
96
|
# Open FF (Firefox) browser instance under FireWatir.
|
94
|
-
# @return [
|
97
|
+
# @return [Watir::Browser]
|
95
98
|
def open_ff
|
96
|
-
# Watir::Browser.default = 'firefox'
|
97
99
|
browser = Watir::Browser.new :firefox
|
98
100
|
end
|
99
101
|
|
@@ -502,17 +504,18 @@ module Awetestlib
|
|
502
504
|
end
|
503
505
|
|
504
506
|
# Closes main browser session. Misnamed. Usually used at end of script to shut down browser.
|
505
|
-
def
|
507
|
+
def close_browser(browser, where = @myName, lnbr = __LINE__)
|
506
508
|
#TODO Firewatir 1.6.5 does not implement .exists for FireWatir::Firefox class
|
507
509
|
debug_to_log("Logging out in #{where} at line #{lnbr}.", lnbr, true)
|
508
510
|
debug_to_log("#{__method__}: browser: #{browser.inspect} (#{__LINE__})")
|
509
511
|
|
512
|
+
url = browser.url
|
513
|
+
title = browser.title
|
514
|
+
|
510
515
|
if ['FF', 'S'].include?(@browserAbbrev) || browser.exists?
|
511
516
|
case @browserAbbrev
|
512
517
|
when 'FF'
|
513
518
|
if is_browser?(browser)
|
514
|
-
url = browser.url
|
515
|
-
title = browser.title
|
516
519
|
debug_to_log("#{__method__}: Firefox browser url: [#{url}]")
|
517
520
|
debug_to_log("#{__method__}: Firefox browser title: [#{title}]")
|
518
521
|
debug_to_log("#{__method__}: Closing browser: #{where} (#{lnbr})")
|
@@ -525,16 +528,23 @@ module Awetestlib
|
|
525
528
|
|
526
529
|
end
|
527
530
|
when 'IE'
|
528
|
-
|
529
|
-
|
530
|
-
debug_to_log("#{__method__}: Closing browser:
|
531
|
-
|
532
|
-
|
533
|
-
|
531
|
+
debug_to_log("#{__method__}: Internet Explorer browser url: [#{url}]")
|
532
|
+
debug_to_log("#{__method__}: Internet Explorer browser title: [#{title}]")
|
533
|
+
debug_to_log("#{__method__}: Closing browser: #{where} (#{lnbr})")
|
534
|
+
if $watir_script
|
535
|
+
hwnd = browser.hwnd
|
536
|
+
pid = Watir::IE::Process.process_id_from_hwnd(hwnd)
|
537
|
+
debug_to_log("#{__method__}: Closing browser: hwnd #{hwnd} pid #{pid} #{where} (#{lnbr}) (#{__LINE__})")
|
538
|
+
browser.close
|
539
|
+
if browser.exists? and pid > 0 and pid < 538976288 # value of uninitialized memory location
|
540
|
+
debug_to_log("Retry close browser: hwnd #{hwnd} pid #{pid} #{where} #{lnbr} (#{__LINE__})")
|
541
|
+
browser.close
|
542
|
+
end
|
543
|
+
if browser.exists? and pid > 0 and pid < 538976288 # value of uninitialized memory location
|
544
|
+
kill_browser(browser.hwnd, __LINE__, browser)
|
545
|
+
end
|
546
|
+
else
|
534
547
|
browser.close
|
535
|
-
end
|
536
|
-
if browser.exists? and pid > 0 and pid < 538976288 # value of uninitialized memory location
|
537
|
-
kill_browser(browser.hwnd, __LINE__, browser)
|
538
548
|
end
|
539
549
|
when 'S'
|
540
550
|
if is_browser?(browser)
|
@@ -555,9 +565,6 @@ module Awetestlib
|
|
555
565
|
debug_to_log("Closing browser: #{where} (#{lnbr})")
|
556
566
|
if url and url.length > 1
|
557
567
|
browser.close
|
558
|
-
#else
|
559
|
-
#browser = FireWatir::Firefox.attach(:title, title)
|
560
|
-
#browser.close
|
561
568
|
end
|
562
569
|
|
563
570
|
end
|
@@ -565,12 +572,12 @@ module Awetestlib
|
|
565
572
|
raise "Unsupported browser: '#{@browserAbbrev}'"
|
566
573
|
end
|
567
574
|
end
|
568
|
-
|
569
|
-
|
570
|
-
# raise e
|
571
|
-
# end
|
575
|
+
rescue
|
576
|
+
failed_to_log(unable_to)
|
572
577
|
end
|
573
578
|
|
579
|
+
alias logout close_browser
|
580
|
+
|
574
581
|
# Close a browser popup window. Does not apply to modal popups.
|
575
582
|
# @param [Watir::Browser] popup Reference to the popup to be closed
|
576
583
|
def close_new_window_popup(popup)
|
@@ -2,7 +2,7 @@ module Awetestlib
|
|
2
2
|
module Regression
|
3
3
|
# Methods for moving and resizing elements, manipulating the mouse, and checking for relative positioning of elements,
|
4
4
|
# including overlap, overlay, etc.
|
5
|
-
# @note Still experimental. Works with IE but not fully tested with Firefox or Chrome in Windows.
|
5
|
+
# @note Still experimental. Works with IE but not fully tested with Firefox or Chrome in Windows using Watir-webdriver.
|
6
6
|
# Not compatible with Mac
|
7
7
|
# Rdoc is work in progress
|
8
8
|
module DragAndDrop
|
@@ -284,8 +284,9 @@ module Awetestlib
|
|
284
284
|
[x, y, w, h]
|
285
285
|
end
|
286
286
|
|
287
|
-
def
|
287
|
+
def drag_and_drop_div(browser, how, what, delta_x, delta_y, desc = '')
|
288
288
|
#TODO: webdriver
|
289
|
+
#TODO: assumes element is div
|
289
290
|
msg = "Drag and drop element :#{how}=>#{what} by x=>#{delta_x} y=>#{delta_y}."
|
290
291
|
msg << " #{desc}" if desc.length > 0
|
291
292
|
drag_me = browser.div(how, what)
|
@@ -293,7 +294,7 @@ module Awetestlib
|
|
293
294
|
passed_to_log(msg)
|
294
295
|
true
|
295
296
|
rescue
|
296
|
-
failed_to_log(
|
297
|
+
failed_to_log(unable_to)
|
297
298
|
end
|
298
299
|
|
299
300
|
def drag_and_drop(x1, y1, dx, dy, speed=nil)
|
@@ -112,8 +112,10 @@ module Awetestlib
|
|
112
112
|
# @param [Fixnum] column_index A number indicating which rows the column to focus the search in.
|
113
113
|
# When not supplied, the entire row is searched for *strg*.
|
114
114
|
# @param [Boolean] fail_if_found If true log a failure if *strg* _is_ found.
|
115
|
+
# @param [Fixnum] after_index Forces method to accept hit on *strg* only if it occurs
|
116
|
+
# after the row indicated by this argument. When omitted, the first hit is accepted.
|
115
117
|
# @return [Fixnum] the index of the row containing *strg*
|
116
|
-
def get_index_of_row_with_text(table, strg, column_index = nil, fail_if_found = false)
|
118
|
+
def get_index_of_row_with_text(table, strg, column_index = nil, fail_if_found = false, after_index = nil)
|
117
119
|
debug_to_log("#{__method__}: #{get_callers(5)}")
|
118
120
|
if fail_if_found
|
119
121
|
msg = 'No '
|
@@ -140,8 +142,13 @@ module Awetestlib
|
|
140
142
|
end
|
141
143
|
dbg << "\n#{index}. [#{text}]"
|
142
144
|
if text =~ /#{strg}/
|
143
|
-
|
144
|
-
|
145
|
+
if after_index and index > after_index
|
146
|
+
found = true
|
147
|
+
break
|
148
|
+
else
|
149
|
+
found = true
|
150
|
+
break
|
151
|
+
end
|
145
152
|
end
|
146
153
|
end
|
147
154
|
debug_to_log(dbg)
|
@@ -329,17 +336,18 @@ module Awetestlib
|
|
329
336
|
hit
|
330
337
|
end
|
331
338
|
|
332
|
-
def fetch_array_for_table_column(
|
333
|
-
ary
|
334
|
-
|
339
|
+
def fetch_array_for_table_column(table, column_index, start_row = 2)
|
340
|
+
ary = []
|
341
|
+
row_count = 0
|
342
|
+
table.each do |row|
|
343
|
+
row_count += 1
|
335
344
|
if get_cell_count(row) >= column_index
|
336
|
-
|
337
|
-
if row[1].text =~ /\d+/
|
345
|
+
if row_count >= start_row
|
338
346
|
ary << row[column_index].text
|
339
347
|
end
|
340
348
|
end
|
341
349
|
end
|
342
|
-
|
350
|
+
ary
|
343
351
|
end
|
344
352
|
|
345
353
|
def fetch_hash_for_table_column(table, column_index, start_row = 2)
|
@@ -487,7 +487,7 @@ module Awetestlib
|
|
487
487
|
# @param [String] desc Contains a message or description intended to appear in the log and/or report output. Required in this method.
|
488
488
|
# @param [String] valid_value The expected value of the text field, e.g., following reformatting.
|
489
489
|
# @return (see #click)
|
490
|
-
def set_text_field_and_validate(browser, how, what, value,
|
490
|
+
def set_text_field_and_validate(browser, how, what, value, valid_value = nil, desc ='')
|
491
491
|
#NOTE: use when value and valid_value differ as with dollar reformatting
|
492
492
|
if set_text_field(browser, how, what, value, desc, true)
|
493
493
|
expected = valid_value ? valid_value : value
|
@@ -59,6 +59,31 @@ module Awetestlib
|
|
59
59
|
msg
|
60
60
|
end
|
61
61
|
|
62
|
+
def get_date_names(date = Date.today)
|
63
|
+
this_month = date.month
|
64
|
+
if this_month == 12
|
65
|
+
next_month = 1
|
66
|
+
else
|
67
|
+
next_month = this_month + 1
|
68
|
+
end
|
69
|
+
if this_month == 1
|
70
|
+
prev_month = 12
|
71
|
+
else
|
72
|
+
prev_month = this_month - 1
|
73
|
+
end
|
74
|
+
|
75
|
+
month_arr = ['', 'January', 'February', 'March', 'April', 'May', 'June',
|
76
|
+
'July', 'August', 'September', 'October', 'November', 'December']
|
77
|
+
|
78
|
+
this_month_name = month_arr[this_month]
|
79
|
+
next_month_name = month_arr[next_month]
|
80
|
+
prev_month_name = month_arr[prev_month]
|
81
|
+
|
82
|
+
arr = [date.year, date.day, this_month_name, next_month_name, prev_month_name]
|
83
|
+
debug_to_log("#{__method__} #{nice_array(arr)}")
|
84
|
+
arr
|
85
|
+
end
|
86
|
+
|
62
87
|
def get_trace(lnbr)
|
63
88
|
callertrace = "\nCaller trace: (#{lnbr})\n"
|
64
89
|
Kernel.caller.each_index do |x|
|
@@ -286,14 +311,41 @@ module Awetestlib
|
|
286
311
|
else
|
287
312
|
new_arr = arr
|
288
313
|
end
|
289
|
-
"['#{new_arr.join("','")}']"
|
314
|
+
"['#{new_arr.join("', '")}']"
|
315
|
+
end
|
316
|
+
|
317
|
+
def nice_number(number, decimals = 0, dollars = false)
|
318
|
+
number.to_s.gsub!(/[,\$]/, '')
|
319
|
+
ptrn = "%0.#{decimals}f"
|
320
|
+
ptrn = '$' + ptrn if dollars
|
321
|
+
sprintf(ptrn, number).gsub(/(\d)(?=(\d\d\d)+(?!\d))/, "\\1,")
|
290
322
|
end
|
291
323
|
|
324
|
+
def pad_date(dt)
|
325
|
+
if dt and dt.length > 0
|
326
|
+
a, d1, b, d2, c = dt.split(/([\/\.-])/)
|
327
|
+
a = a.rjust(2, '0') unless a and a.length > 1
|
328
|
+
b = b.rjust(2, '0') unless b and b.length > 1
|
329
|
+
c = c.rjust(2, '0') unless c and c.length > 1
|
330
|
+
a + d1 + b + d2 + c
|
331
|
+
else
|
332
|
+
''
|
333
|
+
end
|
334
|
+
end
|
335
|
+
|
292
336
|
def string_count_in_string(strg, substrg)
|
293
337
|
count = strg.scan(substrg).length
|
294
338
|
count
|
295
339
|
end
|
296
340
|
|
341
|
+
def strip_regex_mix(strg)
|
342
|
+
rslt = strg.dup
|
343
|
+
while match = rslt.match(/(\(\?-mix:(.+)\))/)
|
344
|
+
rslt.sub!(match[1], "/#{match[2]}/")
|
345
|
+
end
|
346
|
+
rslt
|
347
|
+
end
|
348
|
+
|
297
349
|
def rescue_me(e, me = nil, what = nil, where = nil, who = nil)
|
298
350
|
#TODO: these are rescues from exceptions raised in Watir/Firewatir
|
299
351
|
debug_to_log("#{__method__}: Begin rescue")
|
@@ -834,14 +886,10 @@ module Awetestlib
|
|
834
886
|
#method for handling file upload dialog
|
835
887
|
#use click_no_wait on the action that triggers the save dialog
|
836
888
|
# TODO need version for Firefox
|
837
|
-
def file_upload(filepath
|
838
|
-
|
839
|
-
title
|
840
|
-
text
|
841
|
-
button = "&Open"
|
842
|
-
control = "Edit1"
|
843
|
-
side = 'primary'
|
844
|
-
msg = "Window title=#{title} button='#{button}' text='#{text}' side='#{side}':"
|
889
|
+
def file_upload(filepath, title = 'Choose File', text = '', button = '&Open',
|
890
|
+
control = 'Edit1', side = 'primary')
|
891
|
+
title = translate_popup_title(title)
|
892
|
+
msg = "Window title=#{title} button='#{button}' text='#{text}' side='#{side}':"
|
845
893
|
begin
|
846
894
|
if @ai.WinWait(title, text, WAIT)
|
847
895
|
passed_to_log("#{msg} found.")
|
@@ -852,7 +900,10 @@ module Awetestlib
|
|
852
900
|
passed_to_log("#{msg} #{control} command sent.")
|
853
901
|
sleep_for 1
|
854
902
|
if @ai.ControlClick(title, text, button, "primary")
|
903
|
+
|
855
904
|
passed_to_log("#{msg} Upload of #{filepath} succeeded.")
|
905
|
+
|
906
|
+
|
856
907
|
else
|
857
908
|
failed_to_log("#{msg} Upload of #{filepath} failed. (#{__LINE__})")
|
858
909
|
end
|
@@ -938,10 +989,12 @@ module Awetestlib
|
|
938
989
|
debug_to_log("#{__method__}: #{method} #{$!}")
|
939
990
|
end
|
940
991
|
|
941
|
-
def unable_to(message = '', no_dolbang = false)
|
992
|
+
def unable_to(message = '', no_dolbang = false, verify_that = false)
|
942
993
|
call_arr = get_call_array()
|
943
994
|
call_script, call_line, call_meth = parse_caller(call_arr[1])
|
944
|
-
strg = "Unable to
|
995
|
+
strg = "Unable to"
|
996
|
+
strg << " verify" if verify_that
|
997
|
+
strg << " #{call_meth.titleize}:"
|
945
998
|
strg << " #{message}" if message.length > 0
|
946
999
|
strg << " '#{$!}'" unless no_dolbang
|
947
1000
|
strg
|
@@ -982,6 +1035,11 @@ module Awetestlib
|
|
982
1035
|
[arr.length, arr]
|
983
1036
|
end
|
984
1037
|
|
1038
|
+
def awetestlib?
|
1039
|
+
not Awetestlib::Runner.nil?
|
1040
|
+
rescue
|
1041
|
+
return false
|
1042
|
+
end
|
985
1043
|
|
986
1044
|
end
|
987
1045
|
end
|
@@ -23,18 +23,18 @@ module Awetestlib
|
|
23
23
|
msg = build_message("Expected Style #{type} value '#{expected}' in #{element} with #{how} = #{what}", desc)
|
24
24
|
case element
|
25
25
|
when :link
|
26
|
-
actual = browser.link(how
|
26
|
+
actual = browser.link(how, what).style type
|
27
27
|
when :button
|
28
|
-
actual = browser.button(how
|
28
|
+
actual = browser.button(how, what).style type
|
29
29
|
when :image
|
30
|
-
actual = browser.image(how
|
30
|
+
actual = browser.image(how, what).style type
|
31
31
|
when :span
|
32
|
-
actual = browser.span(how
|
32
|
+
actual = browser.span(how, what).style type
|
33
33
|
when :div
|
34
|
-
actual = browser.div(how
|
34
|
+
actual = browser.div(how, what).style type
|
35
35
|
else
|
36
|
-
if browser.element(how
|
37
|
-
actual = browser.element(how
|
36
|
+
if browser.element(how, what).responds_to?("style")
|
37
|
+
actual = browser.element(how, what).style type
|
38
38
|
else
|
39
39
|
failed_to_log("#{msg}: Element #{element} does not repond to style command.")
|
40
40
|
end
|
@@ -46,23 +46,23 @@ module Awetestlib
|
|
46
46
|
failed_to_log(msg)
|
47
47
|
end
|
48
48
|
rescue
|
49
|
-
failed_to_log(
|
49
|
+
failed_to_log(unable_to(msg, false, true))
|
50
50
|
end
|
51
51
|
|
52
52
|
def validate_style_greater_than_value(browser, element, how, what, type, value, desc = '')
|
53
53
|
case element
|
54
54
|
when :link
|
55
|
-
actual_value = browser.link(how
|
55
|
+
actual_value = browser.link(how, what).style type
|
56
56
|
when :button
|
57
|
-
actual_value = browser.button(how
|
57
|
+
actual_value = browser.button(how, what).style type
|
58
58
|
when :image
|
59
|
-
actual_value = browser.image(how
|
59
|
+
actual_value = browser.image(how, what).style type
|
60
60
|
when :span
|
61
|
-
actual_value = browser.span(how
|
61
|
+
actual_value = browser.span(how, what).style type
|
62
62
|
when :div
|
63
|
-
actual_value = browser.div(how
|
63
|
+
actual_value = browser.div(how, what).style type
|
64
64
|
else
|
65
|
-
actual_value = browser.element(how
|
65
|
+
actual_value = browser.element(how, what).style type
|
66
66
|
end
|
67
67
|
msg = build_message("The CSS value for style #{type} in #{element} :#{how}=>#{what}: '#{actual_value}' is greater than #{value}.", desc)
|
68
68
|
|
@@ -74,7 +74,7 @@ module Awetestlib
|
|
74
74
|
failed_to_log(msg)
|
75
75
|
end
|
76
76
|
rescue
|
77
|
-
|
77
|
+
failed_to_log(unable_to(msg, false, true))
|
78
78
|
# sleep_for(1)
|
79
79
|
end
|
80
80
|
|
@@ -83,17 +83,17 @@ module Awetestlib
|
|
83
83
|
def validate_style_less_than_value(browser, element, how, what, type, value, desc = '')
|
84
84
|
case element
|
85
85
|
when :link
|
86
|
-
actual_value = browser.link(how
|
86
|
+
actual_value = browser.link(how, what).style type
|
87
87
|
when :button
|
88
|
-
actual_value = browser.button(how
|
88
|
+
actual_value = browser.button(how, what).style type
|
89
89
|
when :image
|
90
|
-
actual_value = browser.image(how
|
90
|
+
actual_value = browser.image(how, what).style type
|
91
91
|
when :span
|
92
|
-
actual_value = browser.span(how
|
92
|
+
actual_value = browser.span(how, what).style type
|
93
93
|
when :div
|
94
|
-
actual_value = browser.div(how
|
94
|
+
actual_value = browser.div(how, what).style type
|
95
95
|
else
|
96
|
-
actual_value = browser.element(how
|
96
|
+
actual_value = browser.element(how, what).style type
|
97
97
|
end
|
98
98
|
msg = build_message("The CSS value for style #{type} in #{element} :#{how}=>#{what}: '#{actual_value}' is greater than #{value}.", desc)
|
99
99
|
|
@@ -105,7 +105,7 @@ module Awetestlib
|
|
105
105
|
failed_to_log(msg)
|
106
106
|
end
|
107
107
|
rescue
|
108
|
-
|
108
|
+
failed_to_log(unable_to(msg, false, true))
|
109
109
|
# sleep_for(1)
|
110
110
|
end
|
111
111
|
|
@@ -155,7 +155,7 @@ module Awetestlib
|
|
155
155
|
end
|
156
156
|
rtrn
|
157
157
|
rescue
|
158
|
-
failed_to_log(
|
158
|
+
failed_to_log(unable_to(msg, false, true))
|
159
159
|
end
|
160
160
|
|
161
161
|
alias validate_enabled enabled?
|
@@ -189,7 +189,7 @@ module Awetestlib
|
|
189
189
|
end
|
190
190
|
rtrn
|
191
191
|
rescue
|
192
|
-
failed_to_log(
|
192
|
+
failed_to_log(unable_to(msg, false, true))
|
193
193
|
end
|
194
194
|
|
195
195
|
alias validate_not_enabled disabled?
|
@@ -220,7 +220,7 @@ module Awetestlib
|
|
220
220
|
end
|
221
221
|
rtrn
|
222
222
|
rescue
|
223
|
-
failed_to_log(
|
223
|
+
failed_to_log(unable_to(msg, false, true))
|
224
224
|
end
|
225
225
|
|
226
226
|
alias validate_visible visible?
|
@@ -250,7 +250,7 @@ module Awetestlib
|
|
250
250
|
end
|
251
251
|
rtrn
|
252
252
|
rescue
|
253
|
-
failed_to_log(
|
253
|
+
failed_to_log(unable_to(msg, false, true))
|
254
254
|
end
|
255
255
|
|
256
256
|
alias validate_not_visible not_visible?
|
@@ -273,7 +273,7 @@ module Awetestlib
|
|
273
273
|
failed_to_log(msg)
|
274
274
|
end
|
275
275
|
rescue
|
276
|
-
failed_to_log(
|
276
|
+
failed_to_log(unable_to(msg, false, true))
|
277
277
|
end
|
278
278
|
|
279
279
|
alias checkbox_checked? checked?
|
@@ -292,7 +292,7 @@ module Awetestlib
|
|
292
292
|
failed_to_log(msg)
|
293
293
|
end
|
294
294
|
rescue
|
295
|
-
failed_to_log(
|
295
|
+
failed_to_log(unable_to(msg, false, true))
|
296
296
|
end
|
297
297
|
|
298
298
|
alias checkbox_checked? checked?
|
@@ -323,7 +323,7 @@ module Awetestlib
|
|
323
323
|
failed_to_log("#{msg}? #{desc} [#{get_callers(1)}]")
|
324
324
|
end
|
325
325
|
rescue
|
326
|
-
failed_to_log(
|
326
|
+
failed_to_log(unable_to(msg, false, true))
|
327
327
|
end
|
328
328
|
|
329
329
|
# Verify that a DOM element does not exist on the page.
|
@@ -345,7 +345,7 @@ module Awetestlib
|
|
345
345
|
true
|
346
346
|
end
|
347
347
|
rescue
|
348
|
-
failed_to_log(
|
348
|
+
failed_to_log(unable_to(msg, false, true))
|
349
349
|
end
|
350
350
|
|
351
351
|
alias not_exist? does_not_exist?
|
@@ -355,19 +355,19 @@ module Awetestlib
|
|
355
355
|
# @return [Boolean] Returns true if the radio button is set.
|
356
356
|
def set?(browser, how, what, desc = '', no_fail = false)
|
357
357
|
#TODO: handle identification of element with value as well as other attribute. see radio_with_value_set?
|
358
|
-
msg = build_message("Radio #{how}=>#{what} is
|
358
|
+
msg = build_message("Radio #{how}=>#{what} is set.", desc)
|
359
359
|
if browser.radio(how, what).set?
|
360
360
|
passed_to_log(msg)
|
361
361
|
true
|
362
362
|
else
|
363
363
|
if no_fail
|
364
|
-
passed_to_log("
|
364
|
+
passed_to_log("#{msg}. (Fail suppressed)")
|
365
365
|
else
|
366
366
|
failed_to_log(msg)
|
367
367
|
end
|
368
368
|
end
|
369
369
|
rescue
|
370
|
-
failed_to_log(
|
370
|
+
failed_to_log(unable_to(msg, false, true))
|
371
371
|
end
|
372
372
|
|
373
373
|
alias radio_set? set?
|
@@ -379,19 +379,19 @@ module Awetestlib
|
|
379
379
|
# @return [Boolean] Returns true if the radio button is not set.
|
380
380
|
def not_set?(browser, how, what, desc = '', no_fail = false)
|
381
381
|
#TODO: handle identification of element with value as well as other attribute. see radio_with_value_set?
|
382
|
-
msg = build_message("Radio #{how}=>#{what} is not
|
382
|
+
msg = build_message("Radio #{how}=>#{what} is not set.", desc)
|
383
383
|
if not browser.radio(how, what).set?
|
384
384
|
passed_to_log(msg)
|
385
385
|
true
|
386
386
|
else
|
387
387
|
if no_fail
|
388
|
-
passed_to_log("
|
388
|
+
passed_to_log("#{msg} (Fail suppressed")
|
389
389
|
else
|
390
390
|
failed_to_log(msg)
|
391
391
|
end
|
392
392
|
end
|
393
393
|
rescue
|
394
|
-
failed_to_log(
|
394
|
+
failed_to_log(unable_to(msg, false, true))
|
395
395
|
end
|
396
396
|
|
397
397
|
alias radio_not_set? not_set?
|
@@ -491,7 +491,7 @@ module Awetestlib
|
|
491
491
|
failed_to_log("#{msg}")
|
492
492
|
end
|
493
493
|
rescue
|
494
|
-
failed_to_log("Unable to #{msg}. #{$!}")
|
494
|
+
failed_to_log("Unable to verify #{msg}. #{$!}")
|
495
495
|
end
|
496
496
|
|
497
497
|
alias validate_string_equal string_equals?
|
@@ -584,6 +584,7 @@ module Awetestlib
|
|
584
584
|
# Verify that a DOM element is ready, i.e., both exists and is enabled.
|
585
585
|
# @param (see #exists?)
|
586
586
|
# @return [Boolean] Returns true if the element is ready.
|
587
|
+
#TODO: Watir-webdriver support
|
587
588
|
def ready?(browser, element, how, what, value = '', desc = '')
|
588
589
|
msg2 = "and value=>'#{value}' " if value
|
589
590
|
msg = build_message("#{element.to_s.titlecase} with #{how}=>'#{what}' ", msg2, 'exists and is enabled.', desc)
|
@@ -632,7 +633,7 @@ module Awetestlib
|
|
632
633
|
end
|
633
634
|
end
|
634
635
|
rescue
|
635
|
-
failed_to_log(
|
636
|
+
failed_to_log(unable_to)
|
636
637
|
end
|
637
638
|
|
638
639
|
alias validate_textfield_value textfield_equals?
|
@@ -657,7 +658,7 @@ module Awetestlib
|
|
657
658
|
failed_to_log("#{msg} Contents: '#{contents}'")
|
658
659
|
end
|
659
660
|
rescue
|
660
|
-
failed_to_log(
|
661
|
+
failed_to_log(unable_to)
|
661
662
|
end
|
662
663
|
|
663
664
|
# Verify that a text field (also text area), identified by *how* and *what*, is empty.
|
@@ -679,7 +680,7 @@ module Awetestlib
|
|
679
680
|
failed_to_log("#{msg} Contents: '#{contents}'")
|
680
681
|
end
|
681
682
|
rescue
|
682
|
-
failed_to_log(
|
683
|
+
failed_to_log(unable_to)
|
683
684
|
end
|
684
685
|
|
685
686
|
alias validate_textfield_empty textfield_empty?
|
@@ -721,7 +722,7 @@ module Awetestlib
|
|
721
722
|
failed_to_log("#{msg} Actual: #{browser.url}")
|
722
723
|
end
|
723
724
|
rescue
|
724
|
-
failed_to_log(
|
725
|
+
failed_to_log(unable_to)
|
725
726
|
end
|
726
727
|
|
727
728
|
# @!endgroup Core
|
@@ -766,7 +767,7 @@ module Awetestlib
|
|
766
767
|
failed_to_log(msg)
|
767
768
|
end
|
768
769
|
rescue
|
769
|
-
failed_to_log(
|
770
|
+
failed_to_log(unable_to)
|
770
771
|
end
|
771
772
|
|
772
773
|
alias popup_exist popup_is_browser?
|
@@ -819,19 +820,18 @@ module Awetestlib
|
|
819
820
|
myText = browser.text
|
820
821
|
end
|
821
822
|
if myText.match(target)
|
822
|
-
#if myText.match(ptrn)
|
823
823
|
passed_to_log("#{msg}")
|
824
824
|
true
|
825
825
|
else
|
826
826
|
if skip_fail
|
827
|
-
debug_to_log("#{cls}
|
827
|
+
debug_to_log("#{cls} text does not contain the text: '#{ptrn}'. #{desc} (Fail suppressed)")
|
828
828
|
else
|
829
829
|
failed_to_log("#{msg}")
|
830
830
|
end
|
831
831
|
#debug_to_log("\n#{myText}")
|
832
832
|
end
|
833
833
|
rescue
|
834
|
-
failed_to_log(
|
834
|
+
failed_to_log(unable_to)
|
835
835
|
end
|
836
836
|
|
837
837
|
alias validate_link validate_text
|
@@ -852,16 +852,16 @@ module Awetestlib
|
|
852
852
|
end
|
853
853
|
end
|
854
854
|
rescue
|
855
|
-
failed_to_log(
|
855
|
+
failed_to_log(unable_to)
|
856
856
|
end
|
857
857
|
|
858
858
|
def element_contains_text?(browser, element, how, what, expected, desc = '')
|
859
859
|
msg = build_message("Element #{element} :{how}=>#{what} contains text '#{expected}'.", desc)
|
860
860
|
case how
|
861
861
|
when :href
|
862
|
-
who = browser.element(how, what)
|
863
|
-
else
|
864
862
|
who = browser.link(how, what)
|
863
|
+
else
|
864
|
+
who = browser.element(how, what)
|
865
865
|
end
|
866
866
|
if who
|
867
867
|
text = who.text
|
@@ -887,22 +887,26 @@ module Awetestlib
|
|
887
887
|
end
|
888
888
|
end
|
889
889
|
rescue
|
890
|
-
failed_to_log(
|
890
|
+
failed_to_log(unable_to)
|
891
891
|
end
|
892
892
|
|
893
|
-
def validate_select_list(browser, how, what, opt_type, list = nil, multiple = false, ignore = ['Select One'], limit = 5)
|
894
|
-
mark_testlevel("
|
893
|
+
def validate_select_list(browser, how, what, opt_type, list = nil, desc= '', multiple = false, ignore = ['Select One'], limit = 5)
|
894
|
+
mark_testlevel("(#{how}=>#{what})")
|
895
|
+
msg = "Select list #{how}=>#{what}"
|
895
896
|
ok = true
|
896
897
|
select_list = browser.select_list(how, what)
|
897
898
|
options = select_list.options
|
898
899
|
if list
|
899
900
|
if options == list
|
900
|
-
passed_to_log("
|
901
|
+
passed_to_log(build_message(msg, ": options list equals expected list #{list}"))
|
901
902
|
else
|
902
903
|
debug_to_report("actual:\n#{nice_array(options, true)}")
|
903
904
|
debug_to_report("expected:\n#{nice_array(list, true)}")
|
904
|
-
failed_to_log(
|
905
|
+
failed_to_log(build_message(
|
906
|
+
msg,
|
907
|
+
": options list #{nice_array(options, true)}",
|
905
908
|
"does not equal expected list #{nice_array(list, true)}")
|
909
|
+
)
|
906
910
|
end
|
907
911
|
end
|
908
912
|
|
@@ -926,34 +930,36 @@ module Awetestlib
|
|
926
930
|
select_option(select_list, opt_type, options[1])
|
927
931
|
select_option(select_list, opt_type, options[2])
|
928
932
|
selected = select_list.selected_options
|
933
|
+
msg1 = "#{msg}: selected options equals expected #{nice_array(targets)}."
|
929
934
|
if selected == targets
|
930
|
-
passed_to_log(
|
935
|
+
passed_to_log(msg1)
|
931
936
|
else
|
932
|
-
failed_to_log("
|
937
|
+
failed_to_log("#{msg} Found #{nice_array(selected)}")
|
933
938
|
end
|
934
939
|
else
|
935
|
-
debug_to_log("Too few options to test multiple selection (need 2 or more): '#{options}"
|
940
|
+
debug_to_log("#{msg}: Too few options to test multiple selection (need 2 or more): '#{options}")
|
936
941
|
end
|
937
942
|
end
|
938
943
|
rescue
|
939
|
-
failed_to_log(
|
944
|
+
failed_to_log(unable_to)
|
940
945
|
end
|
941
946
|
|
942
|
-
def validate_select_list_contents(browser, how, what, list)
|
943
|
-
mark_testlevel("#{
|
947
|
+
def validate_select_list_contents(browser, how, what, list, desc = '')
|
948
|
+
mark_testlevel("#{how}=>#{what}", 2)
|
949
|
+
msg = build_message("Select list #{how}=>#{what} options list equals", nice_array(list), desc)
|
944
950
|
select_list = browser.select_list(how, what)
|
945
951
|
options = select_list.options
|
946
952
|
if list
|
947
953
|
if options == list
|
948
|
-
passed_to_log(
|
954
|
+
passed_to_log(msg)
|
949
955
|
options
|
950
956
|
else
|
951
|
-
failed_to_log("
|
957
|
+
failed_to_log("#{msg}. Found #{nice_array(options)}")
|
952
958
|
nil
|
953
959
|
end
|
954
960
|
end
|
955
961
|
rescue
|
956
|
-
failed_to_log(
|
962
|
+
failed_to_log(unable_to)
|
957
963
|
end
|
958
964
|
|
959
965
|
def validate_selected_options(browser, how, what, list, desc = '')
|
@@ -984,7 +990,7 @@ module Awetestlib
|
|
984
990
|
end
|
985
991
|
|
986
992
|
rescue
|
987
|
-
failed_to_log(
|
993
|
+
failed_to_log(unable_to)
|
988
994
|
end
|
989
995
|
|
990
996
|
alias validate_selections validate_selected_options
|
@@ -1036,7 +1042,7 @@ module Awetestlib
|
|
1036
1042
|
true
|
1037
1043
|
end
|
1038
1044
|
rescue
|
1039
|
-
failed_to_log(
|
1045
|
+
failed_to_log(unable_to)
|
1040
1046
|
end
|
1041
1047
|
|
1042
1048
|
def textfield_does_not_equal?(browser, how, what, expected, desc = '')
|
@@ -1048,11 +1054,24 @@ module Awetestlib
|
|
1048
1054
|
failed_to_log(msg)
|
1049
1055
|
end
|
1050
1056
|
rescue
|
1051
|
-
failed_to_log(
|
1057
|
+
failed_to_log(unable_to)
|
1052
1058
|
end
|
1053
1059
|
|
1054
1060
|
alias validate_textfield_not_value textfield_does_not_equal?
|
1055
1061
|
|
1062
|
+
def verify_class(browser, element, how, what, strg, desc = '')
|
1063
|
+
msg = build_message("#{element} :#{how}=>#{what} :class contains '#{strg}'", desc)
|
1064
|
+
class_strg = browser.element(how, what).class_name
|
1065
|
+
if class_strg =~ /#{strg}/
|
1066
|
+
passed_to_log(msg)
|
1067
|
+
true
|
1068
|
+
else
|
1069
|
+
failed_to_log(msg)
|
1070
|
+
end
|
1071
|
+
rescue
|
1072
|
+
failed_to_log(unable_to)
|
1073
|
+
end
|
1074
|
+
|
1056
1075
|
# @!endgroup Core
|
1057
1076
|
|
1058
1077
|
# @!group Deprecated
|
data/lib/version.rb
CHANGED
data/test/demo_wwd.rb
ADDED
metadata
CHANGED
@@ -1,13 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awetestlib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 28
|
10
|
-
version: 0.1.28
|
4
|
+
version: 0.1.29pre3
|
11
5
|
platform: x86-mingw32
|
12
6
|
authors:
|
13
7
|
- Anthony Woo
|
@@ -16,19 +10,16 @@ autorequire:
|
|
16
10
|
bindir: bin
|
17
11
|
cert_chain: []
|
18
12
|
|
19
|
-
date: 2013-03-
|
13
|
+
date: 2013-03-26 00:00:00 Z
|
20
14
|
dependencies:
|
21
15
|
- !ruby/object:Gem::Dependency
|
22
16
|
name: watir-webdriver
|
23
17
|
prerelease: false
|
24
18
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
19
|
requirements:
|
27
|
-
-
|
20
|
+
- &id006
|
21
|
+
- ">="
|
28
22
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 3
|
30
|
-
segments:
|
31
|
-
- 0
|
32
23
|
version: "0"
|
33
24
|
type: :runtime
|
34
25
|
version_requirements: *id001
|
@@ -36,15 +27,9 @@ dependencies:
|
|
36
27
|
name: watir
|
37
28
|
prerelease: false
|
38
29
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
40
30
|
requirements:
|
41
31
|
- - "="
|
42
32
|
- !ruby/object:Gem::Version
|
43
|
-
hash: 53
|
44
|
-
segments:
|
45
|
-
- 1
|
46
|
-
- 8
|
47
|
-
- 1
|
48
33
|
version: 1.8.1
|
49
34
|
type: :runtime
|
50
35
|
version_requirements: *id002
|
@@ -52,15 +37,9 @@ dependencies:
|
|
52
37
|
name: commonwatir
|
53
38
|
prerelease: false
|
54
39
|
requirement: &id003 !ruby/object:Gem::Requirement
|
55
|
-
none: false
|
56
40
|
requirements:
|
57
41
|
- - "="
|
58
42
|
- !ruby/object:Gem::Version
|
59
|
-
hash: 53
|
60
|
-
segments:
|
61
|
-
- 1
|
62
|
-
- 8
|
63
|
-
- 1
|
64
43
|
version: 1.8.1
|
65
44
|
type: :runtime
|
66
45
|
version_requirements: *id003
|
@@ -68,15 +47,9 @@ dependencies:
|
|
68
47
|
name: firewatir
|
69
48
|
prerelease: false
|
70
49
|
requirement: &id004 !ruby/object:Gem::Requirement
|
71
|
-
none: false
|
72
50
|
requirements:
|
73
51
|
- - "="
|
74
52
|
- !ruby/object:Gem::Version
|
75
|
-
hash: 53
|
76
|
-
segments:
|
77
|
-
- 1
|
78
|
-
- 8
|
79
|
-
- 1
|
80
53
|
version: 1.8.1
|
81
54
|
type: :runtime
|
82
55
|
version_requirements: *id004
|
@@ -84,211 +57,128 @@ dependencies:
|
|
84
57
|
name: activesupport
|
85
58
|
prerelease: false
|
86
59
|
requirement: &id005 !ruby/object:Gem::Requirement
|
87
|
-
none: false
|
88
60
|
requirements:
|
89
61
|
- - ~>
|
90
62
|
- !ruby/object:Gem::Version
|
91
|
-
hash: 7
|
92
|
-
segments:
|
93
|
-
- 3
|
94
|
-
- 0
|
95
|
-
- 0
|
96
63
|
version: 3.0.0
|
97
64
|
type: :runtime
|
98
65
|
version_requirements: *id005
|
99
66
|
- !ruby/object:Gem::Dependency
|
100
67
|
name: i18n
|
101
68
|
prerelease: false
|
102
|
-
requirement: &
|
103
|
-
none: false
|
69
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
104
70
|
requirements:
|
105
|
-
-
|
106
|
-
- !ruby/object:Gem::Version
|
107
|
-
hash: 3
|
108
|
-
segments:
|
109
|
-
- 0
|
110
|
-
version: "0"
|
71
|
+
- *id006
|
111
72
|
type: :runtime
|
112
|
-
version_requirements: *
|
73
|
+
version_requirements: *id007
|
113
74
|
- !ruby/object:Gem::Dependency
|
114
75
|
name: andand
|
115
76
|
prerelease: false
|
116
|
-
requirement: &
|
117
|
-
none: false
|
77
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
118
78
|
requirements:
|
119
|
-
-
|
120
|
-
- !ruby/object:Gem::Version
|
121
|
-
hash: 3
|
122
|
-
segments:
|
123
|
-
- 0
|
124
|
-
version: "0"
|
79
|
+
- *id006
|
125
80
|
type: :runtime
|
126
|
-
version_requirements: *
|
81
|
+
version_requirements: *id008
|
127
82
|
- !ruby/object:Gem::Dependency
|
128
83
|
name: watirloo
|
129
84
|
prerelease: false
|
130
|
-
requirement: &
|
131
|
-
none: false
|
85
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
132
86
|
requirements:
|
133
|
-
-
|
134
|
-
- !ruby/object:Gem::Version
|
135
|
-
hash: 3
|
136
|
-
segments:
|
137
|
-
- 0
|
138
|
-
version: "0"
|
87
|
+
- *id006
|
139
88
|
type: :runtime
|
140
|
-
version_requirements: *
|
89
|
+
version_requirements: *id009
|
141
90
|
- !ruby/object:Gem::Dependency
|
142
91
|
name: win32-process
|
143
92
|
prerelease: false
|
144
|
-
requirement: &
|
145
|
-
none: false
|
93
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
146
94
|
requirements:
|
147
95
|
- - "="
|
148
96
|
- !ruby/object:Gem::Version
|
149
|
-
hash: 11
|
150
|
-
segments:
|
151
|
-
- 0
|
152
|
-
- 6
|
153
|
-
- 6
|
154
97
|
version: 0.6.6
|
155
98
|
type: :runtime
|
156
|
-
version_requirements: *
|
99
|
+
version_requirements: *id010
|
157
100
|
- !ruby/object:Gem::Dependency
|
158
101
|
name: win32screenshot
|
159
102
|
prerelease: false
|
160
|
-
requirement: &
|
161
|
-
none: false
|
103
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
162
104
|
requirements:
|
163
|
-
-
|
164
|
-
- !ruby/object:Gem::Version
|
165
|
-
hash: 3
|
166
|
-
segments:
|
167
|
-
- 0
|
168
|
-
version: "0"
|
105
|
+
- *id006
|
169
106
|
type: :runtime
|
170
|
-
version_requirements: *
|
107
|
+
version_requirements: *id011
|
171
108
|
- !ruby/object:Gem::Dependency
|
172
109
|
name: spreadsheet
|
173
110
|
prerelease: false
|
174
|
-
requirement: &
|
175
|
-
none: false
|
111
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
176
112
|
requirements:
|
177
113
|
- - "="
|
178
114
|
- !ruby/object:Gem::Version
|
179
|
-
hash: 23
|
180
|
-
segments:
|
181
|
-
- 0
|
182
|
-
- 6
|
183
|
-
- 8
|
184
115
|
version: 0.6.8
|
185
116
|
type: :runtime
|
186
|
-
version_requirements: *
|
117
|
+
version_requirements: *id012
|
187
118
|
- !ruby/object:Gem::Dependency
|
188
119
|
name: google-spreadsheet-ruby
|
189
120
|
prerelease: false
|
190
|
-
requirement: &
|
191
|
-
none: false
|
121
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
192
122
|
requirements:
|
193
123
|
- - "="
|
194
124
|
- !ruby/object:Gem::Version
|
195
|
-
hash: 23
|
196
|
-
segments:
|
197
|
-
- 0
|
198
|
-
- 1
|
199
|
-
- 6
|
200
125
|
version: 0.1.6
|
201
126
|
type: :runtime
|
202
|
-
version_requirements: *
|
127
|
+
version_requirements: *id013
|
203
128
|
- !ruby/object:Gem::Dependency
|
204
129
|
name: roo
|
205
130
|
prerelease: false
|
206
|
-
requirement: &
|
207
|
-
none: false
|
131
|
+
requirement: &id014 !ruby/object:Gem::Requirement
|
208
132
|
requirements:
|
209
133
|
- - "="
|
210
134
|
- !ruby/object:Gem::Version
|
211
|
-
hash: 61
|
212
|
-
segments:
|
213
|
-
- 1
|
214
|
-
- 10
|
215
|
-
- 1
|
216
135
|
version: 1.10.1
|
217
136
|
type: :runtime
|
218
|
-
version_requirements: *
|
137
|
+
version_requirements: *id014
|
219
138
|
- !ruby/object:Gem::Dependency
|
220
139
|
name: selenium-webdriver
|
221
140
|
prerelease: false
|
222
|
-
requirement: &
|
223
|
-
none: false
|
141
|
+
requirement: &id015 !ruby/object:Gem::Requirement
|
224
142
|
requirements:
|
225
|
-
-
|
226
|
-
- !ruby/object:Gem::Version
|
227
|
-
hash: 3
|
228
|
-
segments:
|
229
|
-
- 0
|
230
|
-
version: "0"
|
143
|
+
- *id006
|
231
144
|
type: :runtime
|
232
|
-
version_requirements: *
|
145
|
+
version_requirements: *id015
|
233
146
|
- !ruby/object:Gem::Dependency
|
234
147
|
name: pry
|
235
148
|
prerelease: false
|
236
|
-
requirement: &
|
237
|
-
none: false
|
149
|
+
requirement: &id016 !ruby/object:Gem::Requirement
|
238
150
|
requirements:
|
239
|
-
-
|
240
|
-
- !ruby/object:Gem::Version
|
241
|
-
hash: 3
|
242
|
-
segments:
|
243
|
-
- 0
|
244
|
-
version: "0"
|
151
|
+
- *id006
|
245
152
|
type: :runtime
|
246
|
-
version_requirements: *
|
153
|
+
version_requirements: *id016
|
247
154
|
- !ruby/object:Gem::Dependency
|
248
155
|
name: rdoc
|
249
156
|
prerelease: false
|
250
|
-
requirement: &
|
251
|
-
none: false
|
157
|
+
requirement: &id017 !ruby/object:Gem::Requirement
|
252
158
|
requirements:
|
253
159
|
- - ~>
|
254
160
|
- !ruby/object:Gem::Version
|
255
|
-
hash: 17
|
256
|
-
segments:
|
257
|
-
- 3
|
258
|
-
- 11
|
259
161
|
version: "3.11"
|
260
162
|
type: :runtime
|
261
|
-
version_requirements: *
|
163
|
+
version_requirements: *id017
|
262
164
|
- !ruby/object:Gem::Dependency
|
263
165
|
name: cucumber
|
264
166
|
prerelease: false
|
265
|
-
requirement: &
|
266
|
-
none: false
|
167
|
+
requirement: &id018 !ruby/object:Gem::Requirement
|
267
168
|
requirements:
|
268
|
-
-
|
269
|
-
- !ruby/object:Gem::Version
|
270
|
-
hash: 3
|
271
|
-
segments:
|
272
|
-
- 0
|
273
|
-
version: "0"
|
169
|
+
- *id006
|
274
170
|
type: :runtime
|
275
|
-
version_requirements: *
|
171
|
+
version_requirements: *id018
|
276
172
|
- !ruby/object:Gem::Dependency
|
277
173
|
name: calabash-android
|
278
174
|
prerelease: false
|
279
|
-
requirement: &
|
280
|
-
none: false
|
175
|
+
requirement: &id019 !ruby/object:Gem::Requirement
|
281
176
|
requirements:
|
282
177
|
- - "="
|
283
178
|
- !ruby/object:Gem::Version
|
284
|
-
hash: 11
|
285
|
-
segments:
|
286
|
-
- 0
|
287
|
-
- 4
|
288
|
-
- 2
|
289
179
|
version: 0.4.2
|
290
180
|
type: :runtime
|
291
|
-
version_requirements: *
|
181
|
+
version_requirements: *id019
|
292
182
|
description: Awetest DSL for automated testing of browser-based applications.
|
293
183
|
email: patrick@3qilabs.com
|
294
184
|
executables:
|
@@ -388,6 +278,7 @@ files:
|
|
388
278
|
- test/create_zoho_account1.rb
|
389
279
|
- test/create_zoho_account2.rb
|
390
280
|
- test/demo.rb
|
281
|
+
- test/demo_wwd.rb
|
391
282
|
- test/google_search1.rb
|
392
283
|
- test/google_search2.rb
|
393
284
|
- test/login.xls
|
@@ -401,35 +292,28 @@ files:
|
|
401
292
|
homepage: http://3qilabs.com
|
402
293
|
licenses: []
|
403
294
|
|
295
|
+
metadata: {}
|
296
|
+
|
404
297
|
post_install_message:
|
405
298
|
rdoc_options: []
|
406
299
|
|
407
300
|
require_paths:
|
408
301
|
- lib
|
409
302
|
required_ruby_version: !ruby/object:Gem::Requirement
|
410
|
-
none: false
|
411
303
|
requirements:
|
412
|
-
-
|
413
|
-
- !ruby/object:Gem::Version
|
414
|
-
hash: 3
|
415
|
-
segments:
|
416
|
-
- 0
|
417
|
-
version: "0"
|
304
|
+
- *id006
|
418
305
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
419
|
-
none: false
|
420
306
|
requirements:
|
421
|
-
- - "
|
307
|
+
- - ">"
|
422
308
|
- !ruby/object:Gem::Version
|
423
|
-
|
424
|
-
segments:
|
425
|
-
- 0
|
426
|
-
version: "0"
|
309
|
+
version: 1.3.1
|
427
310
|
requirements: []
|
428
311
|
|
429
312
|
rubyforge_project:
|
430
|
-
rubygems_version:
|
313
|
+
rubygems_version: 2.0.3
|
431
314
|
signing_key:
|
432
|
-
specification_version:
|
315
|
+
specification_version: 4
|
433
316
|
summary: Awetest DSL for automated testing of browser-based applications.
|
434
317
|
test_files: []
|
435
318
|
|
319
|
+
has_rdoc:
|