watir-webdriver 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. data/Rakefile +53 -31
  2. data/VERSION +1 -1
  3. data/lib/watir-webdriver.rb +6 -8
  4. data/lib/watir-webdriver/attribute_helper.rb +121 -0
  5. data/lib/watir-webdriver/browser.rb +13 -6
  6. data/lib/watir-webdriver/collections/element_collection.rb +21 -15
  7. data/lib/watir-webdriver/collections/table_row_collection.rb +11 -0
  8. data/lib/watir-webdriver/container.rb +17 -11
  9. data/lib/watir-webdriver/element.rb +201 -0
  10. data/lib/watir-webdriver/elements/button.rb +19 -2
  11. data/lib/watir-webdriver/elements/checkbox.rb +24 -4
  12. data/lib/watir-webdriver/elements/file_field.rb +24 -4
  13. data/lib/watir-webdriver/elements/font.rb +10 -11
  14. data/lib/watir-webdriver/elements/frame.rb +11 -3
  15. data/lib/watir-webdriver/elements/generated.rb +2491 -1313
  16. data/lib/watir-webdriver/elements/hidden.rb +16 -5
  17. data/lib/watir-webdriver/elements/input.rb +44 -5
  18. data/lib/watir-webdriver/elements/link.rb +6 -8
  19. data/lib/watir-webdriver/elements/radio.rb +25 -6
  20. data/lib/watir-webdriver/elements/{select_list.rb → select.rb} +8 -9
  21. data/lib/watir-webdriver/elements/text_field.rb +32 -3
  22. data/lib/watir-webdriver/html.rb +18 -0
  23. data/lib/watir-webdriver/html/generator.rb +112 -0
  24. data/lib/watir-webdriver/html/idl_sorter.rb +49 -0
  25. data/lib/watir-webdriver/html/spec_extractor.rb +111 -0
  26. data/lib/watir-webdriver/html/util.rb +31 -0
  27. data/lib/watir-webdriver/html/visitor.rb +186 -0
  28. data/lib/watir-webdriver/locators/element_locator.rb +4 -0
  29. data/lib/watir-webdriver/locators/text_field_locator.rb +2 -2
  30. data/lib/watir-webdriver/xpath_support.rb +3 -5
  31. data/lib/yard/handlers/watir.rb +57 -0
  32. data/spec/{base_element_spec.rb → element_spec.rb} +3 -2
  33. data/spec/input_spec.rb +65 -0
  34. data/spec/spec_helper.rb +9 -2
  35. data/spec/watirspec/area_spec.rb +9 -13
  36. data/spec/watirspec/areas_spec.rb +7 -1
  37. data/spec/watirspec/browser_spec.rb +68 -72
  38. data/spec/watirspec/button_spec.rb +16 -9
  39. data/spec/watirspec/buttons_spec.rb +11 -9
  40. data/spec/watirspec/checkbox_spec.rb +1 -1
  41. data/spec/watirspec/checkboxes_spec.rb +7 -1
  42. data/spec/watirspec/collections_spec.rb +18 -0
  43. data/spec/watirspec/dd_spec.rb +1 -1
  44. data/spec/watirspec/dds_spec.rb +7 -1
  45. data/spec/watirspec/del_spec.rb +141 -0
  46. data/spec/watirspec/dels_spec.rb +37 -0
  47. data/spec/watirspec/div_spec.rb +6 -22
  48. data/spec/watirspec/divs_spec.rb +8 -2
  49. data/spec/watirspec/dl_spec.rb +1 -1
  50. data/spec/watirspec/dls_spec.rb +7 -1
  51. data/spec/watirspec/dt_spec.rb +1 -1
  52. data/spec/watirspec/dts_spec.rb +7 -1
  53. data/spec/watirspec/element_spec.rb +11 -20
  54. data/spec/watirspec/em_spec.rb +1 -1
  55. data/spec/watirspec/ems_spec.rb +7 -1
  56. data/spec/watirspec/filefield_spec.rb +8 -11
  57. data/spec/watirspec/filefields_spec.rb +7 -1
  58. data/spec/watirspec/font_spec.rb +2 -2
  59. data/spec/watirspec/form_spec.rb +10 -18
  60. data/spec/watirspec/forms_spec.rb +7 -1
  61. data/spec/watirspec/frame_spec.rb +69 -73
  62. data/spec/watirspec/frames_spec.rb +15 -2
  63. data/spec/watirspec/hidden_spec.rb +1 -1
  64. data/spec/watirspec/hiddens_spec.rb +7 -1
  65. data/spec/watirspec/hn_spec.rb +1 -1
  66. data/spec/watirspec/hns_spec.rb +23 -27
  67. data/spec/watirspec/image_spec.rb +9 -15
  68. data/spec/watirspec/images_spec.rb +7 -1
  69. data/spec/watirspec/ins_spec.rb +142 -0
  70. data/spec/watirspec/inses_spec.rb +37 -0
  71. data/spec/watirspec/label_spec.rb +1 -1
  72. data/spec/watirspec/labels_spec.rb +7 -1
  73. data/spec/watirspec/li_spec.rb +1 -1
  74. data/spec/watirspec/lib/guards.rb +12 -12
  75. data/spec/watirspec/lib/implementation.rb +48 -0
  76. data/spec/watirspec/lib/watirspec.rb +17 -12
  77. data/spec/watirspec/link_spec.rb +6 -11
  78. data/spec/watirspec/links_spec.rb +1 -1
  79. data/spec/watirspec/lis_spec.rb +7 -1
  80. data/spec/watirspec/map_spec.rb +1 -1
  81. data/spec/watirspec/maps_spec.rb +7 -1
  82. data/spec/watirspec/meta_spec.rb +13 -15
  83. data/spec/watirspec/metas_spec.rb +6 -1
  84. data/spec/watirspec/ol_spec.rb +57 -59
  85. data/spec/watirspec/ols_spec.rb +10 -4
  86. data/spec/watirspec/option_spec.rb +50 -83
  87. data/spec/watirspec/p_spec.rb +1 -1
  88. data/spec/watirspec/pre_spec.rb +1 -1
  89. data/spec/watirspec/pres_spec.rb +7 -1
  90. data/spec/watirspec/ps_spec.rb +7 -1
  91. data/spec/watirspec/radio_spec.rb +9 -11
  92. data/spec/watirspec/radios_spec.rb +1 -1
  93. data/spec/watirspec/select_list_spec.rb +27 -40
  94. data/spec/watirspec/select_lists_spec.rb +1 -1
  95. data/spec/watirspec/span_spec.rb +1 -1
  96. data/spec/watirspec/spans_spec.rb +7 -1
  97. data/spec/watirspec/spec_helper.rb +1 -0
  98. data/spec/watirspec/strong_spec.rb +1 -1
  99. data/spec/watirspec/strongs_spec.rb +7 -1
  100. data/spec/watirspec/table_bodies_spec.rb +22 -10
  101. data/spec/watirspec/table_body_spec.rb +33 -40
  102. data/spec/watirspec/table_cell_spec.rb +1 -1
  103. data/spec/watirspec/table_cells_spec.rb +36 -15
  104. data/spec/watirspec/table_footer_spec.rb +43 -40
  105. data/spec/watirspec/table_footers_spec.rb +35 -19
  106. data/spec/watirspec/table_header_spec.rb +44 -39
  107. data/spec/watirspec/table_headers_spec.rb +37 -19
  108. data/spec/watirspec/table_row_spec.rb +13 -9
  109. data/spec/watirspec/table_rows_spec.rb +16 -6
  110. data/spec/watirspec/table_spec.rb +83 -62
  111. data/spec/watirspec/tables_spec.rb +7 -1
  112. data/spec/watirspec/text_field_spec.rb +4 -6
  113. data/spec/watirspec/text_fields_spec.rb +1 -1
  114. data/spec/watirspec/ul_spec.rb +1 -1
  115. data/spec/watirspec/uls_spec.rb +25 -22
  116. data/support/html5.html +89235 -0
  117. data/watir-webdriver.gemspec +31 -21
  118. metadata +52 -23
  119. data/TODO +0 -15
  120. data/lib/watir-webdriver/base_element.rb +0 -361
  121. data/lib/watir-webdriver/collections/buttons_collection.rb +0 -15
  122. data/lib/watir-webdriver/collections/table_rows_collection.rb +0 -16
  123. data/lib/watir-webdriver/collections/text_fields_collection.rb +0 -15
  124. data/lib/watir-webdriver/elements/headings.rb +0 -48
  125. data/support/html5/html5.idl +0 -1274
  126. data/support/html5/old/html5.idl +0 -962
  127. data/support/html5/old/html5_extras.idl +0 -145
  128. data/support/html5/watir_visitor.rb +0 -173
  129. data/support/yard_handlers.rb +0 -87
@@ -5,17 +5,16 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{watir-webdriver}
8
- s.version = "0.0.6"
8
+ s.version = "0.0.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jari Bakken"]
12
- s.date = %q{2010-07-27}
12
+ s.date = %q{2010-08-20}
13
13
  s.description = %q{WebDriver-backed Watir}
14
14
  s.email = %q{jari.bakken@gmail.com}
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
17
- "README.rdoc",
18
- "TODO"
17
+ "README.rdoc"
19
18
  ]
20
19
  s.files = [
21
20
  ".document",
@@ -24,18 +23,16 @@ Gem::Specification.new do |s|
24
23
  "LICENSE",
25
24
  "README.rdoc",
26
25
  "Rakefile",
27
- "TODO",
28
26
  "VERSION",
29
27
  "lib/watir-webdriver.rb",
30
- "lib/watir-webdriver/base_element.rb",
28
+ "lib/watir-webdriver/attribute_helper.rb",
31
29
  "lib/watir-webdriver/browser.rb",
32
30
  "lib/watir-webdriver/browserbot.js",
33
- "lib/watir-webdriver/collections/buttons_collection.rb",
34
31
  "lib/watir-webdriver/collections/element_collection.rb",
35
- "lib/watir-webdriver/collections/table_rows_collection.rb",
36
- "lib/watir-webdriver/collections/text_fields_collection.rb",
32
+ "lib/watir-webdriver/collections/table_row_collection.rb",
37
33
  "lib/watir-webdriver/container.rb",
38
34
  "lib/watir-webdriver/core_ext/string.rb",
35
+ "lib/watir-webdriver/element.rb",
39
36
  "lib/watir-webdriver/elements/button.rb",
40
37
  "lib/watir-webdriver/elements/checkbox.rb",
41
38
  "lib/watir-webdriver/elements/file_field.rb",
@@ -43,32 +40,35 @@ Gem::Specification.new do |s|
43
40
  "lib/watir-webdriver/elements/form.rb",
44
41
  "lib/watir-webdriver/elements/frame.rb",
45
42
  "lib/watir-webdriver/elements/generated.rb",
46
- "lib/watir-webdriver/elements/headings.rb",
47
43
  "lib/watir-webdriver/elements/hidden.rb",
48
44
  "lib/watir-webdriver/elements/image.rb",
49
45
  "lib/watir-webdriver/elements/input.rb",
50
46
  "lib/watir-webdriver/elements/link.rb",
51
47
  "lib/watir-webdriver/elements/option.rb",
52
48
  "lib/watir-webdriver/elements/radio.rb",
53
- "lib/watir-webdriver/elements/select_list.rb",
49
+ "lib/watir-webdriver/elements/select.rb",
54
50
  "lib/watir-webdriver/elements/table.rb",
55
51
  "lib/watir-webdriver/elements/table_row.rb",
56
52
  "lib/watir-webdriver/elements/text_field.rb",
57
53
  "lib/watir-webdriver/exception.rb",
58
54
  "lib/watir-webdriver/extensions/nokogiri.rb",
55
+ "lib/watir-webdriver/html.rb",
56
+ "lib/watir-webdriver/html/generator.rb",
57
+ "lib/watir-webdriver/html/idl_sorter.rb",
58
+ "lib/watir-webdriver/html/spec_extractor.rb",
59
+ "lib/watir-webdriver/html/util.rb",
60
+ "lib/watir-webdriver/html/visitor.rb",
59
61
  "lib/watir-webdriver/locators/button_locator.rb",
60
62
  "lib/watir-webdriver/locators/element_locator.rb",
61
63
  "lib/watir-webdriver/locators/table_row_locator.rb",
62
64
  "lib/watir-webdriver/locators/text_field_locator.rb",
63
65
  "lib/watir-webdriver/xpath_support.rb",
64
- "spec/base_element_spec.rb",
66
+ "lib/yard/handlers/watir.rb",
67
+ "spec/element_spec.rb",
65
68
  "spec/html/keylogger.html",
69
+ "spec/input_spec.rb",
66
70
  "spec/spec_helper.rb",
67
- "support/html5/html5.idl",
68
- "support/html5/old/html5.idl",
69
- "support/html5/old/html5_extras.idl",
70
- "support/html5/watir_visitor.rb",
71
- "support/yard_handlers.rb",
71
+ "support/html5.html",
72
72
  "watir-webdriver.gemspec"
73
73
  ]
74
74
  s.homepage = %q{http://github.com/jarib/watir-webdriver}
@@ -77,7 +77,8 @@ Gem::Specification.new do |s|
77
77
  s.rubygems_version = %q{1.3.7}
78
78
  s.summary = %q{Watir on WebDriver}
79
79
  s.test_files = [
80
- "spec/base_element_spec.rb",
80
+ "spec/element_spec.rb",
81
+ "spec/input_spec.rb",
81
82
  "spec/spec_helper.rb",
82
83
  "spec/watirspec/area_spec.rb",
83
84
  "spec/watirspec/areas_spec.rb",
@@ -86,8 +87,11 @@ Gem::Specification.new do |s|
86
87
  "spec/watirspec/buttons_spec.rb",
87
88
  "spec/watirspec/checkbox_spec.rb",
88
89
  "spec/watirspec/checkboxes_spec.rb",
90
+ "spec/watirspec/collections_spec.rb",
89
91
  "spec/watirspec/dd_spec.rb",
90
92
  "spec/watirspec/dds_spec.rb",
93
+ "spec/watirspec/del_spec.rb",
94
+ "spec/watirspec/dels_spec.rb",
91
95
  "spec/watirspec/div_spec.rb",
92
96
  "spec/watirspec/divs_spec.rb",
93
97
  "spec/watirspec/dl_spec.rb",
@@ -110,10 +114,13 @@ Gem::Specification.new do |s|
110
114
  "spec/watirspec/hns_spec.rb",
111
115
  "spec/watirspec/image_spec.rb",
112
116
  "spec/watirspec/images_spec.rb",
117
+ "spec/watirspec/ins_spec.rb",
118
+ "spec/watirspec/inses_spec.rb",
113
119
  "spec/watirspec/label_spec.rb",
114
120
  "spec/watirspec/labels_spec.rb",
115
121
  "spec/watirspec/li_spec.rb",
116
122
  "spec/watirspec/lib/guards.rb",
123
+ "spec/watirspec/lib/implementation.rb",
117
124
  "spec/watirspec/lib/server.rb",
118
125
  "spec/watirspec/lib/spec_helper.rb",
119
126
  "spec/watirspec/lib/watirspec.rb",
@@ -165,21 +172,24 @@ Gem::Specification.new do |s|
165
172
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
166
173
  s.add_runtime_dependency(%q<selenium-webdriver>, [">= 0.0.26"])
167
174
  s.add_development_dependency(%q<rspec>, [">= 0"])
168
- s.add_development_dependency(%q<webidl>, [">= 0"])
175
+ s.add_development_dependency(%q<webidl>, [">= 0.0.4"])
169
176
  s.add_development_dependency(%q<sinatra>, [">= 1.0"])
177
+ s.add_development_dependency(%q<nokogiri>, [">= 0"])
170
178
  s.add_development_dependency(%q<activesupport>, [">= 2.3.5"])
171
179
  else
172
180
  s.add_dependency(%q<selenium-webdriver>, [">= 0.0.26"])
173
181
  s.add_dependency(%q<rspec>, [">= 0"])
174
- s.add_dependency(%q<webidl>, [">= 0"])
182
+ s.add_dependency(%q<webidl>, [">= 0.0.4"])
175
183
  s.add_dependency(%q<sinatra>, [">= 1.0"])
184
+ s.add_dependency(%q<nokogiri>, [">= 0"])
176
185
  s.add_dependency(%q<activesupport>, [">= 2.3.5"])
177
186
  end
178
187
  else
179
188
  s.add_dependency(%q<selenium-webdriver>, [">= 0.0.26"])
180
189
  s.add_dependency(%q<rspec>, [">= 0"])
181
- s.add_dependency(%q<webidl>, [">= 0"])
190
+ s.add_dependency(%q<webidl>, [">= 0.0.4"])
182
191
  s.add_dependency(%q<sinatra>, [">= 1.0"])
192
+ s.add_dependency(%q<nokogiri>, [">= 0"])
183
193
  s.add_dependency(%q<activesupport>, [">= 2.3.5"])
184
194
  end
185
195
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: watir-webdriver
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 6
10
- version: 0.0.6
9
+ - 7
10
+ version: 0.0.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jari Bakken
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-07-27 00:00:00 +02:00
18
+ date: 2010-08-20 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -56,10 +56,12 @@ dependencies:
56
56
  requirements:
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- hash: 3
59
+ hash: 23
60
60
  segments:
61
61
  - 0
62
- version: "0"
62
+ - 0
63
+ - 4
64
+ version: 0.0.4
63
65
  type: :development
64
66
  version_requirements: *id003
65
67
  - !ruby/object:Gem::Dependency
@@ -78,9 +80,23 @@ dependencies:
78
80
  type: :development
79
81
  version_requirements: *id004
80
82
  - !ruby/object:Gem::Dependency
81
- name: activesupport
83
+ name: nokogiri
82
84
  prerelease: false
83
85
  requirement: &id005 !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ hash: 3
91
+ segments:
92
+ - 0
93
+ version: "0"
94
+ type: :development
95
+ version_requirements: *id005
96
+ - !ruby/object:Gem::Dependency
97
+ name: activesupport
98
+ prerelease: false
99
+ requirement: &id006 !ruby/object:Gem::Requirement
84
100
  none: false
85
101
  requirements:
86
102
  - - ">="
@@ -92,7 +108,7 @@ dependencies:
92
108
  - 5
93
109
  version: 2.3.5
94
110
  type: :development
95
- version_requirements: *id005
111
+ version_requirements: *id006
96
112
  description: WebDriver-backed Watir
97
113
  email: jari.bakken@gmail.com
98
114
  executables: []
@@ -102,7 +118,6 @@ extensions: []
102
118
  extra_rdoc_files:
103
119
  - LICENSE
104
120
  - README.rdoc
105
- - TODO
106
121
  files:
107
122
  - .document
108
123
  - .gitignore
@@ -110,18 +125,16 @@ files:
110
125
  - LICENSE
111
126
  - README.rdoc
112
127
  - Rakefile
113
- - TODO
114
128
  - VERSION
115
129
  - lib/watir-webdriver.rb
116
- - lib/watir-webdriver/base_element.rb
130
+ - lib/watir-webdriver/attribute_helper.rb
117
131
  - lib/watir-webdriver/browser.rb
118
132
  - lib/watir-webdriver/browserbot.js
119
- - lib/watir-webdriver/collections/buttons_collection.rb
120
133
  - lib/watir-webdriver/collections/element_collection.rb
121
- - lib/watir-webdriver/collections/table_rows_collection.rb
122
- - lib/watir-webdriver/collections/text_fields_collection.rb
134
+ - lib/watir-webdriver/collections/table_row_collection.rb
123
135
  - lib/watir-webdriver/container.rb
124
136
  - lib/watir-webdriver/core_ext/string.rb
137
+ - lib/watir-webdriver/element.rb
125
138
  - lib/watir-webdriver/elements/button.rb
126
139
  - lib/watir-webdriver/elements/checkbox.rb
127
140
  - lib/watir-webdriver/elements/file_field.rb
@@ -129,32 +142,35 @@ files:
129
142
  - lib/watir-webdriver/elements/form.rb
130
143
  - lib/watir-webdriver/elements/frame.rb
131
144
  - lib/watir-webdriver/elements/generated.rb
132
- - lib/watir-webdriver/elements/headings.rb
133
145
  - lib/watir-webdriver/elements/hidden.rb
134
146
  - lib/watir-webdriver/elements/image.rb
135
147
  - lib/watir-webdriver/elements/input.rb
136
148
  - lib/watir-webdriver/elements/link.rb
137
149
  - lib/watir-webdriver/elements/option.rb
138
150
  - lib/watir-webdriver/elements/radio.rb
139
- - lib/watir-webdriver/elements/select_list.rb
151
+ - lib/watir-webdriver/elements/select.rb
140
152
  - lib/watir-webdriver/elements/table.rb
141
153
  - lib/watir-webdriver/elements/table_row.rb
142
154
  - lib/watir-webdriver/elements/text_field.rb
143
155
  - lib/watir-webdriver/exception.rb
144
156
  - lib/watir-webdriver/extensions/nokogiri.rb
157
+ - lib/watir-webdriver/html.rb
158
+ - lib/watir-webdriver/html/generator.rb
159
+ - lib/watir-webdriver/html/idl_sorter.rb
160
+ - lib/watir-webdriver/html/spec_extractor.rb
161
+ - lib/watir-webdriver/html/util.rb
162
+ - lib/watir-webdriver/html/visitor.rb
145
163
  - lib/watir-webdriver/locators/button_locator.rb
146
164
  - lib/watir-webdriver/locators/element_locator.rb
147
165
  - lib/watir-webdriver/locators/table_row_locator.rb
148
166
  - lib/watir-webdriver/locators/text_field_locator.rb
149
167
  - lib/watir-webdriver/xpath_support.rb
150
- - spec/base_element_spec.rb
168
+ - lib/yard/handlers/watir.rb
169
+ - spec/element_spec.rb
151
170
  - spec/html/keylogger.html
171
+ - spec/input_spec.rb
152
172
  - spec/spec_helper.rb
153
- - support/html5/html5.idl
154
- - support/html5/old/html5.idl
155
- - support/html5/old/html5_extras.idl
156
- - support/html5/watir_visitor.rb
157
- - support/yard_handlers.rb
173
+ - support/html5.html
158
174
  - watir-webdriver.gemspec
159
175
  - spec/watirspec/area_spec.rb
160
176
  - spec/watirspec/areas_spec.rb
@@ -163,8 +179,11 @@ files:
163
179
  - spec/watirspec/buttons_spec.rb
164
180
  - spec/watirspec/checkbox_spec.rb
165
181
  - spec/watirspec/checkboxes_spec.rb
182
+ - spec/watirspec/collections_spec.rb
166
183
  - spec/watirspec/dd_spec.rb
167
184
  - spec/watirspec/dds_spec.rb
185
+ - spec/watirspec/del_spec.rb
186
+ - spec/watirspec/dels_spec.rb
168
187
  - spec/watirspec/div_spec.rb
169
188
  - spec/watirspec/divs_spec.rb
170
189
  - spec/watirspec/dl_spec.rb
@@ -187,10 +206,13 @@ files:
187
206
  - spec/watirspec/hns_spec.rb
188
207
  - spec/watirspec/image_spec.rb
189
208
  - spec/watirspec/images_spec.rb
209
+ - spec/watirspec/ins_spec.rb
210
+ - spec/watirspec/inses_spec.rb
190
211
  - spec/watirspec/label_spec.rb
191
212
  - spec/watirspec/labels_spec.rb
192
213
  - spec/watirspec/li_spec.rb
193
214
  - spec/watirspec/lib/guards.rb
215
+ - spec/watirspec/lib/implementation.rb
194
216
  - spec/watirspec/lib/server.rb
195
217
  - spec/watirspec/lib/spec_helper.rb
196
218
  - spec/watirspec/lib/watirspec.rb
@@ -268,7 +290,8 @@ signing_key:
268
290
  specification_version: 3
269
291
  summary: Watir on WebDriver
270
292
  test_files:
271
- - spec/base_element_spec.rb
293
+ - spec/element_spec.rb
294
+ - spec/input_spec.rb
272
295
  - spec/spec_helper.rb
273
296
  - spec/watirspec/area_spec.rb
274
297
  - spec/watirspec/areas_spec.rb
@@ -277,8 +300,11 @@ test_files:
277
300
  - spec/watirspec/buttons_spec.rb
278
301
  - spec/watirspec/checkbox_spec.rb
279
302
  - spec/watirspec/checkboxes_spec.rb
303
+ - spec/watirspec/collections_spec.rb
280
304
  - spec/watirspec/dd_spec.rb
281
305
  - spec/watirspec/dds_spec.rb
306
+ - spec/watirspec/del_spec.rb
307
+ - spec/watirspec/dels_spec.rb
282
308
  - spec/watirspec/div_spec.rb
283
309
  - spec/watirspec/divs_spec.rb
284
310
  - spec/watirspec/dl_spec.rb
@@ -301,10 +327,13 @@ test_files:
301
327
  - spec/watirspec/hns_spec.rb
302
328
  - spec/watirspec/image_spec.rb
303
329
  - spec/watirspec/images_spec.rb
330
+ - spec/watirspec/ins_spec.rb
331
+ - spec/watirspec/inses_spec.rb
304
332
  - spec/watirspec/label_spec.rb
305
333
  - spec/watirspec/labels_spec.rb
306
334
  - spec/watirspec/li_spec.rb
307
335
  - spec/watirspec/lib/guards.rb
336
+ - spec/watirspec/lib/implementation.rb
308
337
  - spec/watirspec/lib/server.rb
309
338
  - spec/watirspec/lib/spec_helper.rb
310
339
  - spec/watirspec/lib/watirspec.rb
data/TODO DELETED
@@ -1,15 +0,0 @@
1
- TODO:
2
-
3
- - frames
4
- - tables
5
-
6
- MAYBE:
7
-
8
- - support selector arg to collection methods? i.e. browser.buttons(class: "foo")
9
-
10
- DONE:
11
-
12
- - check if selector attributes are valid (BaseElement.attribute_list ?) to get MissingWayOfFindingObjectException
13
- - fix watirspec to not be so picky about exception messages
14
- - text_field should cover both <input type="whatever"> and <textarea>
15
- - buttons should cover both <input type="button"> and <button>
@@ -1,361 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Watir
4
- class BaseElement
5
- include Exception
6
- include Container
7
- include Selenium
8
-
9
- IGNORED_ATTRIBUTES = [:text, :hash]
10
-
11
- class << self
12
- attr_writer :default_selector
13
-
14
- def typed_attributes
15
- @typed_attributes ||= Hash.new { |hash, type| hash[type] = [] }
16
- end
17
-
18
- def attribute_list
19
- @attribute_list ||= (
20
- list = typed_attributes.values.flatten
21
- list += ancestors[1..-1].map do |e|
22
- e.attribute_list if e.respond_to?(:attribute_list)
23
- end.compact.flatten
24
- ).uniq
25
- end
26
-
27
- def attributes(attribute_map = nil)
28
- if attribute_map.nil?
29
- return attribute_list
30
- end
31
-
32
- add_attributes attribute_map
33
-
34
- attribute_map.each do |type, attribs|
35
- attribs.each do |name|
36
- # we don't want to override methods like :text or :hash
37
- next if IGNORED_ATTRIBUTES.include?(name)
38
- define_attribute(type, name)
39
- end
40
- end
41
- end
42
-
43
- def default_selector
44
- @default_selector ||= {}
45
- end
46
-
47
- private
48
-
49
- def inherited(klass)
50
- klass.default_selector = default_selector.dup
51
- end
52
-
53
- def define_attribute(type, name)
54
- method_name = method_name_for(type, name)
55
- attribute_name = attribute_for_method(name)
56
-
57
- (@attributes ||= []) << attribute_name
58
-
59
- case type
60
- when :string
61
- define_string_attribute(method_name, attribute_name)
62
- when :bool
63
- define_boolean_attribute(method_name, attribute_name)
64
- when :int
65
- define_int_attribute(method_name, attribute_name)
66
- else
67
- # $stderr.puts "treating #{type.inspect} as string for now"
68
- end
69
- end
70
-
71
- def define_string_attribute(mname, aname)
72
- define_method mname do
73
- assert_exists
74
- @element.attribute(aname).to_s
75
- end
76
- end
77
-
78
- def define_boolean_attribute(mname, aname)
79
- define_method mname do
80
- assert_exists
81
- !!@element.attribute(aname)
82
- end
83
- end
84
-
85
- def define_int_attribute(mname, aname)
86
- define_method mname do
87
- assert_exists
88
- @element.attribute(aname).to_i
89
- end
90
- end
91
-
92
- def container_method(name)
93
- klass = self
94
- Container.add name do |*args|
95
- klass.new(self, *args)
96
- end
97
- end
98
-
99
- def collection_method(name)
100
- constant_name = "#{name.to_s.camel_case}Collection"
101
- return if Watir.const_defined?(constant_name)
102
-
103
- element_class = self
104
- klass = Watir.const_set(
105
- constant_name,
106
- Class.new(ElementCollection)
107
- )
108
-
109
- Container.add name do
110
- klass.new(self, element_class)
111
- end
112
- end
113
-
114
- def add_attributes(attributes)
115
- attributes.each do |type, attr_list|
116
- typed_attributes[type] += attr_list
117
- end
118
- end
119
-
120
- def identifier(selector)
121
- Watir.tag_to_class[selector[:tag_name]] = self
122
- default_selector.merge! selector
123
- end
124
-
125
- def method_name_for(type, attribute)
126
- # TODO: rethink this - this list could get pretty long...
127
- name = case attribute
128
- when :html_for
129
- 'for'
130
- when :col_span
131
- 'colspan'
132
- when :row_span
133
- 'rowspan'
134
- else
135
- attribute.to_s
136
- end
137
-
138
- name << "?" if type == :bool
139
-
140
- name
141
- end
142
-
143
- def attribute_for_method(method)
144
- case method.to_sym
145
- when :class_name
146
- 'class'
147
- when :html_for
148
- 'for'
149
- when :read_only
150
- 'readonly'
151
- when :http_equiv
152
- 'http-equiv'
153
- else
154
- method.to_s
155
- end
156
- end
157
- end # class << self
158
-
159
- def initialize(parent, *selectors)
160
- @parent = parent
161
- @selector = extract_selector(selectors).merge(self.class.default_selector)
162
-
163
- if @selector.has_key?(:element)
164
- @element = @selector[:element]
165
- end
166
- end
167
-
168
- def exists?
169
- assert_exists
170
- true
171
- rescue UnknownObjectException, UnknownFrameException
172
- false
173
- end
174
- alias_method :exist?, :exists?
175
-
176
- def inspect
177
- if @selector.has_key?(:element)
178
- '#<%s:0x%x located=%s selector=%s>' % [self.class, hash*2, !!@element, '{:element=>(webdriver element)}']
179
- else
180
- '#<%s:0x%x located=%s selector=%s>' % [self.class, hash*2, !!@element, @selector.inspect]
181
- end
182
- end
183
-
184
- def text
185
- assert_exists
186
- @element.text
187
- end
188
-
189
- def tag_name
190
- assert_exists
191
- @element.tag_name
192
- end
193
-
194
- def click
195
- assert_exists
196
- assert_enabled
197
- @element.click
198
- run_checkers
199
- end
200
-
201
- def double_click
202
- assert_exists
203
- raise NotImplementedError, "need support in WebDriver"
204
-
205
- @element.double_click
206
- run_checkers
207
- end
208
-
209
- def right_click
210
- assert_exists
211
- raise NotImplementedError, "need support in WebDriver"
212
-
213
- @element.right_click
214
- run_checkers
215
- end
216
-
217
- def flash
218
- assert_exists
219
- original_color = driver.execute_script("arguments[0].style.backgroundColor", @element)
220
- 10.times do |n|
221
- color = (n % 2 == 0) ? "red" : original_color
222
- driver.execute_script("arguments[0].style.backgroundColor = '#{color}'", @element)
223
- end
224
- end
225
-
226
- def value
227
- assert_exists
228
-
229
- begin
230
- @element.value
231
- rescue WebDriver::Error::ElementNotEnabledError
232
- ""
233
- end
234
- end
235
-
236
- def attribute_value(attribute_name)
237
- assert_exists
238
- @element.attribute attribute_name
239
- end
240
-
241
- def html
242
- assert_exists
243
- browserbot('getOuterHTML', @element).strip
244
- end
245
-
246
- def send_keys(*args)
247
- assert_exists
248
- @element.send_keys(*args)
249
- end
250
-
251
- #
252
- # Note: Firefox queues focus events until the window actually has focus.
253
- #
254
- # See http://code.google.com/p/selenium/issues/detail?id=157
255
- #
256
-
257
- def focus
258
- assert_exists
259
- driver.execute_script "return arguments[0].focus()", @element
260
- end
261
-
262
- def fire_event(event_name, bubble = false)
263
- assert_exists
264
- event_name = event_name.to_s.sub(/^on/, '')
265
- browserbot('triggerEvent', @element, event_name, bubble)
266
- end
267
-
268
- def parent
269
- assert_exists
270
-
271
- e = driver.execute_script "return arguments[0].parentNode", @element
272
-
273
- if e.kind_of?(WebDriver::Element)
274
- Watir.element_class_for(e.tag_name).new(@parent, :element, e)
275
- end
276
- end
277
-
278
- def driver
279
- @parent.driver
280
- end
281
-
282
- def element
283
- assert_exists
284
- @element
285
- end
286
- alias_method :wd, :element # ensures duck typing with Browser
287
-
288
- def visible?
289
- assert_exists
290
- @element.displayed?
291
- end
292
-
293
- def style(property = nil)
294
- if property
295
- assert_exists
296
- @element.style property
297
- else
298
- attribute_value "style" || ''
299
- end
300
- end
301
-
302
- def run_checkers
303
- @parent.run_checkers
304
- end
305
-
306
- protected
307
-
308
- def assert_exists
309
- @element ||= locate
310
-
311
- unless @element
312
- raise UnknownObjectException, "unable to locate element, using #{selector_string}"
313
- end
314
- end
315
-
316
- def browser
317
- @parent.browser
318
- end
319
-
320
- def locate
321
- @parent.assert_exists
322
- ElementLocator.new(@parent.wd, @selector, self.class.attribute_list).locate
323
- end
324
-
325
- private
326
-
327
- def selector_string
328
- @selector.inspect
329
- end
330
-
331
- def attribute?(attribute)
332
- assert_exists
333
- driver.execute_script "return !!arguments[0].getAttributeNode(arguments[1]);", @element, attribute.to_s.downcase
334
- end
335
-
336
- def assert_enabled
337
- raise ObjectDisabledException, "object is disabled #{selector_string}" unless @element.enabled?
338
- end
339
-
340
- def assert_writable
341
- assert_enabled
342
- raise ObjectReadOnlyException if respond_to?(:readonly?) && readonly?
343
- end
344
-
345
- def extract_selector(selectors)
346
- case selectors.size
347
- when 2
348
- { selectors[0] => selectors[1] }
349
- when 1
350
- unless selectors.first.is_a? Hash
351
- raise ArgumentError, "expected Hash or (:how, 'what')"
352
- end
353
-
354
- selectors.first
355
- else
356
- raise ArgumentError, "wrong number of arguments (#{selectors.size} for 2)"
357
- end
358
- end
359
-
360
- end # BaseElement
361
- end # Watir