sapphire 0.5.0 → 0.5.2
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.
- 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
|
-
|