celerity 0.0.4 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. data/History.txt +33 -0
  2. data/README.txt +19 -9
  3. data/Rakefile +9 -3
  4. data/lib/celerity.rb +39 -39
  5. data/lib/celerity/browser.rb +538 -153
  6. data/lib/celerity/clickable_element.rb +48 -7
  7. data/lib/celerity/collections.rb +155 -131
  8. data/lib/celerity/container.rb +766 -385
  9. data/lib/celerity/default_viewer.rb +10 -0
  10. data/lib/celerity/disabled_element.rb +19 -2
  11. data/lib/celerity/element.rb +152 -83
  12. data/lib/celerity/element_collection.rb +106 -0
  13. data/lib/celerity/element_locator.rb +89 -66
  14. data/lib/celerity/elements/button.rb +23 -13
  15. data/lib/celerity/elements/file_field.rb +17 -5
  16. data/lib/celerity/elements/form.rb +21 -16
  17. data/lib/celerity/elements/frame.rb +75 -53
  18. data/lib/celerity/elements/image.rb +76 -63
  19. data/lib/celerity/elements/label.rb +4 -2
  20. data/lib/celerity/elements/link.rb +30 -18
  21. data/lib/celerity/elements/meta.rb +6 -0
  22. data/lib/celerity/{non_control_elements.rb → elements/non_control_elements.rb} +106 -76
  23. data/lib/celerity/elements/option.rb +16 -2
  24. data/lib/celerity/elements/radio_check.rb +55 -20
  25. data/lib/celerity/elements/select_list.rb +65 -29
  26. data/lib/celerity/elements/table.rb +141 -94
  27. data/lib/celerity/elements/table_cell.rb +13 -6
  28. data/lib/celerity/elements/{table_body.rb → table_elements.rb} +20 -8
  29. data/lib/celerity/elements/table_row.rb +23 -7
  30. data/lib/celerity/elements/text_field.rb +89 -33
  31. data/lib/celerity/exception.rb +77 -41
  32. data/lib/celerity/extra/method_generator.rb +42 -24
  33. data/lib/celerity/htmlunit.rb +49 -0
  34. data/lib/celerity/htmlunit/commons-collections-3.2.1.jar +0 -0
  35. data/lib/celerity/htmlunit/htmlunit-2.5-SNAPSHOT.jar +0 -0
  36. data/lib/celerity/htmlunit/htmlunit-core-js-2.5-SNAPSHOT.jar +0 -0
  37. data/lib/celerity/htmlunit/nekohtml-1.9.12-20090308.130127-11.jar +0 -0
  38. data/lib/celerity/htmlunit/serializer-2.7.1.jar +0 -0
  39. data/lib/celerity/htmlunit/xalan-2.7.1.jar +0 -0
  40. data/lib/celerity/htmlunit/xml-apis-1.3.04.jar +0 -0
  41. data/lib/celerity/identifier.rb +3 -2
  42. data/lib/celerity/input_element.rb +5 -5
  43. data/lib/celerity/listener.rb +135 -0
  44. data/lib/celerity/resources/no_viewer.png +0 -0
  45. data/lib/celerity/util.rb +88 -0
  46. data/lib/celerity/version.rb +4 -3
  47. data/lib/celerity/watir_compatibility.rb +35 -25
  48. data/tasks/jar.rake +57 -0
  49. metadata +35 -142
  50. data.tar.gz.sig +0 -0
  51. data/Manifest.txt +0 -150
  52. data/lib/celerity/element_collections.rb +0 -54
  53. data/lib/celerity/element_map.rb +0 -51
  54. data/lib/celerity/elements/table_footer.rb +0 -30
  55. data/lib/celerity/elements/table_header.rb +0 -30
  56. data/lib/celerity/htmlunit/commons-collections-3.2.jar +0 -0
  57. data/lib/celerity/htmlunit/download.sh +0 -23
  58. data/lib/celerity/htmlunit/htmlunit-2.2.jar +0 -0
  59. data/lib/celerity/htmlunit/htmlunit-core-js-2.2.jar +0 -0
  60. data/lib/celerity/htmlunit/nekohtml-1.9.8.jar +0 -0
  61. data/lib/celerity/htmlunit/xalan-2.7.0.jar +0 -0
  62. data/lib/celerity/htmlunit/xml-apis-1.0.b2.jar +0 -0
  63. data/spec/area_spec.rb +0 -97
  64. data/spec/areas_spec.rb +0 -40
  65. data/spec/browser_spec.rb +0 -266
  66. data/spec/button_spec.rb +0 -227
  67. data/spec/buttons_spec.rb +0 -39
  68. data/spec/checkbox_spec.rb +0 -302
  69. data/spec/checkboxes_spec.rb +0 -38
  70. data/spec/div_spec.rb +0 -207
  71. data/spec/divs_spec.rb +0 -39
  72. data/spec/element_spec.rb +0 -79
  73. data/spec/filefield_spec.rb +0 -123
  74. data/spec/filefields_spec.rb +0 -40
  75. data/spec/form_spec.rb +0 -59
  76. data/spec/forms_spec.rb +0 -41
  77. data/spec/frame_spec.rb +0 -121
  78. data/spec/frames_spec.rb +0 -71
  79. data/spec/hidden_spec.rb +0 -127
  80. data/spec/hiddens_spec.rb +0 -39
  81. data/spec/hn_spec.rb +0 -104
  82. data/spec/hns_spec.rb +0 -45
  83. data/spec/html/2000_spans.html +0 -2009
  84. data/spec/html/bug_duplicate_attributes.html +0 -14
  85. data/spec/html/bug_javascript_001.html +0 -11
  86. data/spec/html/form_js_bug.html +0 -11
  87. data/spec/html/forms_with_input_elements.html +0 -114
  88. data/spec/html/frame_1.html +0 -17
  89. data/spec/html/frame_2.html +0 -16
  90. data/spec/html/frames.html +0 -11
  91. data/spec/html/iframes.html +0 -12
  92. data/spec/html/images.html +0 -27
  93. data/spec/html/images/1.gif +0 -0
  94. data/spec/html/images/2.gif +0 -0
  95. data/spec/html/images/3.gif +0 -0
  96. data/spec/html/images/button.jpg +0 -0
  97. data/spec/html/images/circle.jpg +0 -0
  98. data/spec/html/images/map.gif +0 -0
  99. data/spec/html/images/map2.gif +0 -0
  100. data/spec/html/images/minus.gif +0 -0
  101. data/spec/html/images/originaltriangle.jpg +0 -0
  102. data/spec/html/images/plus.gif +0 -0
  103. data/spec/html/images/square.jpg +0 -0
  104. data/spec/html/images/triangle.jpg +0 -0
  105. data/spec/html/invalid_js.html +0 -11
  106. data/spec/html/latin1_text.html +0 -17
  107. data/spec/html/non_control_elements.html +0 -115
  108. data/spec/html/simple_ajax.html +0 -22
  109. data/spec/html/tables.html +0 -119
  110. data/spec/html/utf8_text.html +0 -15
  111. data/spec/htmlunit_spec.rb +0 -26
  112. data/spec/image_spec.rb +0 -220
  113. data/spec/images_spec.rb +0 -39
  114. data/spec/label_spec.rb +0 -79
  115. data/spec/labels_spec.rb +0 -40
  116. data/spec/li_spec.rb +0 -139
  117. data/spec/link_spec.rb +0 -189
  118. data/spec/links_spec.rb +0 -43
  119. data/spec/lis_spec.rb +0 -40
  120. data/spec/map_spec.rb +0 -102
  121. data/spec/maps_spec.rb +0 -40
  122. data/spec/meta_spec.rb +0 -8
  123. data/spec/ol_spec.rb +0 -87
  124. data/spec/ols_spec.rb +0 -40
  125. data/spec/option_spec.rb +0 -154
  126. data/spec/p_spec.rb +0 -171
  127. data/spec/pre_spec.rb +0 -135
  128. data/spec/pres_spec.rb +0 -40
  129. data/spec/ps_spec.rb +0 -40
  130. data/spec/radio_spec.rb +0 -299
  131. data/spec/radios_spec.rb +0 -42
  132. data/spec/select_list_spec.rb +0 -299
  133. data/spec/select_lists_spec.rb +0 -47
  134. data/spec/span_spec.rb +0 -184
  135. data/spec/spans_spec.rb +0 -64
  136. data/spec/spec.opts +0 -1
  137. data/spec/spec_helper.rb +0 -55
  138. data/spec/table_bodies_spec.rb +0 -57
  139. data/spec/table_body_spec.rb +0 -111
  140. data/spec/table_cell_spec.rb +0 -74
  141. data/spec/table_cells_spec.rb +0 -59
  142. data/spec/table_footer_spec.rb +0 -101
  143. data/spec/table_footers_spec.rb +0 -55
  144. data/spec/table_header_spec.rb +0 -101
  145. data/spec/table_headers_spec.rb +0 -55
  146. data/spec/table_row_spec.rb +0 -104
  147. data/spec/table_rows_spec.rb +0 -58
  148. data/spec/table_spec.rb +0 -160
  149. data/spec/tables_spec.rb +0 -42
  150. data/spec/text_field_spec.rb +0 -323
  151. data/spec/text_fields_spec.rb +0 -44
  152. data/spec/ul_spec.rb +0 -88
  153. data/spec/uls_spec.rb +0 -40
  154. data/spec/watir_compatibility_spec.rb +0 -260
  155. data/support/spec_server.rb +0 -73
  156. data/tasks/rspec.rake +0 -30
  157. data/tasks/specserver.rake +0 -21
  158. metadata.gz.sig +0 -0
data/spec/uls_spec.rb DELETED
@@ -1,40 +0,0 @@
1
- require File.dirname(__FILE__) + '/spec_helper.rb'
2
-
3
- describe "Uls" do
4
-
5
- before :all do
6
- @browser = Browser.new
7
- end
8
-
9
- before :each do
10
- @browser.goto(TEST_HOST + "/non_control_elements.html")
11
- end
12
-
13
- describe "#length" do
14
- it "should return the number of uls" do
15
- @browser.uls.length.should == 2
16
- end
17
- end
18
-
19
- describe "#[]" do
20
- it "should return the ul at the given index" do
21
- @browser.uls[1].id.should == "navbar"
22
- end
23
- end
24
-
25
- describe "#each" do
26
- it "should iterate through uls correctly" do
27
- @browser.uls.each_with_index do |ul, index|
28
- ul.name.should == @browser.ul(:index, index+1).name
29
- ul.id.should == @browser.ul(:index, index+1).id
30
- ul.value.should == @browser.ul(:index, index+1).value
31
- end
32
- end
33
- end
34
-
35
- after :all do
36
- @browser.close
37
- end
38
-
39
- end
40
-
@@ -1,260 +0,0 @@
1
- require File.dirname(__FILE__) + '/spec_helper.rb'
2
-
3
- describe "IE" do
4
-
5
- before :each do
6
- @browser = Browser.new
7
- end
8
-
9
- # Class methods
10
- it "should respond to .speed" do
11
- Browser.should respond_to("speed")
12
- end
13
-
14
- it "should respond to .speed=" do
15
- Browser.should respond_to("speed=")
16
- end
17
-
18
- it "should respond to .set_fast_speed" do
19
- Browser.should respond_to("set_fast_speed")
20
- end
21
-
22
- it "should respond to .set_slow_speed" do
23
- Browser.should respond_to("set_slow_speed")
24
- end
25
-
26
- it "should respond to .attach_timeout" do
27
- Browser.should respond_to("attach_timeout")
28
- end
29
-
30
- it "should respond to .attach_timeout=" do
31
- Browser.should respond_to("attach_timeout=")
32
- end
33
-
34
- it "should respond to .reset_attach_timeout" do
35
- Browser.should respond_to("reset_attach_timeout")
36
- end
37
-
38
- it "should respond to .visible" do
39
- Browser.should respond_to("visible")
40
- end
41
-
42
- it "should respond to .each" do
43
- Browser.should respond_to("each")
44
- end
45
-
46
- it "should respond to .quit" do
47
- Browser.should respond_to("quit")
48
- end
49
-
50
- it "should alias .start_window to .start" do
51
- Browser.should respond_to("start")
52
- end
53
-
54
- # Instance methods
55
- it "should respond to #visible" do
56
- @browser.should respond_to("visible")
57
- end
58
-
59
- it "should respond to #visible=" do
60
- @browser.should respond_to("visible=")
61
- end
62
-
63
- it "should respond to #wait" do
64
- @browser.should respond_to("wait")
65
- end
66
-
67
- describe "#bring_to_front" do
68
- it "should return true" do
69
- @browser.bring_to_front.should be_true
70
- end
71
- end
72
-
73
- describe "#checkBox" do
74
- it "should behave like #checkbox" do
75
- @browser.goto(TEST_HOST + "/forms_with_input_elements.html")
76
- @browser.checkbox(:id, "new_user_interests_books").should exist
77
- @browser.checkbox(:id, "new_user_interests_cars").should_not be_set
78
- @browser.checkbox(:id, "new_user_interests_cars").set
79
- @browser.checkbox(:id, "new_user_interests_cars").should be_set
80
- end
81
- end
82
-
83
- end
84
-
85
- describe "Button" do
86
-
87
- before :all do
88
- @browser = Browser.new
89
- end
90
-
91
- before :each do
92
- @browser.goto(TEST_HOST + "/forms_with_input_elements.html")
93
- end
94
-
95
- describe "#click_no_wait" do
96
- it "should behave like #click" do
97
- @browser.button(:id, 'new_user_submit').click_no_wait
98
- @browser.text.should include("You posted the following content:")
99
- end
100
- end
101
-
102
- end
103
-
104
- describe "Link" do
105
-
106
- before :all do
107
- @browser = Browser.new
108
- end
109
-
110
- before :each do
111
- @browser.goto(TEST_HOST + "/non_control_elements.html")
112
- end
113
-
114
- describe "#click_no_wait" do
115
- it "should behave like #click" do
116
- @browser.link(:text, "Link 3").click_no_wait
117
- @browser.text.include?("User administration").should be_true
118
- end
119
- end
120
-
121
- end
122
-
123
- describe "Image" do
124
-
125
- before :all do
126
- @browser = Browser.new
127
- end
128
-
129
- before :each do
130
- @browser.goto(TEST_HOST + "/images.html")
131
- end
132
-
133
- describe "#hasLoaded?" do
134
- it "should behave like #loaded?" do
135
- @browser.image(:name, 'circle').hasLoaded?.should be_true
136
- end
137
- end
138
-
139
- describe "#has_loaded?" do
140
- it "should behave like #loaded" do
141
- @browser.image(:name, 'circle').has_loaded?.should be_true
142
- end
143
- end
144
-
145
- describe "#fileSize" do
146
- it "should behave like #file_size" do
147
- @browser.image(:id, 'square').fileSize.should == 788
148
- end
149
- end
150
-
151
- describe "#fileCreatedDate" do
152
- it "should behave like #file_created_date" do
153
- image = @browser.image(:index, 2)
154
- path = File.dirname(__FILE__) + "/html/#{image.src}"
155
- image.file_created_date.to_i.should == File.mtime(path).to_i
156
- end
157
- end
158
-
159
- end
160
-
161
- describe "RadioCheckCommon" do
162
- before :all do
163
- @browser = Browser.new
164
- end
165
-
166
- before :each do
167
- @browser.goto(TEST_HOST + "/forms_with_input_elements.html")
168
- end
169
-
170
- describe "#is_set?" do
171
- it "should behave like #set?" do
172
- @browser.radio(:id, "new_user_newsletter_yes").is_set?.should be_true
173
- end
174
- end
175
-
176
- describe "#isSet?" do
177
- it "should behave like #set?" do
178
- @browser.radio(:id, "new_user_newsletter_yes").isSet?.should be_true
179
- end
180
- end
181
-
182
- describe "#get_state" do
183
- it "should behave like #set?" do
184
- @browser.checkbox(:id, "new_user_interests_books").get_state.should be_true
185
- end
186
- end
187
-
188
- describe "#getState" do
189
- it "should behave like #set?" do
190
- @browser.checkbox(:id, "new_user_interests_books").getState.should be_true
191
- end
192
- end
193
-
194
- end
195
-
196
- describe "SelectList" do
197
-
198
- before :all do
199
- @browser = Browser.new
200
- end
201
-
202
- before :each do
203
- @browser.goto(TEST_HOST + "/forms_with_input_elements.html")
204
- end
205
-
206
- describe "#getSelectedItems" do
207
- it "should behave like #get_selected_items" do
208
- @browser.select_list(:name, "new_user_country").getSelectedItems.should == ["Norway"]
209
- @browser.select_list(:name, "new_user_languages").getSelectedItems.should == ["English", "Norwegian"]
210
- end
211
- end
212
-
213
- describe "#getAllContents" do
214
- it "should behave like #get_all_contents" do
215
- @browser.select_list(:name, "new_user_country").getAllContents.should == ["Denmark" ,"Norway" , "Sweden" , "United Kingdom", "USA"]
216
- end
217
- end
218
-
219
- describe "#clearSelection" do
220
- it "should behave like #clear selection" do
221
- @browser.select_list(:name, "new_user_languages").clearSelection
222
- @browser.select_list(:name, "new_user_languages").getSelectedItems.should be_empty
223
- end
224
- end
225
-
226
- describe "#select_value" do
227
- it "should behave like #select" do
228
- @browser.select_list(:name, "new_user_country").select_value("Denmark")
229
- @browser.select_list(:name, "new_user_country").getSelectedItems.should == ["Denmark"]
230
- end
231
- end
232
-
233
- end
234
-
235
- describe "TextField" do
236
-
237
- before :all do
238
- @browser = Browser.new
239
- end
240
-
241
- before :each do
242
- @browser.goto(TEST_HOST + "/forms_with_input_elements.html")
243
- end
244
-
245
- describe "#dragContentsTo" do
246
- it "should behave like #drag_contents_to" do
247
- @browser.text_field(:name, "new_user_first_name").set("Smith")
248
- @browser.text_field(:name, "new_user_first_name").dragContentsTo(:name, "new_user_last_name")
249
- @browser.text_field(:name, "new_user_first_name").value.should be_empty
250
- @browser.text_field(:id, "new_user_last_name").value.should == "Smith"
251
- end
252
- end
253
-
254
- describe "#getContents" do
255
- it "should behave like #get_contents" do
256
- @browser.text_field(:name, "new_user_occupation").getContents.should == "Developer"
257
- end
258
- end
259
-
260
- end
@@ -1,73 +0,0 @@
1
- require 'webrick'
2
- require 'webrick/https'
3
-
4
- module Celerity
5
-
6
- class PostHandler < WEBrick::HTTPServlet::AbstractServlet
7
- def do_POST(req, resp)
8
- resp['content-type'] = 'text/html'
9
- resp.body << "You posted the following content:\n"
10
- resp.body << req.body
11
- end
12
- end
13
-
14
- class PlainTextHandler < WEBrick::HTTPServlet::AbstractServlet
15
- def do_GET(req, resp)
16
- resp['content-type'] = 'text/plain'
17
- resp.body << "This is text/plain"
18
- end
19
- end
20
-
21
- class SlowAjaxHandler < WEBrick::HTTPServlet::AbstractServlet
22
- def do_GET(req, resp)
23
- sleep 10
24
- resp['content-type'] = 'text/html'
25
- resp.body << "A slooow ajax response"
26
- end
27
- end
28
-
29
- class SpecServer
30
- attr_reader :host, :thread, :log_file
31
-
32
- def initialize(opts = {})
33
- @ssl = opts[:ssl] || false
34
- @doc_root = opts[:doc_root] || File.join(File.dirname(__FILE__),"..", "spec", "html")
35
- @log_file = opts[:log_file] || File.join(File.dirname(__FILE__), "..", "log", "webrick_log.txt")
36
- @port = opts[:port] || 2000
37
- end
38
-
39
- def run
40
- unless File.exist?(@log_file)
41
- FileUtils.mkdir_p(File.dirname(@log_file))
42
- FileUtils.touch(@log_file)
43
- end
44
-
45
- server_options = {
46
- :Port => @port,
47
- :DocumentRoot => @doc_root,
48
- :Logger => WEBrick::Log.new(@log_file, WEBrick::BasicLog::WARN),
49
- :AccessLog => [],
50
- }
51
-
52
- if @ssl
53
- # java complains about this certifcate, need to create our own (when running under MRI)
54
- server_options.merge!(
55
- :SSLEnable => true,
56
- :SSLVerifyClient => ::OpenSSL::SSL::VERIFY_NONE,
57
- :SSLCertName => [["CN", "Celerity"]]
58
- )
59
- @host = "https://localhost:#{@port}"
60
- else
61
- @host = "http://localhost:#{@port}"
62
- end
63
-
64
- server = WEBrick::HTTPServer.new(server_options)
65
- server.mount("/", WEBrick::HTTPServlet::FileHandler, @doc_root, {:FancyIndexing=>true})
66
- server.mount("/post_to_me", PostHandler)
67
- server.mount("/plain_text", PlainTextHandler)
68
- server.mount("/ajax", SlowAjaxHandler)
69
-
70
- @thread = Thread.new { server.start }
71
- end
72
- end
73
- end
data/tasks/rspec.rake DELETED
@@ -1,30 +0,0 @@
1
- begin
2
- require 'spec'
3
- rescue LoadError
4
- require 'rubygems'
5
- require 'spec'
6
- end
7
-
8
- begin
9
- require 'spec/rake/spectask'
10
- rescue LoadError
11
- puts <<-EOS
12
- To use rspec for testing you must install rspec gem:
13
- gem install rspec
14
- EOS
15
- exit(0)
16
- end
17
-
18
- desc "Run the specs under spec/"
19
- Spec::Rake::SpecTask.new do |t|
20
- t.spec_opts = ['--options', "spec/spec.opts"]
21
- t.spec_files = FileList['spec/**/*_spec.rb']
22
-
23
- begin
24
- require 'rcov'
25
- t.rcov = true
26
- t.rcov_opts = ['--exclude', 'spec,fcntl,path_helper', '--no-rcovrt']
27
- rescue LoadError
28
- end
29
-
30
- end
@@ -1,21 +0,0 @@
1
- namespace :specserver do
2
- task :http do
3
- require File.dirname(__FILE__) + "/../support/spec_server.rb"
4
- s = Celerity::SpecServer.new
5
- s.run
6
- puts "server started on #{s.host}\n log at: #{s.log_file}"
7
- s.thread.join
8
- end
9
-
10
- desc "Run HTTPS webserver for specs"
11
- task :https do
12
- require File.dirname(__FILE__) + "/../support/spec_server.rb"
13
- s = Celerity::SpecServer.new(:ssl => true)
14
- s.run
15
- puts "server started on #{s.host}\n log at: #{s.log_file}"
16
- s.thread.join
17
- end
18
- end
19
-
20
- desc "Run HTTP webserver for specs"
21
- task :specserver => [:'specserver:http']
metadata.gz.sig DELETED
Binary file