awetestlib 0.1.28-x86-mingw32 → 0.1.29pre3-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|