watir 7.2.0 → 7.2.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 (139) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/chrome.yml +1 -1
  3. data/.github/workflows/edge.yml +1 -1
  4. data/.github/workflows/firefox.yml +1 -1
  5. data/.github/workflows/ie.yml +1 -1
  6. data/.github/workflows/safari.yml +1 -1
  7. data/.github/workflows/unit.yml +1 -1
  8. data/.rubocop.yml +25 -12
  9. data/.rubocop_todo.yml +8 -1
  10. data/CHANGES.md +6 -1
  11. data/LICENSE +2 -2
  12. data/lib/watir/capabilities.rb +1 -1
  13. data/lib/watir/locators/anchor/selector_builder.rb +3 -0
  14. data/lib/watir/locators/element/matcher.rb +2 -1
  15. data/lib/watir/locators/element/selector_builder/regexp_disassembler.rb +2 -1
  16. data/lib/watir/locators/text_field/matcher.rb +0 -4
  17. data/lib/watir/version.rb +1 -1
  18. data/spec/locator_spec_helper.rb +0 -8
  19. data/spec/unit/capabilities_spec.rb +553 -561
  20. data/spec/unit/element_locator_spec.rb +89 -78
  21. data/spec/unit/match_elements/button_spec.rb +69 -62
  22. data/spec/unit/match_elements/element_spec.rb +303 -309
  23. data/spec/unit/match_elements/text_field_spec.rb +76 -73
  24. data/spec/unit/selector_builder/anchor_spec.rb +39 -33
  25. data/spec/unit/selector_builder/button_spec.rb +209 -202
  26. data/spec/unit/selector_builder/cell_spec.rb +48 -42
  27. data/spec/unit/selector_builder/element_spec.rb +634 -627
  28. data/spec/unit/selector_builder/row_spec.rb +119 -113
  29. data/spec/unit/selector_builder/text_field_spec.rb +195 -188
  30. data/spec/unit/selector_builder/textarea_spec.rb +22 -14
  31. data/spec/unit/wait_spec.rb +85 -81
  32. data/spec/watirspec/adjacent_spec.rb +249 -247
  33. data/spec/watirspec/after_hooks_spec.rb +161 -159
  34. data/spec/watirspec/alert_spec.rb +61 -58
  35. data/spec/watirspec/browser_spec.rb +409 -409
  36. data/spec/watirspec/capabilities_spec.rb +89 -99
  37. data/spec/watirspec/cookies_spec.rb +120 -118
  38. data/spec/watirspec/drag_and_drop_spec.rb +26 -24
  39. data/spec/watirspec/element_hidden_spec.rb +66 -60
  40. data/spec/watirspec/elements/area_spec.rb +49 -47
  41. data/spec/watirspec/elements/areas_spec.rb +27 -25
  42. data/spec/watirspec/elements/button_spec.rb +253 -251
  43. data/spec/watirspec/elements/buttons_spec.rb +36 -34
  44. data/spec/watirspec/elements/checkbox_spec.rb +48 -36
  45. data/spec/watirspec/elements/checkboxes_spec.rb +29 -27
  46. data/spec/watirspec/elements/collections_spec.rb +126 -119
  47. data/spec/watirspec/elements/date_field_spec.rb +185 -183
  48. data/spec/watirspec/elements/date_fields_spec.rb +29 -27
  49. data/spec/watirspec/elements/date_time_field_spec.rb +197 -195
  50. data/spec/watirspec/elements/date_time_fields_spec.rb +30 -28
  51. data/spec/watirspec/elements/dd_spec.rb +87 -85
  52. data/spec/watirspec/elements/dds_spec.rb +27 -25
  53. data/spec/watirspec/elements/del_spec.rb +106 -104
  54. data/spec/watirspec/elements/dels_spec.rb +26 -24
  55. data/spec/watirspec/elements/div_spec.rb +225 -221
  56. data/spec/watirspec/elements/divs_spec.rb +37 -35
  57. data/spec/watirspec/elements/dl_spec.rb +110 -108
  58. data/spec/watirspec/elements/dls_spec.rb +28 -26
  59. data/spec/watirspec/elements/dt_spec.rb +86 -84
  60. data/spec/watirspec/elements/dts_spec.rb +27 -25
  61. data/spec/watirspec/elements/element_spec.rb +794 -775
  62. data/spec/watirspec/elements/elements_spec.rb +40 -38
  63. data/spec/watirspec/elements/em_spec.rb +62 -60
  64. data/spec/watirspec/elements/ems_spec.rb +28 -26
  65. data/spec/watirspec/elements/filefield_spec.rb +116 -114
  66. data/spec/watirspec/elements/filefields_spec.rb +28 -26
  67. data/spec/watirspec/elements/font_spec.rb +20 -18
  68. data/spec/watirspec/elements/form_spec.rb +51 -49
  69. data/spec/watirspec/elements/forms_spec.rb +29 -27
  70. data/spec/watirspec/elements/frame_spec.rb +89 -87
  71. data/spec/watirspec/elements/frames_spec.rb +27 -25
  72. data/spec/watirspec/elements/hidden_spec.rb +81 -79
  73. data/spec/watirspec/elements/hiddens_spec.rb +28 -26
  74. data/spec/watirspec/elements/hn_spec.rb +59 -57
  75. data/spec/watirspec/elements/hns_spec.rb +26 -24
  76. data/spec/watirspec/elements/iframe_spec.rb +195 -191
  77. data/spec/watirspec/elements/iframes_spec.rb +31 -29
  78. data/spec/watirspec/elements/image_spec.rb +148 -146
  79. data/spec/watirspec/elements/images_spec.rb +26 -24
  80. data/spec/watirspec/elements/input_spec.rb +9 -7
  81. data/spec/watirspec/elements/ins_spec.rb +106 -104
  82. data/spec/watirspec/elements/inses_spec.rb +26 -24
  83. data/spec/watirspec/elements/label_spec.rb +56 -54
  84. data/spec/watirspec/elements/labels_spec.rb +26 -24
  85. data/spec/watirspec/elements/li_spec.rb +76 -74
  86. data/spec/watirspec/elements/link_spec.rb +173 -177
  87. data/spec/watirspec/elements/links_spec.rb +45 -43
  88. data/spec/watirspec/elements/lis_spec.rb +27 -25
  89. data/spec/watirspec/elements/list_spec.rb +44 -42
  90. data/spec/watirspec/elements/map_spec.rb +57 -55
  91. data/spec/watirspec/elements/maps_spec.rb +27 -25
  92. data/spec/watirspec/elements/meta_spec.rb +16 -14
  93. data/spec/watirspec/elements/metas_spec.rb +26 -24
  94. data/spec/watirspec/elements/ol_spec.rb +56 -65
  95. data/spec/watirspec/elements/ols_spec.rb +26 -24
  96. data/spec/watirspec/elements/option_spec.rb +91 -89
  97. data/spec/watirspec/elements/p_spec.rb +81 -79
  98. data/spec/watirspec/elements/pre_spec.rb +77 -75
  99. data/spec/watirspec/elements/pres_spec.rb +26 -24
  100. data/spec/watirspec/elements/ps_spec.rb +26 -24
  101. data/spec/watirspec/elements/radio_spec.rb +251 -249
  102. data/spec/watirspec/elements/radios_spec.rb +28 -26
  103. data/spec/watirspec/elements/select_list_spec.rb +537 -526
  104. data/spec/watirspec/elements/select_lists_spec.rb +32 -30
  105. data/spec/watirspec/elements/span_spec.rb +112 -110
  106. data/spec/watirspec/elements/spans_spec.rb +26 -24
  107. data/spec/watirspec/elements/strong_spec.rb +58 -58
  108. data/spec/watirspec/elements/strongs_spec.rb +28 -26
  109. data/spec/watirspec/elements/table_spec.rb +192 -139
  110. data/spec/watirspec/elements/tables_spec.rb +28 -26
  111. data/spec/watirspec/elements/tbody_spec.rb +74 -72
  112. data/spec/watirspec/elements/tbodys_spec.rb +40 -38
  113. data/spec/watirspec/elements/td_spec.rb +66 -64
  114. data/spec/watirspec/elements/tds_spec.rb +41 -39
  115. data/spec/watirspec/elements/text_field_spec.rb +206 -204
  116. data/spec/watirspec/elements/text_fields_spec.rb +30 -28
  117. data/spec/watirspec/elements/textarea_spec.rb +20 -18
  118. data/spec/watirspec/elements/textareas_spec.rb +18 -16
  119. data/spec/watirspec/elements/tfoot_spec.rb +65 -63
  120. data/spec/watirspec/elements/tfoots_spec.rb +42 -40
  121. data/spec/watirspec/elements/thead_spec.rb +65 -63
  122. data/spec/watirspec/elements/theads_spec.rb +42 -40
  123. data/spec/watirspec/elements/tr_spec.rb +48 -46
  124. data/spec/watirspec/elements/trs_spec.rb +42 -40
  125. data/spec/watirspec/elements/ul_spec.rb +56 -54
  126. data/spec/watirspec/elements/uls_spec.rb +26 -24
  127. data/spec/watirspec/radio_set_spec.rb +269 -267
  128. data/spec/watirspec/screenshot_spec.rb +20 -18
  129. data/spec/watirspec/scroll_spec.rb +152 -148
  130. data/spec/watirspec/shadow_root_spec.rb +86 -83
  131. data/spec/watirspec/user_editable_spec.rb +200 -198
  132. data/spec/watirspec/wait_spec.rb +289 -295
  133. data/spec/watirspec/window_switching_spec.rb +422 -434
  134. data/spec/watirspec_helper.rb +1 -23
  135. data/watir.gemspec +5 -4
  136. metadata +44 -33
  137. data/spec/watirspec/attributes_spec.rb +0 -18
  138. data/spec/watirspec/elements/table_nesting_spec.rb +0 -51
  139. data/spec/watirspec/special_chars_spec.rb +0 -23
@@ -2,157 +2,159 @@
2
2
 
3
3
  require 'watirspec_helper'
4
4
 
5
- describe 'Image' do
6
- before :each do
7
- browser.goto(WatirSpec.url_for('images.html'))
8
- end
9
-
10
- # Exists method
11
- describe '#exists?' do
12
- it 'returns true when the image exists' do
13
- expect(browser.image(id: 'square')).to exist
14
- expect(browser.image(id: /square/)).to exist
15
- expect(browser.image(src: 'images/circle.png')).to exist
16
- expect(browser.image(src: /circle/)).to exist
17
- expect(browser.image(alt: 'circle')).to exist
18
- expect(browser.image(alt: /cir/)).to exist
19
- expect(browser.image(title: 'Circle')).to exist
20
- end
21
-
22
- it 'returns the first image if given no args' do
23
- expect(browser.image).to exist
24
- end
25
-
26
- it "returns false when the image doesn't exist" do
27
- expect(browser.image(id: 'no_such_id')).to_not exist
28
- expect(browser.image(id: /no_such_id/)).to_not exist
29
- expect(browser.image(src: 'no_such_src')).to_not exist
30
- expect(browser.image(src: /no_such_src/)).to_not exist
31
- expect(browser.image(alt: 'no_such_alt')).to_not exist
32
- expect(browser.image(alt: /no_such_alt/)).to_not exist
33
- expect(browser.image(title: 'no_such_title')).to_not exist
34
- expect(browser.image(title: /no_such_title/)).to_not exist
35
- end
36
-
37
- it "raises TypeError when 'what' argument is invalid" do
38
- expect { browser.image(id: 3.14).exists? }.to raise_error(TypeError)
39
- end
40
- end
41
-
42
- # Attribute methods
43
- describe '#alt' do
44
- it 'returns the alt attribute of the image if the image exists' do
45
- expect(browser.image(id: 'square').alt).to eq 'square'
46
- expect(browser.image(title: 'Circle').alt).to eq 'circle'
47
- end
48
-
49
- it "returns an empty string if the image exists and the attribute doesn't" do
50
- expect(browser.image(index: 0).alt).to eq ''
51
- end
52
-
53
- it "raises UnknownObjectException if the image doesn't exist" do
54
- expect { browser.image(index: 1337).alt }.to raise_unknown_object_exception
55
- end
56
- end
57
-
58
- describe '#id' do
59
- it 'returns the id attribute of the image if the image exists' do
60
- expect(browser.image(title: 'Square').id).to eq 'square'
61
- end
62
-
63
- it "returns an empty string if the image exists and the attribute doesn't" do
64
- expect(browser.image(index: 0).id).to eq ''
65
- end
66
-
67
- it "raises UnknownObjectException if the image doesn't exist" do
68
- expect { browser.image(index: 1337).id }.to raise_unknown_object_exception
69
- end
70
- end
71
-
72
- describe '#src' do
73
- it 'returns the src attribute of the image if the image exists' do
74
- expect(browser.image(id: 'square').src).to include('square.png')
75
- end
76
-
77
- it "returns an empty string if the image exists and the attribute doesn't" do
78
- expect(browser.image(index: 0).src).to eq ''
79
- end
80
-
81
- it "raises UnknownObjectException if the image doesn't exist" do
82
- expect { browser.image(index: 1337).src }.to raise_unknown_object_exception
83
- end
84
- end
85
-
86
- describe '#title' do
87
- it 'returns the title attribute of the image if the image exists' do
88
- expect(browser.image(id: 'square').title).to eq 'Square'
89
- end
90
-
91
- it "returns an empty string if the image exists and the attribute doesn't" do
92
- expect(browser.image(index: 0).title).to eq ''
93
- end
5
+ module Watir
6
+ describe Image do
7
+ before do
8
+ browser.goto(WatirSpec.url_for('images.html'))
9
+ end
10
+
11
+ # Exists method
12
+ describe '#exists?' do
13
+ it 'returns true when the image exists' do
14
+ expect(browser.image(id: 'square')).to exist
15
+ expect(browser.image(id: /square/)).to exist
16
+ expect(browser.image(src: 'images/circle.png')).to exist
17
+ expect(browser.image(src: /circle/)).to exist
18
+ expect(browser.image(alt: 'circle')).to exist
19
+ expect(browser.image(alt: /cir/)).to exist
20
+ expect(browser.image(title: 'Circle')).to exist
21
+ end
22
+
23
+ it 'returns the first image if given no args' do
24
+ expect(browser.image).to exist
25
+ end
26
+
27
+ it "returns false when the image doesn't exist" do
28
+ expect(browser.image(id: 'no_such_id')).not_to exist
29
+ expect(browser.image(id: /no_such_id/)).not_to exist
30
+ expect(browser.image(src: 'no_such_src')).not_to exist
31
+ expect(browser.image(src: /no_such_src/)).not_to exist
32
+ expect(browser.image(alt: 'no_such_alt')).not_to exist
33
+ expect(browser.image(alt: /no_such_alt/)).not_to exist
34
+ expect(browser.image(title: 'no_such_title')).not_to exist
35
+ expect(browser.image(title: /no_such_title/)).not_to exist
36
+ end
37
+
38
+ it "raises TypeError when 'what' argument is invalid" do
39
+ expect { browser.image(id: 3.14).exists? }.to raise_error(TypeError)
40
+ end
41
+ end
42
+
43
+ # Attribute methods
44
+ describe '#alt' do
45
+ it 'returns the alt attribute of the image if the image exists' do
46
+ expect(browser.image(id: 'square').alt).to eq 'square'
47
+ expect(browser.image(title: 'Circle').alt).to eq 'circle'
48
+ end
49
+
50
+ it "returns an empty string if the image exists and the attribute doesn't" do
51
+ expect(browser.image(index: 0).alt).to eq ''
52
+ end
53
+
54
+ it "raises UnknownObjectException if the image doesn't exist" do
55
+ expect { browser.image(index: 1337).alt }.to raise_unknown_object_exception
56
+ end
57
+ end
58
+
59
+ describe '#id' do
60
+ it 'returns the id attribute of the image if the image exists' do
61
+ expect(browser.image(title: 'Square').id).to eq 'square'
62
+ end
63
+
64
+ it "returns an empty string if the image exists and the attribute doesn't" do
65
+ expect(browser.image(index: 0).id).to eq ''
66
+ end
67
+
68
+ it "raises UnknownObjectException if the image doesn't exist" do
69
+ expect { browser.image(index: 1337).id }.to raise_unknown_object_exception
70
+ end
71
+ end
72
+
73
+ describe '#src' do
74
+ it 'returns the src attribute of the image if the image exists' do
75
+ expect(browser.image(id: 'square').src).to include('square.png')
76
+ end
77
+
78
+ it "returns an empty string if the image exists and the attribute doesn't" do
79
+ expect(browser.image(index: 0).src).to eq ''
80
+ end
81
+
82
+ it "raises UnknownObjectException if the image doesn't exist" do
83
+ expect { browser.image(index: 1337).src }.to raise_unknown_object_exception
84
+ end
85
+ end
86
+
87
+ describe '#title' do
88
+ it 'returns the title attribute of the image if the image exists' do
89
+ expect(browser.image(id: 'square').title).to eq 'Square'
90
+ end
91
+
92
+ it "returns an empty string if the image exists and the attribute doesn't" do
93
+ expect(browser.image(index: 0).title).to eq ''
94
+ end
95
+
96
+ it "raises UnknownObjectException if the image doesn't exist" do
97
+ expect { browser.image(index: 1337).title }.to raise_unknown_object_exception
98
+ end
99
+ end
100
+
101
+ describe '#respond_to?' do
102
+ it 'returns true for all attribute methods' do
103
+ expect(browser.image(index: 0)).to respond_to(:class_name)
104
+ expect(browser.image(index: 0)).to respond_to(:id)
105
+ expect(browser.image(index: 0)).to respond_to(:style)
106
+ expect(browser.image(index: 0)).to respond_to(:text)
107
+ end
108
+ end
109
+
110
+ # Manipulation methods
111
+ describe '#click' do
112
+ it "raises UnknownObjectException when the image doesn't exist" do
113
+ expect { browser.image(id: 'missing_attribute').click }.to raise_unknown_object_exception
114
+ expect { browser.image(class: 'missing_attribute').click }.to raise_unknown_object_exception
115
+ expect { browser.image(src: 'missing_attribute').click }.to raise_unknown_object_exception
116
+ expect { browser.image(alt: 'missing_attribute').click }.to raise_unknown_object_exception
117
+ end
118
+ end
119
+
120
+ describe '#height' do
121
+ it 'returns the height of the image if the image exists' do
122
+ expect(browser.image(id: 'square').height).to eq 88
123
+ end
124
+
125
+ it "raises UnknownObjectException if the image doesn't exist" do
126
+ expect { browser.image(index: 1337).height }.to raise_unknown_object_exception
127
+ end
128
+ end
129
+
130
+ describe '#width' do
131
+ it 'returns the width of the image if the image exists' do
132
+ expect(browser.image(id: 'square').width).to eq 88
133
+ end
94
134
 
95
- it "raises UnknownObjectException if the image doesn't exist" do
96
- expect { browser.image(index: 1337).title }.to raise_unknown_object_exception
135
+ it "raises UnknownObjectException if the image doesn't exist" do
136
+ expect { browser.image(index: 1337).width }.to raise_unknown_object_exception
137
+ end
97
138
  end
98
- end
99
139
 
100
- describe '#respond_to?' do
101
- it 'returns true for all attribute methods' do
102
- expect(browser.image(index: 0)).to respond_to(:class_name)
103
- expect(browser.image(index: 0)).to respond_to(:id)
104
- expect(browser.image(index: 0)).to respond_to(:style)
105
- expect(browser.image(index: 0)).to respond_to(:text)
106
- end
107
- end
108
-
109
- # Manipulation methods
110
- describe '#click' do
111
- it "raises UnknownObjectException when the image doesn't exist" do
112
- expect { browser.image(id: 'missing_attribute').click }.to raise_unknown_object_exception
113
- expect { browser.image(class: 'missing_attribute').click }.to raise_unknown_object_exception
114
- expect { browser.image(src: 'missing_attribute').click }.to raise_unknown_object_exception
115
- expect { browser.image(alt: 'missing_attribute').click }.to raise_unknown_object_exception
116
- end
117
- end
140
+ # Other
141
+ describe '#loaded?' do
142
+ it 'returns true if the image has been loaded' do
143
+ expect(browser.image(title: 'Circle')).to be_loaded
144
+ expect(browser.image(alt: 'circle')).to be_loaded
145
+ expect(browser.image(alt: /circle/)).to be_loaded
146
+ end
118
147
 
119
- describe '#height' do
120
- it 'returns the height of the image if the image exists' do
121
- expect(browser.image(id: 'square').height).to eq 88
122
- end
123
-
124
- it "raises UnknownObjectException if the image doesn't exist" do
125
- expect { browser.image(index: 1337).height }.to raise_unknown_object_exception
126
- end
127
- end
128
-
129
- describe '#width' do
130
- it 'returns the width of the image if the image exists' do
131
- expect(browser.image(id: 'square').width).to eq 88
132
- end
133
-
134
- it "raises UnknownObjectException if the image doesn't exist" do
135
- expect { browser.image(index: 1337).width }.to raise_unknown_object_exception
136
- end
137
- end
138
-
139
- # Other
140
- describe '#loaded?' do
141
- it 'returns true if the image has been loaded' do
142
- expect(browser.image(title: 'Circle')).to be_loaded
143
- expect(browser.image(alt: 'circle')).to be_loaded
144
- expect(browser.image(alt: /circle/)).to be_loaded
145
- end
146
-
147
- it 'returns false if the image has not been loaded' do
148
- expect(browser.image(id: 'no_such_file')).to_not be_loaded
149
- end
148
+ it 'returns false if the image has not been loaded' do
149
+ expect(browser.image(id: 'no_such_file')).not_to be_loaded
150
+ end
150
151
 
151
- it "raises UnknownObjectException if the image doesn't exist" do
152
- expect { browser.image(id: 'no_such_image').loaded? }.to raise_unknown_object_exception
153
- expect { browser.image(src: 'no_such_image').loaded? }.to raise_unknown_object_exception
154
- expect { browser.image(alt: 'no_such_image').loaded? }.to raise_unknown_object_exception
155
- expect { browser.image(index: 1337).loaded? }.to raise_unknown_object_exception
152
+ it "raises UnknownObjectException if the image doesn't exist" do
153
+ expect { browser.image(id: 'no_such_image').loaded? }.to raise_unknown_object_exception
154
+ expect { browser.image(src: 'no_such_image').loaded? }.to raise_unknown_object_exception
155
+ expect { browser.image(alt: 'no_such_image').loaded? }.to raise_unknown_object_exception
156
+ expect { browser.image(index: 1337).loaded? }.to raise_unknown_object_exception
157
+ end
156
158
  end
157
159
  end
158
160
  end
@@ -2,39 +2,41 @@
2
2
 
3
3
  require 'watirspec_helper'
4
4
 
5
- describe 'Images' do
6
- before :each do
7
- browser.goto(WatirSpec.url_for('images.html'))
8
- end
5
+ module Watir
6
+ describe ImageCollection do
7
+ before do
8
+ browser.goto(WatirSpec.url_for('images.html'))
9
+ end
9
10
 
10
- describe 'with selectors' do
11
- it 'returns the matching elements' do
12
- expect(browser.images(alt: 'circle').to_a).to eq [browser.image(alt: 'circle')]
11
+ describe 'with selectors' do
12
+ it 'returns the matching elements' do
13
+ expect(browser.images(alt: 'circle').to_a).to eq [browser.image(alt: 'circle')]
14
+ end
13
15
  end
14
- end
15
16
 
16
- describe '#length' do
17
- it 'returns the number of images' do
18
- expect(browser.images.length).to eq 10
17
+ describe '#length' do
18
+ it 'returns the number of images' do
19
+ expect(browser.images.length).to eq 10
20
+ end
19
21
  end
20
- end
21
22
 
22
- describe '#[]' do
23
- it 'returns the image at the given index' do
24
- expect(browser.images[5].id).to eq 'square'
23
+ describe '#[]' do
24
+ it 'returns the image at the given index' do
25
+ expect(browser.images[5].id).to eq 'square'
26
+ end
25
27
  end
26
- end
27
28
 
28
- describe '#each' do
29
- it 'iterates through images correctly' do
30
- count = 0
29
+ describe '#each' do
30
+ it 'iterates through images correctly' do
31
+ count = 0
31
32
 
32
- browser.images.each_with_index do |c, index|
33
- expect(c.id).to eq browser.image(index: index).id
34
- count += 1
35
- end
33
+ browser.images.each_with_index do |c, index|
34
+ expect(c.id).to eq browser.image(index: index).id
35
+ count += 1
36
+ end
36
37
 
37
- expect(count).to be > 0
38
+ expect(count).to be > 0
39
+ end
38
40
  end
39
41
  end
40
42
  end
@@ -2,14 +2,16 @@
2
2
 
3
3
  require 'watirspec_helper'
4
4
 
5
- describe Watir::Input do
6
- before do
7
- browser.goto WatirSpec.url_for('forms_with_input_elements.html')
8
- end
5
+ module Watir
6
+ describe Input do
7
+ before do
8
+ browser.goto WatirSpec.url_for('forms_with_input_elements.html')
9
+ end
9
10
 
10
- describe '#type' do
11
- it 'returns an email type' do
12
- expect(browser.input(name: 'html5_email').type).to eq 'email'
11
+ describe '#type' do
12
+ it 'returns an email type' do
13
+ expect(browser.input(name: 'html5_email').type).to eq 'email'
14
+ end
13
15
  end
14
16
  end
15
17
  end
@@ -2,110 +2,112 @@
2
2
 
3
3
  require 'watirspec_helper'
4
4
 
5
- describe 'Ins' do
6
- before :each do
7
- browser.goto(WatirSpec.url_for('non_control_elements.html'))
8
- end
9
-
10
- # Exists method
11
- describe '#exist?' do
12
- it "returns true if the 'ins' exists" do
13
- expect(browser.ins(id: 'lead')).to exist
14
- expect(browser.ins(id: /lead/)).to exist
15
- expect(browser.ins(text: 'This is an inserted text tag 1')).to exist
16
- expect(browser.ins(text: /This is an inserted text tag 1/)).to exist
17
- expect(browser.ins(class: 'lead')).to exist
18
- expect(browser.ins(class: /lead/)).to exist
19
- expect(browser.ins(index: 0)).to exist
20
- expect(browser.ins(xpath: "//ins[@id='lead']")).to exist
21
- end
22
-
23
- it 'returns the first ins if given no args' do
24
- expect(browser.ins).to exist
25
- end
26
-
27
- it "returns false if the element doesn't exist" do
28
- expect(browser.ins(id: 'no_such_id')).to_not exist
29
- expect(browser.ins(id: /no_such_id/)).to_not exist
30
- expect(browser.ins(text: 'no_such_text')).to_not exist
31
- expect(browser.ins(text: /no_such_text/)).to_not exist
32
- expect(browser.ins(class: 'no_such_class')).to_not exist
33
- expect(browser.ins(class: /no_such_class/)).to_not exist
34
- expect(browser.ins(index: 1337)).to_not exist
35
- expect(browser.ins(xpath: "//ins[@id='no_such_id']")).to_not exist
36
- end
37
-
38
- it "raises TypeError when 'what' argument is invalid" do
39
- expect { browser.ins(id: 3.14).exists? }.to raise_error(TypeError)
40
- end
41
- end
42
-
43
- # Attribute methods
44
- describe '#id' do
45
- it 'returns the id attribute' do
46
- expect(browser.ins(index: 0).id).to eq 'lead'
47
- end
48
-
49
- it "returns an empty string if the element exists and the attribute doesn't" do
50
- expect(browser.ins(index: 2).id).to eq ''
51
- end
52
-
53
- it "raises UnknownObjectException if the ins doesn't exist" do
54
- expect { browser.ins(id: 'no_such_id').id }.to raise_unknown_object_exception
55
- expect { browser.ins(index: 1337).id }.to raise_unknown_object_exception
56
- end
57
- end
58
-
59
- describe '#title' do
60
- it 'returns the title attribute' do
61
- expect(browser.ins(index: 0).title).to eq 'Lorem ipsum'
62
- end
63
-
64
- it "returns an empty string if the element exists and the attribute doesn't" do
65
- expect(browser.ins(index: 2).title).to eq ''
66
- end
67
-
68
- it "raises UnknownObjectException if the ins doesn't exist" do
69
- expect { browser.ins(id: 'no_such_id').title }.to raise_unknown_object_exception
70
- expect { browser.ins(xpath: "//ins[@id='no_such_id']").title }.to raise_unknown_object_exception
71
- end
72
- end
73
-
74
- describe '#text' do
75
- it 'returns the text of the ins' do
76
- expect(browser.ins(index: 1).text).to eq 'This is an inserted text tag 2'
77
- end
78
-
79
- it "returns an empty string if the element doesn't contain any text" do
80
- expect(browser.ins(index: 3).text).to eq ''
81
- end
82
-
83
- it "raises UnknownObjectException if the ins doesn't exist" do
84
- expect { browser.ins(id: 'no_such_id').text }.to raise_unknown_object_exception
85
- expect { browser.ins(xpath: "//ins[@id='no_such_id']").text }.to raise_unknown_object_exception
86
- end
87
- end
88
-
89
- describe '#respond_to?' do
90
- it 'returns true for all attribute methods' do
91
- expect(browser.ins(index: 0)).to respond_to(:class_name)
92
- expect(browser.ins(index: 0)).to respond_to(:id)
93
- expect(browser.ins(index: 0)).to respond_to(:title)
94
- expect(browser.ins(index: 0)).to respond_to(:text)
95
- end
96
- end
97
-
98
- # Other
99
- describe '#click', except: {headless: true} do
100
- it 'fires events' do
101
- expect(browser.ins(class: 'footer').text).to_not include('Javascript')
102
- browser.ins(class: 'footer').click
103
- expect(browser.ins(class: 'footer').text).to include('Javascript')
104
- end
105
-
106
- it "raises UnknownObjectException if the ins doesn't exist" do
107
- expect { browser.ins(id: 'no_such_id').click }.to raise_unknown_object_exception
108
- expect { browser.ins(title: 'no_such_title').click }.to raise_unknown_object_exception
5
+ module Watir
6
+ describe 'Ins' do
7
+ before do
8
+ browser.goto(WatirSpec.url_for('non_control_elements.html'))
9
+ end
10
+
11
+ # Exists method
12
+ describe '#exist?' do
13
+ it "returns true if the 'ins' exists" do
14
+ expect(browser.ins(id: 'lead')).to exist
15
+ expect(browser.ins(id: /lead/)).to exist
16
+ expect(browser.ins(text: 'This is an inserted text tag 1')).to exist
17
+ expect(browser.ins(text: /This is an inserted text tag 1/)).to exist
18
+ expect(browser.ins(class: 'lead')).to exist
19
+ expect(browser.ins(class: /lead/)).to exist
20
+ expect(browser.ins(index: 0)).to exist
21
+ expect(browser.ins(xpath: "//ins[@id='lead']")).to exist
22
+ end
23
+
24
+ it 'returns the first ins if given no args' do
25
+ expect(browser.ins).to exist
26
+ end
27
+
28
+ it "returns false if the element doesn't exist" do
29
+ expect(browser.ins(id: 'no_such_id')).not_to exist
30
+ expect(browser.ins(id: /no_such_id/)).not_to exist
31
+ expect(browser.ins(text: 'no_such_text')).not_to exist
32
+ expect(browser.ins(text: /no_such_text/)).not_to exist
33
+ expect(browser.ins(class: 'no_such_class')).not_to exist
34
+ expect(browser.ins(class: /no_such_class/)).not_to exist
35
+ expect(browser.ins(index: 1337)).not_to exist
36
+ expect(browser.ins(xpath: "//ins[@id='no_such_id']")).not_to exist
37
+ end
38
+
39
+ it "raises TypeError when 'what' argument is invalid" do
40
+ expect { browser.ins(id: 3.14).exists? }.to raise_error(TypeError)
41
+ end
42
+ end
43
+
44
+ # Attribute methods
45
+ describe '#id' do
46
+ it 'returns the id attribute' do
47
+ expect(browser.ins(index: 0).id).to eq 'lead'
48
+ end
49
+
50
+ it "returns an empty string if the element exists and the attribute doesn't" do
51
+ expect(browser.ins(index: 2).id).to eq ''
52
+ end
53
+
54
+ it "raises UnknownObjectException if the ins doesn't exist" do
55
+ expect { browser.ins(id: 'no_such_id').id }.to raise_unknown_object_exception
56
+ expect { browser.ins(index: 1337).id }.to raise_unknown_object_exception
57
+ end
58
+ end
59
+
60
+ describe '#title' do
61
+ it 'returns the title attribute' do
62
+ expect(browser.ins(index: 0).title).to eq 'Lorem ipsum'
63
+ end
64
+
65
+ it "returns an empty string if the element exists and the attribute doesn't" do
66
+ expect(browser.ins(index: 2).title).to eq ''
67
+ end
68
+
69
+ it "raises UnknownObjectException if the ins doesn't exist" do
70
+ expect { browser.ins(id: 'no_such_id').title }.to raise_unknown_object_exception
71
+ expect { browser.ins(xpath: "//ins[@id='no_such_id']").title }.to raise_unknown_object_exception
72
+ end
73
+ end
74
+
75
+ describe '#text' do
76
+ it 'returns the text of the ins' do
77
+ expect(browser.ins(index: 1).text).to eq 'This is an inserted text tag 2'
78
+ end
79
+
80
+ it "returns an empty string if the element doesn't contain any text" do
81
+ expect(browser.ins(index: 3).text).to eq ''
82
+ end
83
+
84
+ it "raises UnknownObjectException if the ins doesn't exist" do
85
+ expect { browser.ins(id: 'no_such_id').text }.to raise_unknown_object_exception
86
+ expect { browser.ins(xpath: "//ins[@id='no_such_id']").text }.to raise_unknown_object_exception
87
+ end
88
+ end
89
+
90
+ describe '#respond_to?' do
91
+ it 'returns true for all attribute methods' do
92
+ expect(browser.ins(index: 0)).to respond_to(:class_name)
93
+ expect(browser.ins(index: 0)).to respond_to(:id)
94
+ expect(browser.ins(index: 0)).to respond_to(:title)
95
+ expect(browser.ins(index: 0)).to respond_to(:text)
96
+ end
97
+ end
98
+
99
+ # Other
100
+ describe '#click', except: {headless: true} do
101
+ it 'fires events' do
102
+ expect(browser.ins(class: 'footer').text).not_to include('Javascript')
103
+ browser.ins(class: 'footer').click
104
+ expect(browser.ins(class: 'footer').text).to include('Javascript')
105
+ end
106
+
107
+ it "raises UnknownObjectException if the ins doesn't exist" do
108
+ expect { browser.ins(id: 'no_such_id').click }.to raise_unknown_object_exception
109
+ expect { browser.ins(title: 'no_such_title').click }.to raise_unknown_object_exception
110
+ end
109
111
  end
110
112
  end
111
113
  end