oki-celerity 0.8.1.dev

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. data/HISTORY +111 -0
  2. data/LICENSE +621 -0
  3. data/README.rdoc +80 -0
  4. data/Rakefile +11 -0
  5. data/VERSION.yml +5 -0
  6. data/celerity.gemspec +126 -0
  7. data/lib/celerity/browser.rb +908 -0
  8. data/lib/celerity/clickable_element.rb +73 -0
  9. data/lib/celerity/collections.rb +164 -0
  10. data/lib/celerity/container.rb +800 -0
  11. data/lib/celerity/default_viewer.rb +14 -0
  12. data/lib/celerity/disabled_element.rb +40 -0
  13. data/lib/celerity/element.rb +311 -0
  14. data/lib/celerity/element_collection.rb +107 -0
  15. data/lib/celerity/element_locator.rb +164 -0
  16. data/lib/celerity/elements/button.rb +54 -0
  17. data/lib/celerity/elements/file_field.rb +29 -0
  18. data/lib/celerity/elements/form.rb +22 -0
  19. data/lib/celerity/elements/frame.rb +86 -0
  20. data/lib/celerity/elements/image.rb +89 -0
  21. data/lib/celerity/elements/label.rb +16 -0
  22. data/lib/celerity/elements/link.rb +43 -0
  23. data/lib/celerity/elements/meta.rb +14 -0
  24. data/lib/celerity/elements/non_control_elements.rb +124 -0
  25. data/lib/celerity/elements/option.rb +38 -0
  26. data/lib/celerity/elements/radio_check.rb +114 -0
  27. data/lib/celerity/elements/select_list.rb +146 -0
  28. data/lib/celerity/elements/table.rb +153 -0
  29. data/lib/celerity/elements/table_cell.rb +36 -0
  30. data/lib/celerity/elements/table_elements.rb +42 -0
  31. data/lib/celerity/elements/table_row.rb +49 -0
  32. data/lib/celerity/elements/text_field.rb +168 -0
  33. data/lib/celerity/exception.rb +83 -0
  34. data/lib/celerity/htmlunit/apache-mime4j-0.6.jar +0 -0
  35. data/lib/celerity/htmlunit/commons-codec-1.4.jar +0 -0
  36. data/lib/celerity/htmlunit/commons-collections-3.2.1.jar +0 -0
  37. data/lib/celerity/htmlunit/commons-io-1.4.jar +0 -0
  38. data/lib/celerity/htmlunit/commons-lang-2.5.jar +0 -0
  39. data/lib/celerity/htmlunit/commons-logging-1.1.1.jar +0 -0
  40. data/lib/celerity/htmlunit/cssparser-0.9.5.jar +0 -0
  41. data/lib/celerity/htmlunit/htmlunit-2.9-SNAPSHOT.jar +0 -0
  42. data/lib/celerity/htmlunit/htmlunit-core-js-2.8.jar +0 -0
  43. data/lib/celerity/htmlunit/httpclient-4.0.1.jar +0 -0
  44. data/lib/celerity/htmlunit/httpcore-4.0.1.jar +0 -0
  45. data/lib/celerity/htmlunit/httpmime-4.0.1.jar +0 -0
  46. data/lib/celerity/htmlunit/nekohtml-1.9.14.jar +0 -0
  47. data/lib/celerity/htmlunit/sac-1.3.jar +0 -0
  48. data/lib/celerity/htmlunit/serializer-2.7.1.jar +0 -0
  49. data/lib/celerity/htmlunit/xalan-2.7.1.jar +0 -0
  50. data/lib/celerity/htmlunit/xercesImpl-2.9.1.jar +0 -0
  51. data/lib/celerity/htmlunit/xml-apis-1.3.04.jar +0 -0
  52. data/lib/celerity/htmlunit.rb +64 -0
  53. data/lib/celerity/identifier.rb +28 -0
  54. data/lib/celerity/ignoring_web_connection.rb +15 -0
  55. data/lib/celerity/input_element.rb +25 -0
  56. data/lib/celerity/javascript_debugger.rb +32 -0
  57. data/lib/celerity/listener.rb +143 -0
  58. data/lib/celerity/resources/no_viewer.png +0 -0
  59. data/lib/celerity/short_inspect.rb +20 -0
  60. data/lib/celerity/util.rb +129 -0
  61. data/lib/celerity/version.rb +3 -0
  62. data/lib/celerity/viewer_connection.rb +89 -0
  63. data/lib/celerity/watir_compatibility.rb +70 -0
  64. data/lib/celerity/xpath_support.rb +52 -0
  65. data/lib/celerity.rb +77 -0
  66. data/tasks/benchmark.rake +4 -0
  67. data/tasks/check.rake +24 -0
  68. data/tasks/clean.rake +3 -0
  69. data/tasks/fix.rake +25 -0
  70. data/tasks/jar.rake +55 -0
  71. data/tasks/jeweler.rake +28 -0
  72. data/tasks/rdoc.rake +4 -0
  73. data/tasks/snapshot.rake +25 -0
  74. data/tasks/spec.rake +26 -0
  75. data/tasks/website.rake +10 -0
  76. data/tasks/yard.rake +16 -0
  77. metadata +204 -0
@@ -0,0 +1,73 @@
1
+ module Celerity
2
+ module ClickableElement
3
+
4
+ #
5
+ # click the element
6
+ #
7
+
8
+ def click
9
+ assert_exists_and_enabled
10
+ rescue_status_code_exception { @object.click }
11
+ end
12
+
13
+ #
14
+ # double click the element (Celerity only)
15
+ #
16
+
17
+ def double_click
18
+ assert_exists_and_enabled
19
+ rescue_status_code_exception { @object.dblClick }
20
+ end
21
+
22
+ #
23
+ # right click the element (Celerity only)
24
+ #
25
+
26
+ def right_click
27
+ assert_exists_and_enabled
28
+ rescue_status_code_exception { @object.rightClick }
29
+ end
30
+
31
+ #
32
+ # Click the element and return a new Browser instance with the resulting page.
33
+ # This is useful for elements that trigger popups when clicked.
34
+ #
35
+ # @return [Celerity::Browser]
36
+ #
37
+
38
+ def click_and_attach
39
+ assert_exists_and_enabled
40
+ browser = Browser.new(@browser.options.dup)
41
+ browser.webclient.set_cookie_manager(
42
+ @browser.webclient.get_cookie_manager
43
+ ) # hirobumi: we do want cookies as well.
44
+
45
+ @browser.disable_event_listener do
46
+ rescue_status_code_exception { browser.page = @object.click }
47
+ end
48
+
49
+ browser
50
+ end
51
+
52
+ #
53
+ # Click the element and just return the content as IO. Current page stays unchanged.
54
+ # This can be used to download content that normally isn't rendered in a browser.
55
+ #
56
+ # @return [IO]
57
+ #
58
+
59
+ def download
60
+ assert_exists_and_enabled
61
+ @browser.disable_event_listener do
62
+ @object.click.getWebResponse.getContentAsStream.to_io
63
+ end
64
+ end
65
+
66
+ private
67
+
68
+ def assert_exists_and_enabled
69
+ assert_exists
70
+ assert_enabled if respond_to?(:assert_enabled)
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,164 @@
1
+ module Celerity
2
+
3
+ class Frames < ElementCollection
4
+ def element_class; Frame; end
5
+ end
6
+
7
+ class Buttons < ElementCollection
8
+ def element_class; Button; end
9
+ end
10
+
11
+ class FileFields < ElementCollection
12
+ def element_class; FileField; end
13
+ end
14
+
15
+ class CheckBoxes < ElementCollection
16
+ def element_class; CheckBox; end
17
+ end
18
+
19
+ class Radios < ElementCollection
20
+ def element_class; Radio; end
21
+ end
22
+
23
+ class SelectLists < ElementCollection
24
+ def element_class; SelectList; end
25
+ end
26
+
27
+ class Links < ElementCollection
28
+ def element_class; Link; end
29
+ end
30
+
31
+ class Uls < ElementCollection
32
+ def element_class; Ul; end
33
+ end
34
+
35
+ class Ols < ElementCollection
36
+ def element_class; Ol; end
37
+ end
38
+
39
+ class Lis < ElementCollection
40
+ def element_class; Li; end
41
+ end
42
+
43
+ class Dds < ElementCollection
44
+ def element_class; Dd; end
45
+ end
46
+
47
+ class Dls < ElementCollection
48
+ def element_class; Dl; end
49
+ end
50
+
51
+ class Dts < ElementCollection
52
+ def element_class; Dt; end
53
+ end
54
+
55
+ class Ems < ElementCollection
56
+ def element_class; Em; end
57
+ end
58
+
59
+ class Maps < ElementCollection
60
+ def element_class; Map; end
61
+ end
62
+
63
+ class Areas < ElementCollection
64
+ def element_class; Area; end
65
+ end
66
+
67
+ class Images < ElementCollection
68
+ def element_class; Image; end
69
+ end
70
+
71
+ class TextFields < ElementCollection
72
+ def element_class; TextField; end
73
+ end
74
+
75
+ class Hiddens < ElementCollection
76
+ def element_class; Hidden; end
77
+ end
78
+
79
+ class Tables < ElementCollection
80
+ def element_class; Table; end
81
+ end
82
+
83
+ class TableHeaders < ElementCollection
84
+ def element_class; TableHeader; end
85
+ end
86
+ class TableBodies < ElementCollection
87
+ def element_class; TableBody; end
88
+ end
89
+ class TableFooters < ElementCollection
90
+ def element_class; TableFooter; end
91
+ end
92
+
93
+ class TableRows < ElementCollection
94
+ def element_class; TableRow; end
95
+ end
96
+
97
+ class TableCells < ElementCollection
98
+ def element_class; TableCell; end
99
+ end
100
+
101
+ class Labels < ElementCollection
102
+ def element_class; Label; end
103
+ end
104
+
105
+ class Pres < ElementCollection
106
+ def element_class; Pre; end
107
+ end
108
+
109
+ class Ps < ElementCollection
110
+ def element_class; P; end
111
+ end
112
+
113
+ class Spans < ElementCollection
114
+ def element_class; Span; end
115
+ end
116
+
117
+ class Strongs < ElementCollection
118
+ def element_class; Strong; end
119
+ end
120
+
121
+ class Divs < ElementCollection
122
+ def element_class; Div; end
123
+ end
124
+
125
+ class Forms < ElementCollection
126
+ def element_class; Form; end
127
+ end
128
+
129
+ class Options < ElementCollection
130
+ def element_class; Option; end
131
+ end
132
+
133
+ class Metas < ElementCollection
134
+ def element_class; Meta; end
135
+ end
136
+
137
+ class H1s < ElementCollection
138
+ def element_class; H1; end
139
+ end
140
+ class H2s < ElementCollection
141
+ def element_class; H2; end
142
+ end
143
+ class H3s < ElementCollection
144
+ def element_class; H3; end
145
+ end
146
+ class H4s < ElementCollection
147
+ def element_class; H4; end
148
+ end
149
+ class H5s < ElementCollection
150
+ def element_class; H5; end
151
+ end
152
+ class H6s < ElementCollection
153
+ def element_class; H6; end
154
+ end
155
+
156
+ class Inses < ElementCollection
157
+ def element_class; Ins; end
158
+ end
159
+
160
+ class Dels < ElementCollection
161
+ def element_class; Del; end
162
+ end
163
+
164
+ end