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 CHANGED
File without changes
@@ -2,6 +2,8 @@ module Sapphire
2
2
  module Configuration
3
3
  class SapphireConfig
4
4
 
5
+ attr_reader :wait_time
6
+
5
7
  def initialize
6
8
  @@config = {}
7
9
 
@@ -25,6 +27,7 @@ module Sapphire
25
27
 
26
28
  return DefaultStrategy
27
29
  end
30
+
28
31
  end
29
32
  end
30
33
  end
@@ -0,0 +1,10 @@
1
+ module Sapphire
2
+ module DSL
3
+ module Browser
4
+ def By(value, compare1, compare2)
5
+ return value, compare1, compare2
6
+ end
7
+ end
8
+ end
9
+ end
10
+
@@ -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
@@ -9,7 +9,7 @@ module Sapphire
9
9
  x = field[field_key].Find
10
10
  if(x)
11
11
  begin
12
- wait = Selenium::WebDriver::Wait.new(:timeout => 10)
12
+ wait = Selenium::WebDriver::Wait.new(:timeout => 30)
13
13
  result = wait.until { y = x.displayed?
14
14
  y unless y == false
15
15
  }
@@ -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
+
@@ -0,0 +1,9 @@
1
+ module Sapphire
2
+ module DSL
3
+ module Browser
4
+ def Wait(seconds)
5
+ sleep(seconds)
6
+ end
7
+ end
8
+ end
9
+ end
@@ -19,7 +19,7 @@ class Then
19
19
 
20
20
  def add_and(pre, text, &block)
21
21
  if(!self.value.instance_of? Pending)
22
- x = And.new(self, pre + text, &block)
22
+ x = And.new(self, text, &block)
23
23
  self.and << x
24
24
  else
25
25
  self.and << And.new(self, Pending.new(pre + text), &block)
@@ -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 => 10)
7
+ wait = Selenium::WebDriver::Wait.new(:timeout => 30)
8
8
  text = wait.until { x = control
9
- x unless (!x.Equals(arg) && x.Equals(""))
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 => 10)
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 => 10)
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
  }
@@ -47,10 +47,10 @@ module Sapphire
47
47
  end
48
48
  $stdout.puts ""
49
49
  result.stack.each do |line|
50
- if (!line.include? "sapphire")
50
+ #if (!line.include? "sapphire")
51
51
  Indent(depth+1)
52
52
  $stdout.puts line
53
- end
53
+ #end
54
54
  end
55
55
 
56
56
  end
@@ -7,61 +7,55 @@ module Sapphire
7
7
  end
8
8
 
9
9
  def Find
10
- if(@hash.has_key?(:id))
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
- def FindAll
20
- if(@hash.has_key?(:id))
21
- FindAllBy :id
22
- elsif (@hash.has_key?(:name))
23
- FindAllBy :name
24
- elsif (@hash.has_key?(:xpath))
25
- FindAllBy :xpath
26
- end
27
- end
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
- def FindWithoutWait
30
- if(@hash.has_key?(:id))
31
- FindWithoutWaitBy :id
32
- elsif (@hash.has_key?(:name))
33
- FindWithoutWaitBy :name
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 FindWithoutWaitBy(symbol)
40
- @browser.find_element symbol, @hash.fetch(symbol)
41
- end
33
+ def FindAll
34
+ masterWait = Selenium::WebDriver::Wait.new(:timeout => 30)
42
35
 
43
- def FindBy(symbol)
44
- wait = Selenium::WebDriver::Wait.new(:timeout => 10)
45
- element = wait.until { x = @browser.find_element symbol, @hash.fetch(symbol)
46
- x
47
- }
48
- end
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
- def FindAllBy(symbol)
51
- wait = Selenium::WebDriver::Wait.new(:timeout => 10)
52
- element = wait.until { x = @browser.find_elements symbol, @hash.fetch(symbol)
53
- x unless x.count == 0
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 FindParent(hash)
58
- if(hash.has_key?(:id))
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(@hash.has_key?(:id))
79
- @browser.execute_script("document.getElementById('"+ @hash.fetch(:id) +"').style.visibility = 'visible'; ")
80
- elsif (@hash.has_key?(:name))
81
- @browser.execute_script("document.getElementById('"+ @hash.fetch(:name) +"').style.visibility = 'visible'; ")
82
- elsif (@hash.has_key?(:xpath))
83
- @browser.execute_script("document.evaluate( '" + @hash.fetch(:xpath) + "', document, null, XPathResult.ANY_TYPE, null ).iterateNext().style.visibility = 'visible'; ")
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 => 10)
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 => 10)
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)
@@ -0,0 +1,12 @@
1
+ module Sapphire
2
+ module WebAbstractions
3
+ class Date < Control
4
+
5
+ def Text
6
+ control = self.Find
7
+ return DateTime.strptime(control.text, "%m/%d/%Y %H:%M:%S %p").to_date
8
+ end
9
+
10
+ end
11
+ end
12
+ end
@@ -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
@@ -2,7 +2,7 @@ module Sapphire
2
2
  module WebAbstractions
3
3
  class Hyperlink < Control
4
4
 
5
- end
5
+ end
6
6
  end
7
7
  end
8
8
 
@@ -1,3 +1,3 @@
1
1
  module Sapphire
2
- VERSION = "0.5.0"
2
+ VERSION = "0.5.2"
3
3
  end
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
- prerelease: false
5
- segments:
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
- date: 2011-10-08 00:00:00 -05:00
18
- default_executable: sapphire
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
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- segments:
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
- requirement: &id002 !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- segments:
40
- - 0
41
- version: "0"
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
- requirement: &id003 !ruby/object:Gem::Requirement
48
- requirements:
49
- - - ">="
50
- - !ruby/object:Gem::Version
51
- segments:
52
- - 0
53
- version: "0"
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
- version_requirements: *id003
56
- description: An automated web acceptance test framework for non-technical resources using selenium-wedriver.
57
- email:
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/List.rb
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
- has_rdoc: true
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
- requirements:
194
- - - ">="
195
- - !ruby/object:Gem::Version
196
- segments:
197
- - 0
198
- version: "0"
199
- required_rubygems_version: !ruby/object:Gem::Requirement
200
- requirements:
201
- - - ">="
202
- - !ruby/object:Gem::Version
203
- segments:
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.3.6
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
-