rsel 0.0.1

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.
Files changed (59) hide show
  1. data/.gitignore +4 -0
  2. data/.yardopts +7 -0
  3. data/Gemfile +2 -0
  4. data/MIT-LICENSE +22 -0
  5. data/README.md +35 -0
  6. data/Rakefile +75 -0
  7. data/docs/custom.md +87 -0
  8. data/docs/development.md +48 -0
  9. data/docs/index.md +13 -0
  10. data/docs/install.md +33 -0
  11. data/docs/todo.md +15 -0
  12. data/docs/usage.md +50 -0
  13. data/lib/rsel.rb +4 -0
  14. data/lib/rsel/exceptions.rb +4 -0
  15. data/lib/rsel/selenium_test.rb +524 -0
  16. data/rsel.gemspec +29 -0
  17. data/spec/selenium_test_spec.rb +296 -0
  18. data/spec/spec_helper.rb +41 -0
  19. data/test/app.rb +34 -0
  20. data/test/config.ru +4 -0
  21. data/test/views/about.erb +9 -0
  22. data/test/views/form.erb +102 -0
  23. data/test/views/index.erb +15 -0
  24. data/vendor/rubyslim-0.1.1/.gitignore +7 -0
  25. data/vendor/rubyslim-0.1.1/README.md +159 -0
  26. data/vendor/rubyslim-0.1.1/Rakefile +21 -0
  27. data/vendor/rubyslim-0.1.1/bin/rubyslim +10 -0
  28. data/vendor/rubyslim-0.1.1/lib/rubyslim/list_deserializer.rb +69 -0
  29. data/vendor/rubyslim-0.1.1/lib/rubyslim/list_executor.rb +12 -0
  30. data/vendor/rubyslim-0.1.1/lib/rubyslim/list_serializer.rb +45 -0
  31. data/vendor/rubyslim-0.1.1/lib/rubyslim/ruby_slim.rb +61 -0
  32. data/vendor/rubyslim-0.1.1/lib/rubyslim/slim_error.rb +3 -0
  33. data/vendor/rubyslim-0.1.1/lib/rubyslim/slim_helper_library.rb +23 -0
  34. data/vendor/rubyslim-0.1.1/lib/rubyslim/socket_service.rb +53 -0
  35. data/vendor/rubyslim-0.1.1/lib/rubyslim/statement.rb +79 -0
  36. data/vendor/rubyslim-0.1.1/lib/rubyslim/statement_executor.rb +174 -0
  37. data/vendor/rubyslim-0.1.1/lib/rubyslim/table_to_hash_converter.rb +32 -0
  38. data/vendor/rubyslim-0.1.1/lib/test_module/library_new.rb +13 -0
  39. data/vendor/rubyslim-0.1.1/lib/test_module/library_old.rb +12 -0
  40. data/vendor/rubyslim-0.1.1/lib/test_module/should_not_find_test_slim_in_here/test_slim.rb +7 -0
  41. data/vendor/rubyslim-0.1.1/lib/test_module/simple_script.rb +9 -0
  42. data/vendor/rubyslim-0.1.1/lib/test_module/test_chain.rb +5 -0
  43. data/vendor/rubyslim-0.1.1/lib/test_module/test_slim.rb +86 -0
  44. data/vendor/rubyslim-0.1.1/lib/test_module/test_slim_with_arguments.rb +23 -0
  45. data/vendor/rubyslim-0.1.1/lib/test_module/test_slim_with_no_sut.rb +5 -0
  46. data/vendor/rubyslim-0.1.1/rubyslim.gemspec +22 -0
  47. data/vendor/rubyslim-0.1.1/spec/instance_creation_spec.rb +40 -0
  48. data/vendor/rubyslim-0.1.1/spec/it8f_spec.rb +8 -0
  49. data/vendor/rubyslim-0.1.1/spec/list_deserializer_spec.rb +66 -0
  50. data/vendor/rubyslim-0.1.1/spec/list_executor_spec.rb +187 -0
  51. data/vendor/rubyslim-0.1.1/spec/list_serialzer_spec.rb +38 -0
  52. data/vendor/rubyslim-0.1.1/spec/method_invocation_spec.rb +127 -0
  53. data/vendor/rubyslim-0.1.1/spec/slim_helper_library_spec.rb +80 -0
  54. data/vendor/rubyslim-0.1.1/spec/socket_service_spec.rb +98 -0
  55. data/vendor/rubyslim-0.1.1/spec/spec_helper.rb +6 -0
  56. data/vendor/rubyslim-0.1.1/spec/statement_executor_spec.rb +50 -0
  57. data/vendor/rubyslim-0.1.1/spec/statement_spec.rb +17 -0
  58. data/vendor/rubyslim-0.1.1/spec/table_to_hash_converter_spec.rb +31 -0
  59. metadata +241 -0
@@ -0,0 +1,80 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/spec_helper")
2
+ require 'slim_helper_library'
3
+ require 'statement_executor'
4
+
5
+ SLIM_HELPER_LIBRARY_INSTANCE_NAME = "SlimHelperLibrary"
6
+ ACTOR_INSTANCE_NAME = "scriptTableActor"
7
+
8
+ describe SlimHelperLibrary do
9
+ before() do
10
+ @executor = StatementExecutor.new
11
+ @executor.add_module("TestModule")
12
+ @executor.create(ACTOR_INSTANCE_NAME, "TestSlim", ["0"]).should == "OK"
13
+ @instance = @executor.instance(ACTOR_INSTANCE_NAME)
14
+ @helper = SlimHelperLibrary.new(@executor)
15
+ end
16
+
17
+ it "can get current scriptTableActor" do
18
+ @helper.get_fixture.should be @instance
19
+ end
20
+
21
+ it "can push and pop" do
22
+ @helper.push_fixture
23
+ @executor.create(ACTOR_INSTANCE_NAME, "TestSlim", ["1"])
24
+ @helper.get_fixture.should_not be @instance
25
+ @helper.pop_fixture
26
+ @helper.get_fixture.should be @instance
27
+ end
28
+
29
+ it "can push and pop many" do
30
+ @helper.push_fixture
31
+ @executor.create(ACTOR_INSTANCE_NAME, "TestChain", []).should == "OK"
32
+ one = @executor.instance(ACTOR_INSTANCE_NAME)
33
+ one.should_not be_nil
34
+ @helper.push_fixture
35
+
36
+ @executor.create(ACTOR_INSTANCE_NAME, "SimpleScript", [])
37
+ two = @executor.instance(ACTOR_INSTANCE_NAME)
38
+ one.should_not be two
39
+ @helper.get_fixture.should be two
40
+
41
+ @helper.pop_fixture
42
+ @helper.get_fixture.should be one
43
+
44
+ @helper.pop_fixture
45
+ @helper.get_fixture.should be @instance
46
+
47
+ end
48
+
49
+ end
50
+
51
+
52
+ #@Test
53
+ #public void testSlimHelperLibraryIsStoredInSlimExecutor() throws Exception {
54
+ # Object helperLibrary = caller.getInstance(SLIM_HELPER_LIBRARY_INSTANCE_NAME);
55
+ # assertTrue(helperLibrary instanceof SlimHelperLibrary);
56
+ #}
57
+ #
58
+ #@Test
59
+ #public void testSlimHelperLibraryHasStatementExecutor() throws Exception {
60
+ # SlimHelperLibrary helperLibrary = (SlimHelperLibrary) caller.getInstance(SLIM_HELPER_LIBRARY_INSTANCE_NAME);
61
+ # assertSame(caller, helperLibrary.getStatementExecutor());
62
+ #}
63
+ #
64
+ #@Test
65
+ #public void testSlimHelperLibraryCanPushAndPopFixture() throws Exception {
66
+ # SlimHelperLibrary helperLibrary = (SlimHelperLibrary) caller.getInstance(SLIM_HELPER_LIBRARY_INSTANCE_NAME);
67
+ # Object response = caller.create(ACTOR_INSTANCE_NAME, getTestClassName(), new Object[0]);
68
+ # Object firstActor = caller.getInstance(ACTOR_INSTANCE_NAME);
69
+ #
70
+ # helperLibrary.pushFixture();
71
+ #
72
+ # response = caller.create(ACTOR_INSTANCE_NAME, getTestClassName(), new Object[] {"1"});
73
+ # assertEquals("OK", response);
74
+ # assertNotSame(firstActor, caller.getInstance(ACTOR_INSTANCE_NAME));
75
+ #
76
+ # helperLibrary.popFixture();
77
+ #
78
+ # assertSame(firstActor, caller.getInstance(ACTOR_INSTANCE_NAME));
79
+ #}
80
+ #
@@ -0,0 +1,98 @@
1
+ require 'test/unit'
2
+ require File.expand_path(File.dirname(__FILE__) + "/spec_helper")
3
+ require 'socket_service'
4
+
5
+ class SocketServiceTest < Test::Unit::TestCase
6
+ def setup
7
+ @port = 12345
8
+ @ss = SocketService.new()
9
+ @connections = 0
10
+ end
11
+
12
+ def testOneConnection
13
+ @ss.serve(@port) {@connections += 1}
14
+ connect(@port)
15
+ @ss.close()
16
+ assert_equal(1, @connections)
17
+ end
18
+
19
+ def testManyConnections
20
+ @ss.serve(@port) {@connections += 1}
21
+ 10.times {connect(@port)}
22
+ @ss.close()
23
+ assert_equal(10, @connections)
24
+ assert_equal(0, @ss.pendingSessions)
25
+ end
26
+
27
+ def testSocketSend
28
+ @ss.serve(@port) do |serverSocket|
29
+ serverSocket.write("hi")
30
+ end
31
+
32
+ clientSocket = TCPSocket.open("localhost", @port)
33
+ answer = clientSocket.gets
34
+ clientSocket.close
35
+ assert_equal("hi", answer)
36
+ @ss.close()
37
+ end
38
+
39
+ # TEST FREEZES!!!
40
+ # We should not be able to keep the service alive by hitting
41
+ # it with connections after we close it?
42
+ def _testCantKeepAliveByConnectingAfterClose
43
+ #set up a service that waits for a message and then dies.
44
+ @ss.serve(@port) do |serverSocket|
45
+ message = serverSocket.gets
46
+ end
47
+
48
+ #s1 is a connection to that service.
49
+ s1 = TCPSocket.open("localhost", @port)
50
+ sleep(0.1)
51
+
52
+ #now start closing the server in a separate thread. It cannot
53
+ #finish closing until s1 completes.
54
+ Thread.start {@ss.close}
55
+ sleep(0.1)
56
+
57
+ #try to connect to the dying server.
58
+ s2=nil
59
+ Thread.start {s2 = TCPSocket.open("localhost", @port)}
60
+ sleep(0.1)
61
+ assert_equal(nil, s2, "shouldn't have connected")
62
+ assert_not_equal(nil, s1, "Should have connected")
63
+
64
+ #Complete the s1 session.
65
+ s1.write("testCloseRaceCondition");
66
+ s1.close
67
+
68
+ #collect the pending s2 connection
69
+ testThread = Thread.current
70
+ @ss.serve(@port) {testThread.wakeup}
71
+ Thread.stop
72
+ assert_not_equal(nil, s2)
73
+ s2.close
74
+ @ss.close
75
+ end
76
+
77
+ def testSessionCount
78
+ @ss.serve(@port) do |serverSocket|
79
+ message = serverSocket.gets
80
+ end
81
+
82
+ s1 = nil;
83
+ Thread.start {s1 = TCPSocket.open("localhost", @port)}
84
+ sleep(0.2)
85
+ assert_equal(1, @ss.pendingSessions);
86
+ s1.write("testSessionCount");
87
+ s1.close
88
+ sleep(0.2)
89
+ assert_equal(0, @ss.pendingSessions)
90
+ @ss.close
91
+ end
92
+
93
+ def connect(port)
94
+ s = TCPSocket.open("localhost", @port)
95
+ sleep(0.1)
96
+ s.close
97
+ end
98
+ end
@@ -0,0 +1,6 @@
1
+ $: << File.expand_path(File.dirname(__FILE__) + "/../lib/rubyslim")
2
+ require "rubygems"
3
+ require "spec"
4
+ require 'jcode'
5
+ $KCODE="UTF8"
6
+ require 'timeout'
@@ -0,0 +1,50 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/spec_helper")
2
+ require "statement_executor"
3
+
4
+ describe StatementExecutor do
5
+ before do
6
+ @executor = StatementExecutor.new
7
+ end
8
+
9
+ it "can split class names" do
10
+ @executor.split_class_name("a::b::c").should == ["a", "b", "c"]
11
+ end
12
+
13
+ it "can convert module names to file names" do
14
+ @executor.to_file_name("MyModuleName").should == "my_module_name"
15
+ end
16
+
17
+ it "can build the path name to a class" do
18
+ @executor.make_path_to_class("ModuleOne::ModuleTwo::MyClass").should == "module_one/module_two/my_class"
19
+ end
20
+
21
+ it "can require a class" do
22
+ @executor.add_module("MyModule")
23
+ proc = proc {@executor.require_class("MyModule::MyClass")}
24
+ proc.should raise_error(SlimError, /message:<<COULD_NOT_INVOKE_CONSTRUCTOR MyModule::MyClass failed to find in/)
25
+ end
26
+
27
+ it "can handle symbols whose values are objects" do
28
+ @executor.set_symbol("foo", OpenStruct.new(:foo => "bar"))
29
+ @executor.get_symbol("foo").foo.should == "bar"
30
+ @executor.replace_symbol("$foo").foo.should == "bar"
31
+ end
32
+
33
+ describe "accessor translation" do
34
+ class TestInstance
35
+ attr_accessor :foo
36
+ end
37
+
38
+ before(:each) do
39
+ @instance = TestInstance.new
40
+ @executor.set_instance("test_instance", @instance)
41
+ end
42
+
43
+ it "should translate setters" do
44
+ @executor.call("test_instance", "set_foo", "123")
45
+ @instance.foo.should == "123"
46
+ end
47
+
48
+ end
49
+
50
+ end
@@ -0,0 +1,17 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/spec_helper")
2
+ require "statement"
3
+
4
+ describe Statement do
5
+ before do
6
+ @statement = Statement.new("")
7
+ end
8
+
9
+ it "can translate slim class names to ruby class names" do
10
+ @statement.slim_to_ruby_class("myPackage.MyClass").should == "MyPackage::MyClass"
11
+ @statement.slim_to_ruby_class("this.that::theOther").should == "This::That::TheOther"
12
+ end
13
+
14
+ it "can translate slim method names to ruby method names" do
15
+ @statement.slim_to_ruby_method("myMethod").should == "my_method"
16
+ end
17
+ end
@@ -0,0 +1,31 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/spec_helper")
2
+ require 'table_to_hash_converter'
3
+
4
+ def shouldNotChange(string)
5
+ TableToHashConverter.convert(string).should == string
6
+ end
7
+
8
+ describe TableToHashConverter do
9
+ [
10
+ ["some string", "not a table"],
11
+ ["<table>blah", "incomplete table"],
12
+ ["<table><tr><td>hi</td></tr></table>", "too few columns"],
13
+ ["<table><tr><td>hi</td><td>med</td><td>lo</td></tr></table>", "too many columns"]
14
+ ].each do |string, reason|
15
+ it "#{reason}: should not change '#{string}'" do
16
+ shouldNotChange(string)
17
+ end
18
+ end
19
+ end
20
+
21
+ describe TableToHashConverter do
22
+ [
23
+ ["<table><tr><td>name</td><td>bob</td></tr></table>", {:name=>"bob"}],
24
+ [" <table> <tr> <td> name </td> <td> bob </td> </tr> </table> ", {:name=>"bob"}],
25
+ ["<table><tr><td>name</td><td>bob</td></tr><tr><td>addr</td><td>here</td></tr></table>", {:name=>'bob', :addr=>'here'}]
26
+ ].each do |table, hash|
27
+ it "should match #{table} to #{hash}" do
28
+ TableToHashConverter.convert(table).should == hash
29
+ end
30
+ end
31
+ end
metadata ADDED
@@ -0,0 +1,241 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rsel
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Marcus French
14
+ - Dale Straw
15
+ - Eric Pierce
16
+ autorequire:
17
+ bindir: bin
18
+ cert_chain: []
19
+
20
+ date: 2011-07-20 00:00:00 -06:00
21
+ default_executable:
22
+ dependencies:
23
+ - !ruby/object:Gem::Dependency
24
+ name: rubyslim-unofficial
25
+ prerelease: false
26
+ requirement: &id001 !ruby/object:Gem::Requirement
27
+ none: false
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ hash: 3
32
+ segments:
33
+ - 0
34
+ version: "0"
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: xpath
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
48
+ version: "0"
49
+ type: :runtime
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: selenium-client
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ hash: 3
60
+ segments:
61
+ - 0
62
+ version: "0"
63
+ type: :runtime
64
+ version_requirements: *id003
65
+ - !ruby/object:Gem::Dependency
66
+ name: rake
67
+ prerelease: false
68
+ requirement: &id004 !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - "="
72
+ - !ruby/object:Gem::Version
73
+ hash: 49
74
+ segments:
75
+ - 0
76
+ - 8
77
+ - 7
78
+ version: 0.8.7
79
+ type: :development
80
+ version_requirements: *id004
81
+ - !ruby/object:Gem::Dependency
82
+ name: sinatra
83
+ prerelease: false
84
+ requirement: &id005 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ hash: 3
90
+ segments:
91
+ - 0
92
+ version: "0"
93
+ type: :development
94
+ version_requirements: *id005
95
+ - !ruby/object:Gem::Dependency
96
+ name: mongrel
97
+ prerelease: false
98
+ requirement: &id006 !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ hash: 3
104
+ segments:
105
+ - 0
106
+ version: "0"
107
+ type: :development
108
+ version_requirements: *id006
109
+ - !ruby/object:Gem::Dependency
110
+ name: yard
111
+ prerelease: false
112
+ requirement: &id007 !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ hash: 3
118
+ segments:
119
+ - 0
120
+ version: "0"
121
+ type: :development
122
+ version_requirements: *id007
123
+ - !ruby/object:Gem::Dependency
124
+ name: rspec
125
+ prerelease: false
126
+ requirement: &id008 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ hash: 7
132
+ segments:
133
+ - 2
134
+ - 2
135
+ - 0
136
+ version: 2.2.0
137
+ type: :development
138
+ version_requirements: *id008
139
+ description: " Rsel provides a Slim fixture for running Selenium tests, with\n step methods written in Ruby.\n"
140
+ email: epierce@automation-excellence.com
141
+ executables: []
142
+
143
+ extensions: []
144
+
145
+ extra_rdoc_files: []
146
+
147
+ files:
148
+ - .gitignore
149
+ - .yardopts
150
+ - Gemfile
151
+ - MIT-LICENSE
152
+ - README.md
153
+ - Rakefile
154
+ - docs/custom.md
155
+ - docs/development.md
156
+ - docs/index.md
157
+ - docs/install.md
158
+ - docs/todo.md
159
+ - docs/usage.md
160
+ - lib/rsel.rb
161
+ - lib/rsel/exceptions.rb
162
+ - lib/rsel/selenium_test.rb
163
+ - rsel.gemspec
164
+ - spec/selenium_test_spec.rb
165
+ - spec/spec_helper.rb
166
+ - test/app.rb
167
+ - test/config.ru
168
+ - test/views/about.erb
169
+ - test/views/form.erb
170
+ - test/views/index.erb
171
+ - vendor/rubyslim-0.1.1/.gitignore
172
+ - vendor/rubyslim-0.1.1/README.md
173
+ - vendor/rubyslim-0.1.1/Rakefile
174
+ - vendor/rubyslim-0.1.1/bin/rubyslim
175
+ - vendor/rubyslim-0.1.1/lib/rubyslim/list_deserializer.rb
176
+ - vendor/rubyslim-0.1.1/lib/rubyslim/list_executor.rb
177
+ - vendor/rubyslim-0.1.1/lib/rubyslim/list_serializer.rb
178
+ - vendor/rubyslim-0.1.1/lib/rubyslim/ruby_slim.rb
179
+ - vendor/rubyslim-0.1.1/lib/rubyslim/slim_error.rb
180
+ - vendor/rubyslim-0.1.1/lib/rubyslim/slim_helper_library.rb
181
+ - vendor/rubyslim-0.1.1/lib/rubyslim/socket_service.rb
182
+ - vendor/rubyslim-0.1.1/lib/rubyslim/statement.rb
183
+ - vendor/rubyslim-0.1.1/lib/rubyslim/statement_executor.rb
184
+ - vendor/rubyslim-0.1.1/lib/rubyslim/table_to_hash_converter.rb
185
+ - vendor/rubyslim-0.1.1/lib/test_module/library_new.rb
186
+ - vendor/rubyslim-0.1.1/lib/test_module/library_old.rb
187
+ - vendor/rubyslim-0.1.1/lib/test_module/should_not_find_test_slim_in_here/test_slim.rb
188
+ - vendor/rubyslim-0.1.1/lib/test_module/simple_script.rb
189
+ - vendor/rubyslim-0.1.1/lib/test_module/test_chain.rb
190
+ - vendor/rubyslim-0.1.1/lib/test_module/test_slim.rb
191
+ - vendor/rubyslim-0.1.1/lib/test_module/test_slim_with_arguments.rb
192
+ - vendor/rubyslim-0.1.1/lib/test_module/test_slim_with_no_sut.rb
193
+ - vendor/rubyslim-0.1.1/rubyslim.gemspec
194
+ - vendor/rubyslim-0.1.1/spec/instance_creation_spec.rb
195
+ - vendor/rubyslim-0.1.1/spec/it8f_spec.rb
196
+ - vendor/rubyslim-0.1.1/spec/list_deserializer_spec.rb
197
+ - vendor/rubyslim-0.1.1/spec/list_executor_spec.rb
198
+ - vendor/rubyslim-0.1.1/spec/list_serialzer_spec.rb
199
+ - vendor/rubyslim-0.1.1/spec/method_invocation_spec.rb
200
+ - vendor/rubyslim-0.1.1/spec/slim_helper_library_spec.rb
201
+ - vendor/rubyslim-0.1.1/spec/socket_service_spec.rb
202
+ - vendor/rubyslim-0.1.1/spec/spec_helper.rb
203
+ - vendor/rubyslim-0.1.1/spec/statement_executor_spec.rb
204
+ - vendor/rubyslim-0.1.1/spec/statement_spec.rb
205
+ - vendor/rubyslim-0.1.1/spec/table_to_hash_converter_spec.rb
206
+ has_rdoc: true
207
+ homepage: http://github.com/a-e/rsel
208
+ licenses: []
209
+
210
+ post_install_message:
211
+ rdoc_options: []
212
+
213
+ require_paths:
214
+ - lib
215
+ required_ruby_version: !ruby/object:Gem::Requirement
216
+ none: false
217
+ requirements:
218
+ - - ">="
219
+ - !ruby/object:Gem::Version
220
+ hash: 3
221
+ segments:
222
+ - 0
223
+ version: "0"
224
+ required_rubygems_version: !ruby/object:Gem::Requirement
225
+ none: false
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ hash: 3
230
+ segments:
231
+ - 0
232
+ version: "0"
233
+ requirements: []
234
+
235
+ rubyforge_project:
236
+ rubygems_version: 1.3.7
237
+ signing_key:
238
+ specification_version: 3
239
+ summary: Runs Selenium tests from FitNesse
240
+ test_files: []
241
+