sapphire 0.5.0 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/sapphire +0 -0
- data/lib/sapphire/Configuration/SapphireConfig.rb +3 -0
- data/lib/sapphire/DSL/Browser/By.rb +10 -0
- data/lib/sapphire/DSL/Browser/Compare.rb +19 -0
- data/lib/sapphire/DSL/Browser/Day.rb +24 -0
- data/lib/sapphire/DSL/Browser/Differ.rb +19 -0
- data/lib/sapphire/DSL/Browser/IsVisible.rb +1 -1
- data/lib/sapphire/DSL/Browser/Month.rb +24 -0
- data/lib/sapphire/DSL/Browser/Wait.rb +9 -0
- data/lib/sapphire/DSL/Scenarios/then.rb +1 -1
- data/lib/sapphire/Strategies/HashStrategy.rb +5 -2
- data/lib/sapphire/Strategies/SymbolStrategy.rb +2 -2
- data/lib/sapphire/Testing/ConsoleReporter.rb +2 -2
- data/lib/sapphire/WebAbstractions/Controls/Base/Control.rb +58 -54
- data/lib/sapphire/WebAbstractions/Controls/Base/Page.rb +17 -10
- data/lib/sapphire/WebAbstractions/Controls/Base/WebBrowser.rb +2 -2
- data/lib/sapphire/WebAbstractions/Controls/Date.rb +12 -0
- data/lib/sapphire/WebAbstractions/Controls/DropDown.rb +2 -2
- data/lib/sapphire/WebAbstractions/Controls/Hyperlink.rb +1 -1
- data/lib/sapphire/{DSL/Browser → WebAbstractions/Controls}/List.rb +0 -0
- data/lib/sapphire/version.rb +1 -1
- metadata +62 -71
data/bin/sapphire
CHANGED
File without changes
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Sapphire
|
2
|
+
module DSL
|
3
|
+
module Browser
|
4
|
+
def Compare(control1, control2, &block)
|
5
|
+
if(control1.is_a? Symbol)
|
6
|
+
control1text = GetPageField(control1).Text
|
7
|
+
else
|
8
|
+
control1text = control1
|
9
|
+
end
|
10
|
+
if(control2.is_a? Symbol)
|
11
|
+
control2text = GetPageField(control2).Text
|
12
|
+
else
|
13
|
+
control2text = control2
|
14
|
+
end
|
15
|
+
block.call(control1text, control2text)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Sapphire
|
2
|
+
module DSL
|
3
|
+
module Browser
|
4
|
+
def Day(value, compare1, compare2)
|
5
|
+
Day.new(value, compare1, compare2)
|
6
|
+
end
|
7
|
+
|
8
|
+
class Day
|
9
|
+
|
10
|
+
def initialize(value, compare1, compare2)
|
11
|
+
@value = value
|
12
|
+
@compare1 = compare1
|
13
|
+
@compare2 = compare2
|
14
|
+
end
|
15
|
+
|
16
|
+
def Differ()
|
17
|
+
return (@compare1 + @value) == @compare2
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Sapphire
|
2
|
+
module DSL
|
3
|
+
module Browser
|
4
|
+
def Differ(arg)
|
5
|
+
return Differ.new(arg)
|
6
|
+
end
|
7
|
+
|
8
|
+
class Differ
|
9
|
+
def initialize(arg)
|
10
|
+
@arg = arg
|
11
|
+
end
|
12
|
+
|
13
|
+
def execute
|
14
|
+
return Evaluation.new(true, @arg.Differ) #args[0] is the value that should be the difference
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Sapphire
|
2
|
+
module DSL
|
3
|
+
module Browser
|
4
|
+
def Month(value, compare1, compare2)
|
5
|
+
Month.new(value, compare1, compare2)
|
6
|
+
end
|
7
|
+
|
8
|
+
class Month
|
9
|
+
|
10
|
+
def initialize(value, compare1, compare2)
|
11
|
+
@value = value
|
12
|
+
@compare1 = compare1
|
13
|
+
@compare2 = compare2
|
14
|
+
end
|
15
|
+
|
16
|
+
def Differ()
|
17
|
+
return (@compare1 >> @value) == @compare2
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
@@ -4,9 +4,12 @@ module Sapphire
|
|
4
4
|
class HashStrategy < Strategy
|
5
5
|
def Show(item, modifier)
|
6
6
|
ExecuteHashAgainstControl(item, @page) do |control, arg|
|
7
|
-
wait = Selenium::WebDriver::Wait.new(:timeout =>
|
7
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 30)
|
8
8
|
text = wait.until { x = control
|
9
|
-
|
9
|
+
val = x.Equals(arg)
|
10
|
+
if (val.left == val.right)
|
11
|
+
x
|
12
|
+
end
|
10
13
|
}
|
11
14
|
|
12
15
|
return text.Equals(arg)
|
@@ -10,7 +10,7 @@ module Sapphire
|
|
10
10
|
x = field[field_key].Find
|
11
11
|
if(x)
|
12
12
|
begin
|
13
|
-
wait = Selenium::WebDriver::Wait.new(:timeout =>
|
13
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 30)
|
14
14
|
result = wait.until { y = modifier.Modify(x.displayed?)
|
15
15
|
y unless y == false
|
16
16
|
}
|
@@ -34,7 +34,7 @@ module Sapphire
|
|
34
34
|
field.keys.each do |field_key|
|
35
35
|
if(field_key == item)
|
36
36
|
begin
|
37
|
-
wait = Selenium::WebDriver::Wait.new(:timeout =>
|
37
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 30)
|
38
38
|
element = wait.until { x = field[field_key].Find
|
39
39
|
x and modifier.Modify(!x.displayed?)
|
40
40
|
}
|
@@ -7,61 +7,55 @@ module Sapphire
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def Find
|
10
|
-
|
11
|
-
FindBy :id
|
12
|
-
elsif (@hash.has_key?(:name))
|
13
|
-
FindBy :name
|
14
|
-
elsif (@hash.has_key?(:xpath))
|
15
|
-
FindBy :xpath
|
16
|
-
end
|
17
|
-
end
|
10
|
+
masterWait = Selenium::WebDriver::Wait.new(:timeout => 30)
|
18
11
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
12
|
+
element = masterWait.until {
|
13
|
+
@hash.each do |item|
|
14
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 1)
|
15
|
+
begin
|
16
|
+
y = wait.until {
|
17
|
+
x = @browser.find_element item.keys.first, item.fetch(item.keys.first) if item.is_a? Hash
|
18
|
+
x = @browser.find_element item[0], item[1] if item.is_a? Array
|
19
|
+
return x if x != nil
|
20
|
+
}
|
21
|
+
return y if y != nil
|
22
|
+
rescue
|
23
|
+
end
|
24
|
+
end if @hash.is_a? Array
|
28
25
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
elsif (@hash.has_key?(:xpath))
|
35
|
-
FindWithoutWaitBy :xpath
|
36
|
-
end
|
26
|
+
x = @browser.find_element @hash.keys.first, @hash.fetch(@hash.keys.first) if @hash.is_a? Hash
|
27
|
+
return x if x != nil
|
28
|
+
}
|
29
|
+
return element if element != nil
|
30
|
+
raise "Could not find control for symbol: " + @hash.to_s
|
37
31
|
end
|
38
32
|
|
39
|
-
def
|
40
|
-
|
41
|
-
end
|
33
|
+
def FindAll
|
34
|
+
masterWait = Selenium::WebDriver::Wait.new(:timeout => 30)
|
42
35
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
36
|
+
element = masterWait.until {
|
37
|
+
@hash.each do |item|
|
38
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 1)
|
39
|
+
begin
|
40
|
+
y = wait.until {
|
41
|
+
x = @browser.find_elements item.keys.first, item.fetch(item.keys.first) if item.is_a? Hash
|
42
|
+
x = @browser.find_elements item[0], item[1] if item.is_a? Array
|
43
|
+
return x if x != nil
|
44
|
+
}
|
45
|
+
return y if y != nil
|
46
|
+
rescue
|
47
|
+
end
|
48
|
+
end if @hash.is_a? Array
|
49
49
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
50
|
+
x = @browser.find_elements @hash.keys.first, @hash.fetch(@hash.keys.first) if @hash.is_a? Hash
|
51
|
+
return x if x != nil
|
52
|
+
}
|
53
|
+
return element if element != nil
|
54
|
+
raise "Could not find control for symbol: " + @hash.to_s
|
55
55
|
end
|
56
56
|
|
57
|
-
def
|
58
|
-
|
59
|
-
@browser.find_element :id, hash.fetch(:id)
|
60
|
-
elsif (hash.has_key?(:name))
|
61
|
-
@browser.find_element :name, hash.fetch(:name)
|
62
|
-
elsif (hash.has_key?(:xpath))
|
63
|
-
@browser.find_element :xpath, hash.fetch(:xpath)
|
64
|
-
end
|
57
|
+
def FindWithoutWait
|
58
|
+
@browser.find_element @hash[0].keys.first, @hash[0].fetch(@hash[0].keys.first)
|
65
59
|
end
|
66
60
|
|
67
61
|
def Text
|
@@ -75,13 +69,24 @@ module Sapphire
|
|
75
69
|
end
|
76
70
|
|
77
71
|
def MouseOver
|
78
|
-
if
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
72
|
+
if @hash.is_a? Hash
|
73
|
+
if(@hash.has_key?(:id))
|
74
|
+
@browser.execute_script("document.getElementById('"+ @hash.fetch(:id) +"').style.visibility = 'visible'; ")
|
75
|
+
elsif (@hash.has_key?(:name))
|
76
|
+
@browser.execute_script("document.getElementByName('"+ @hash.fetch(:name) +"').style.visibility = 'visible'; ")
|
77
|
+
elsif (@hash.has_key?(:xpath))
|
78
|
+
@browser.execute_script("document.evaluate( '" + @hash.fetch(:xpath) + "', document, null, XPathResult.ANY_TYPE, null ).iterateNext().style.visibility = 'visible'; ")
|
79
|
+
end
|
80
|
+
elsif @hash.is_a? Array
|
81
|
+
if(@hash[0].has_key?(:id))
|
82
|
+
@browser.execute_script("document.getElementById('"+ @hash[0].fetch(:id) +"').style.visibility = 'visible'; ")
|
83
|
+
elsif (@hash[0].has_key?(:name))
|
84
|
+
@browser.execute_script("document.getElementByName('"+ @hash[0].fetch(:name) +"').style.visibility = 'visible'; ")
|
85
|
+
elsif (@hash[0].has_key?(:xpath))
|
86
|
+
@browser.execute_script("document.evaluate( '" + @hash[0].fetch(:xpath) + "', document, null, XPathResult.ANY_TYPE, null ).iterateNext().style.visibility = 'visible'; ")
|
87
|
+
end
|
84
88
|
end
|
89
|
+
|
85
90
|
sleep(1)
|
86
91
|
end
|
87
92
|
|
@@ -92,4 +97,3 @@ module Sapphire
|
|
92
97
|
end
|
93
98
|
end
|
94
99
|
|
95
|
-
|
@@ -14,42 +14,49 @@ module Sapphire
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def DropDown(*args)
|
17
|
-
@fields << { args.first => DropDown.new(@browser, args[1]) }
|
17
|
+
@fields << { args.first => DropDown.new(@browser, args[1..args.length]) }
|
18
18
|
end
|
19
19
|
|
20
20
|
def TextBox(*args)
|
21
|
-
@fields << { args.first => TextBox.new(@browser, args[1]) }
|
21
|
+
@fields << { args.first => TextBox.new(@browser, args[1..args.length]) }
|
22
22
|
end
|
23
23
|
|
24
24
|
def RadioButton(*args)
|
25
|
-
@fields << { args.first => RadioButton.new(@browser, args[1]) }
|
25
|
+
@fields << { args.first => RadioButton.new(@browser, args[1..args.length]) }
|
26
26
|
end
|
27
27
|
|
28
28
|
def CheckBox(*args)
|
29
|
-
@fields << { args.first => CheckBox.new(@browser, args[1]) }
|
29
|
+
@fields << { args.first => CheckBox.new(@browser, args[1..args.length]) }
|
30
30
|
end
|
31
31
|
|
32
32
|
def Button(*args)
|
33
|
-
@fields << { args.first => Button.new(@browser, args[1]) }
|
33
|
+
@fields << { args.first => Button.new(@browser, args[1..args.length]) }
|
34
34
|
end
|
35
35
|
|
36
36
|
def Label(*args)
|
37
|
-
@fields << { args.first => Label.new(@browser, args[1]) }
|
37
|
+
@fields << { args.first => Label.new(@browser, args[1..args.length]) }
|
38
38
|
end
|
39
39
|
|
40
40
|
def Image(*args)
|
41
|
-
@fields << { args.first => Image.new(@browser, args[1]) }
|
41
|
+
@fields << { args.first => Image.new(@browser, args[1..args.length]) }
|
42
42
|
end
|
43
43
|
|
44
44
|
def Hyperlink(*args)
|
45
|
-
@fields << { args.first => Hyperlink.new(@browser, args[1]) }
|
45
|
+
@fields << { args.first => Hyperlink.new(@browser, args[1..args.length]) }
|
46
46
|
end
|
47
47
|
|
48
48
|
def List(*args)
|
49
|
-
@fields << { args.first => List.new(@browser, args[1]) }
|
49
|
+
@fields << { args.first => List.new(@browser, args[1..args.length]) }
|
50
|
+
end
|
51
|
+
|
52
|
+
def Date(*args)
|
53
|
+
@fields << { args.first => Date.new(@browser, args[1..args.length]) }
|
54
|
+
end
|
55
|
+
|
56
|
+
def Date(*args)
|
57
|
+
@fields << { args.first => Date.new(@browser, args[1]) }
|
50
58
|
end
|
51
59
|
|
52
60
|
end
|
53
61
|
end
|
54
62
|
end
|
55
|
-
|
@@ -30,7 +30,7 @@ module Sapphire
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def CurrentUrl
|
33
|
-
wait = Selenium::WebDriver::Wait.new(:timeout =>
|
33
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 30)
|
34
34
|
url = wait.until { x = self.current_url
|
35
35
|
x unless x == nil
|
36
36
|
}
|
@@ -49,7 +49,7 @@ module Sapphire
|
|
49
49
|
nav = page
|
50
50
|
end
|
51
51
|
|
52
|
-
wait = Selenium::WebDriver::Wait.new(:timeout =>
|
52
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 30)
|
53
53
|
found = wait.until {
|
54
54
|
x = self.CurrentUrl.upcase.start_with?("HTTP://" + nav.Url.upcase) || self.CurrentUrl.upcase.start_with?("HTTPS://" + nav.Url.upcase)
|
55
55
|
if(x == false)
|
@@ -18,8 +18,8 @@ module Sapphire
|
|
18
18
|
def Set(value)
|
19
19
|
text = self.Find
|
20
20
|
options = text.find_elements(:tag_name, "option")
|
21
|
-
selection = options.find{|o| o.text == value}
|
22
|
-
raise "could not find the value " + value if selection.nil?
|
21
|
+
selection = options.find{|o| o.text == value.to_s}
|
22
|
+
raise "could not find the value " + value.to_s if selection.nil?
|
23
23
|
selection.click
|
24
24
|
end
|
25
25
|
end
|
File without changes
|
data/lib/sapphire/version.rb
CHANGED
metadata
CHANGED
@@ -1,68 +1,58 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: sapphire
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 5
|
8
|
-
- 0
|
9
|
-
version: 0.5.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.2
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- Marcus Bratton
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
dependencies:
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-10-24 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: selenium-webdriver
|
22
|
-
|
23
|
-
|
24
|
-
requirements:
|
25
|
-
- -
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
|
28
|
-
- 0
|
29
|
-
version: "0"
|
16
|
+
requirement: &10052256 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
30
22
|
type: :runtime
|
31
|
-
version_requirements: *id001
|
32
|
-
- !ruby/object:Gem::Dependency
|
33
|
-
name: colorize
|
34
23
|
prerelease: false
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
24
|
+
version_requirements: *10052256
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: colorize
|
27
|
+
requirement: &10052004 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
42
33
|
type: :runtime
|
43
|
-
version_requirements: *id002
|
44
|
-
- !ruby/object:Gem::Dependency
|
45
|
-
name: Platform
|
46
34
|
prerelease: false
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
35
|
+
version_requirements: *10052004
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: Platform
|
38
|
+
requirement: &10051752 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
54
44
|
type: :runtime
|
55
|
-
|
56
|
-
|
57
|
-
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *10051752
|
47
|
+
description: An automated web acceptance test framework for non-technical resources
|
48
|
+
using selenium-wedriver.
|
49
|
+
email:
|
58
50
|
- marcus.bratton@gmail.com
|
59
|
-
executables:
|
51
|
+
executables:
|
60
52
|
- sapphire
|
61
53
|
extensions: []
|
62
|
-
|
63
54
|
extra_rdoc_files: []
|
64
|
-
|
65
|
-
files:
|
55
|
+
files:
|
66
56
|
- lib/sapphire/CommandLine.rb
|
67
57
|
- lib/sapphire/Configuration/AppConfig.rb
|
68
58
|
- lib/sapphire/Configuration/AttrMethods.rb
|
@@ -75,12 +65,16 @@ files:
|
|
75
65
|
- lib/sapphire/DSL/Browser/Accept.rb
|
76
66
|
- lib/sapphire/DSL/Browser/AlertBox.rb
|
77
67
|
- lib/sapphire/DSL/Browser/Browser.rb
|
68
|
+
- lib/sapphire/DSL/Browser/By.rb
|
78
69
|
- lib/sapphire/DSL/Browser/Check.rb
|
79
70
|
- lib/sapphire/DSL/Browser/Clear.rb
|
80
71
|
- lib/sapphire/DSL/Browser/Click.rb
|
81
72
|
- lib/sapphire/DSL/Browser/Close.rb
|
73
|
+
- lib/sapphire/DSL/Browser/Compare.rb
|
82
74
|
- lib/sapphire/DSL/Browser/Complete.rb
|
83
75
|
- lib/sapphire/DSL/Browser/CurrentUrl.rb
|
76
|
+
- lib/sapphire/DSL/Browser/Day.rb
|
77
|
+
- lib/sapphire/DSL/Browser/Differ.rb
|
84
78
|
- lib/sapphire/DSL/Browser/Disable.rb
|
85
79
|
- lib/sapphire/DSL/Browser/Error.rb
|
86
80
|
- lib/sapphire/DSL/Browser/ExecuteAgainstControl.rb
|
@@ -90,7 +84,7 @@ files:
|
|
90
84
|
- lib/sapphire/DSL/Browser/IsHidden.rb
|
91
85
|
- lib/sapphire/DSL/Browser/IsVisible.rb
|
92
86
|
- lib/sapphire/DSL/Browser/Keys/Enter.rb
|
93
|
-
- lib/sapphire/DSL/Browser/
|
87
|
+
- lib/sapphire/DSL/Browser/Month.rb
|
94
88
|
- lib/sapphire/DSL/Browser/MouseOver.rb
|
95
89
|
- lib/sapphire/DSL/Browser/Navigate.rb
|
96
90
|
- lib/sapphire/DSL/Browser/Not.rb
|
@@ -107,6 +101,7 @@ files:
|
|
107
101
|
- lib/sapphire/DSL/Browser/Transition.rb
|
108
102
|
- lib/sapphire/DSL/Browser/Uncheck.rb
|
109
103
|
- lib/sapphire/DSL/Browser/Virtually.rb
|
104
|
+
- lib/sapphire/DSL/Browser/Wait.rb
|
110
105
|
- lib/sapphire/DSL/Browser/With.rb
|
111
106
|
- lib/sapphire/DSL/Configuration/ConfiguredBrowser.rb
|
112
107
|
- lib/sapphire/DSL/Configuration/ConfiguredUser.rb
|
@@ -171,44 +166,40 @@ files:
|
|
171
166
|
- lib/sapphire/WebAbstractions/Controls/Browsers/InternetExplorer.rb
|
172
167
|
- lib/sapphire/WebAbstractions/Controls/Button.rb
|
173
168
|
- lib/sapphire/WebAbstractions/Controls/CheckBox.rb
|
169
|
+
- lib/sapphire/WebAbstractions/Controls/Date.rb
|
174
170
|
- lib/sapphire/WebAbstractions/Controls/DropDown.rb
|
175
171
|
- lib/sapphire/WebAbstractions/Controls/Hyperlink.rb
|
176
172
|
- lib/sapphire/WebAbstractions/Controls/Image.rb
|
177
173
|
- lib/sapphire/WebAbstractions/Controls/Label.rb
|
174
|
+
- lib/sapphire/WebAbstractions/Controls/List.rb
|
178
175
|
- lib/sapphire/WebAbstractions/Controls/RadioButton.rb
|
179
176
|
- lib/sapphire/WebAbstractions/Controls/TableCell.rb
|
180
177
|
- lib/sapphire/WebAbstractions/Controls/TextBox.rb
|
181
178
|
- lib/sapphire/WebAbstractions/Controls/Title.rb
|
182
179
|
- lib/sapphire.rb
|
183
|
-
|
180
|
+
- bin/sapphire
|
184
181
|
homepage: http://github.com/MarcusTheBold/Sapphire/
|
185
182
|
licenses: []
|
186
|
-
|
187
183
|
post_install_message:
|
188
184
|
rdoc_options: []
|
189
|
-
|
190
|
-
require_paths:
|
185
|
+
require_paths:
|
191
186
|
- lib
|
192
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
requirements:
|
201
|
-
- -
|
202
|
-
- !ruby/object:Gem::Version
|
203
|
-
|
204
|
-
- 0
|
205
|
-
version: "0"
|
187
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
188
|
+
none: false
|
189
|
+
requirements:
|
190
|
+
- - ! '>='
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: '0'
|
193
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
194
|
+
none: false
|
195
|
+
requirements:
|
196
|
+
- - ! '>='
|
197
|
+
- !ruby/object:Gem::Version
|
198
|
+
version: '0'
|
206
199
|
requirements: []
|
207
|
-
|
208
200
|
rubyforge_project:
|
209
|
-
rubygems_version: 1.
|
201
|
+
rubygems_version: 1.8.5
|
210
202
|
signing_key:
|
211
203
|
specification_version: 3
|
212
204
|
summary: An automated web acceptance test framework for non-technical resources
|
213
205
|
test_files: []
|
214
|
-
|