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,46 +2,48 @@
2
2
 
3
3
  require 'watirspec_helper'
4
4
 
5
- describe 'SelectLists' do
6
- before :each do
7
- browser.goto(WatirSpec.url_for('forms_with_input_elements.html'))
8
- end
5
+ module Watir
6
+ describe SelectCollection do
7
+ before do
8
+ browser.goto(WatirSpec.url_for('forms_with_input_elements.html'))
9
+ end
9
10
 
10
- describe 'with selectors' do
11
- it 'returns the matching elements' do
12
- list = [browser.select_list(name: 'delete_user_username')]
13
- expect(browser.select_lists(name: 'delete_user_username').to_a).to eq list
11
+ describe 'with selectors' do
12
+ it 'returns the matching elements' do
13
+ list = [browser.select_list(name: 'delete_user_username')]
14
+ expect(browser.select_lists(name: 'delete_user_username').to_a).to eq list
15
+ end
14
16
  end
15
- end
16
17
 
17
- describe '#length' do
18
- it 'returns the correct number of select lists on the page' do
19
- expect(browser.select_lists.length).to eq 6
18
+ describe '#length' do
19
+ it 'returns the correct number of select lists on the page' do
20
+ expect(browser.select_lists.length).to eq 6
21
+ end
20
22
  end
21
- end
22
23
 
23
- describe '#[]' do
24
- it 'returns the correct item' do
25
- expect(browser.select_lists[0].value).to eq '2'
26
- expect(browser.select_lists[0].name).to eq 'new_user_country'
27
- expect(browser.select_lists[0]).to_not be_multiple
28
- expect(browser.select_lists[1]).to be_multiple
24
+ describe '#[]' do
25
+ it 'returns the correct item' do
26
+ expect(browser.select_lists[0].value).to eq '2'
27
+ expect(browser.select_lists[0].name).to eq 'new_user_country'
28
+ expect(browser.select_lists[0]).not_to be_multiple
29
+ expect(browser.select_lists[1]).to be_multiple
30
+ end
29
31
  end
30
- end
31
32
 
32
- describe '#each' do
33
- it 'iterates through the select lists correctly' do
34
- count = 0
33
+ describe '#each' do
34
+ it 'iterates through the select lists correctly' do
35
+ count = 0
35
36
 
36
- browser.select_lists.each_with_index do |l, index|
37
- expect(browser.select_list(index: index).name).to eq l.name
38
- expect(browser.select_list(index: index).id).to eq l.id
39
- expect(browser.select_list(index: index).value).to eq l.value
37
+ browser.select_lists.each_with_index do |l, index|
38
+ expect(browser.select_list(index: index).name).to eq l.name
39
+ expect(browser.select_list(index: index).id).to eq l.id
40
+ expect(browser.select_list(index: index).value).to eq l.value
40
41
 
41
- count += 1
42
- end
42
+ count += 1
43
+ end
43
44
 
44
- expect(count).to be > 0
45
+ expect(count).to be > 0
46
+ end
45
47
  end
46
48
  end
47
49
  end
@@ -2,116 +2,118 @@
2
2
 
3
3
  require 'watirspec_helper'
4
4
 
5
- describe 'Span' 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 'span' exists" do
13
- expect(browser.span(id: 'lead')).to exist
14
- expect(browser.span(id: /lead/)).to exist
15
- expect(browser.span(text: 'Dubito, ergo cogito, ergo sum.')).to exist
16
- expect(browser.span(class: 'lead')).to exist
17
- expect(browser.span(class: /lead/)).to exist
18
- expect(browser.span(index: 0)).to exist
19
- expect(browser.span(xpath: "//span[@id='lead']")).to exist
20
- end
21
-
22
- it 'visible text is found by regular expression with visible text locator' do
23
- expect(browser.span(visible_text: /Dubito, ergo cogito, ergo sum/)).to exist
24
- end
25
-
26
- it 'returns the first span if given no args' do
27
- expect(browser.span).to exist
28
- end
29
-
30
- it "returns false if the element doesn't exist" do
31
- expect(browser.span(id: 'no_such_id')).to_not exist
32
- expect(browser.span(id: /no_such_id/)).to_not exist
33
- expect(browser.span(text: 'no_such_text')).to_not exist
34
- expect(browser.span(text: /no_such_text/)).to_not exist
35
- expect(browser.span(class: 'no_such_class')).to_not exist
36
- expect(browser.span(class: /no_such_class/)).to_not exist
37
- expect(browser.span(index: 1337)).to_not exist
38
- expect(browser.span(xpath: "//span[@id='no_such_id']")).to_not exist
39
- end
40
-
41
- it "raises TypeError when 'what' argument is invalid" do
42
- expect { browser.span(id: 3.14).exists? }.to raise_error(TypeError)
43
- end
44
- end
45
-
46
- # Attribute methods
47
- describe '#id' do
48
- it 'returns the id attribute' do
49
- expect(browser.span(index: 0).id).to eq 'lead'
50
- end
51
-
52
- it "returns an empty string if the element exists and the attribute doesn't" do
53
- expect(browser.span(index: 2).id).to eq ''
54
- end
55
-
56
- it "raises UnknownObjectException if the span doesn't exist" do
57
- expect { browser.span(id: 'no_such_id').id }.to raise_unknown_object_exception
58
- expect { browser.span(index: 1337).id }.to raise_unknown_object_exception
59
- end
60
- end
61
-
62
- describe '#title' do
63
- it 'returns the title attribute' do
64
- expect(browser.span(index: 0).title).to eq 'Lorem ipsum'
65
- end
66
-
67
- it "returns an empty string if the element exists and the attribute doesn't" do
68
- expect(browser.span(index: 2).title).to eq ''
69
- end
70
-
71
- it "raises UnknownObjectException if the span doesn't exist" do
72
- expect { browser.span(id: 'no_such_id').title }.to raise_unknown_object_exception
73
- expect { browser.span(xpath: "//span[@id='no_such_id']").title }.to raise_unknown_object_exception
74
- end
75
- end
76
-
77
- describe '#text' do
78
- it 'returns the text of the span' do
79
- msg = 'Sed pretium metus et quam. Nullam odio dolor, vestibulum non, tempor ut, vehicula sed, sapien. ' \
80
- 'Vestibulum placerat ligula at quam. Pellentesque habitant morbi tristique senectus et netus et ' \
81
- 'malesuada fames ac turpis egestas.'
82
- expect(browser.span(index: 1).text).to eq msg
83
- end
84
-
85
- it "returns an empty string if the element doesn't contain any text" do
86
- expect(browser.span(index: 4).text).to eq ''
87
- end
88
-
89
- it "raises UnknownObjectException if the span doesn't exist" do
90
- expect { browser.span(id: 'no_such_id').text }.to raise_unknown_object_exception
91
- expect { browser.span(xpath: "//span[@id='no_such_id']").text }.to raise_unknown_object_exception
92
- end
93
- end
94
-
95
- describe '#respond_to?' do
96
- it 'returns true for all attribute methods' do
97
- expect(browser.span(index: 0)).to respond_to(:class_name)
98
- expect(browser.span(index: 0)).to respond_to(:id)
99
- expect(browser.span(index: 0)).to respond_to(:title)
100
- expect(browser.span(index: 0)).to respond_to(:text)
101
- end
102
- end
103
-
104
- # Other
105
- describe '#click', except: {headless: true} do
106
- it 'fires events' do
107
- expect(browser.span(class: 'footer').text).to_not include('Javascript')
108
- browser.span(class: 'footer').click
109
- expect(browser.span(class: 'footer').text).to include('Javascript')
110
- end
111
-
112
- it "raises UnknownObjectException if the span doesn't exist" do
113
- expect { browser.span(id: 'no_such_id').click }.to raise_unknown_object_exception
114
- expect { browser.span(title: 'no_such_title').click }.to raise_unknown_object_exception
5
+ module Watir
6
+ describe Span 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 'span' exists" do
14
+ expect(browser.span(id: 'lead')).to exist
15
+ expect(browser.span(id: /lead/)).to exist
16
+ expect(browser.span(text: 'Dubito, ergo cogito, ergo sum.')).to exist
17
+ expect(browser.span(class: 'lead')).to exist
18
+ expect(browser.span(class: /lead/)).to exist
19
+ expect(browser.span(index: 0)).to exist
20
+ expect(browser.span(xpath: "//span[@id='lead']")).to exist
21
+ end
22
+
23
+ it 'visible text is found by regular expression with visible text locator' do
24
+ expect(browser.span(visible_text: /Dubito, ergo cogito, ergo sum/)).to exist
25
+ end
26
+
27
+ it 'returns the first span if given no args' do
28
+ expect(browser.span).to exist
29
+ end
30
+
31
+ it "returns false if the element doesn't exist" do
32
+ expect(browser.span(id: 'no_such_id')).not_to exist
33
+ expect(browser.span(id: /no_such_id/)).not_to exist
34
+ expect(browser.span(text: 'no_such_text')).not_to exist
35
+ expect(browser.span(text: /no_such_text/)).not_to exist
36
+ expect(browser.span(class: 'no_such_class')).not_to exist
37
+ expect(browser.span(class: /no_such_class/)).not_to exist
38
+ expect(browser.span(index: 1337)).not_to exist
39
+ expect(browser.span(xpath: "//span[@id='no_such_id']")).not_to exist
40
+ end
41
+
42
+ it "raises TypeError when 'what' argument is invalid" do
43
+ expect { browser.span(id: 3.14).exists? }.to raise_error(TypeError)
44
+ end
45
+ end
46
+
47
+ # Attribute methods
48
+ describe '#id' do
49
+ it 'returns the id attribute' do
50
+ expect(browser.span(index: 0).id).to eq 'lead'
51
+ end
52
+
53
+ it "returns an empty string if the element exists and the attribute doesn't" do
54
+ expect(browser.span(index: 2).id).to eq ''
55
+ end
56
+
57
+ it "raises UnknownObjectException if the span doesn't exist" do
58
+ expect { browser.span(id: 'no_such_id').id }.to raise_unknown_object_exception
59
+ expect { browser.span(index: 1337).id }.to raise_unknown_object_exception
60
+ end
61
+ end
62
+
63
+ describe '#title' do
64
+ it 'returns the title attribute' do
65
+ expect(browser.span(index: 0).title).to eq 'Lorem ipsum'
66
+ end
67
+
68
+ it "returns an empty string if the element exists and the attribute doesn't" do
69
+ expect(browser.span(index: 2).title).to eq ''
70
+ end
71
+
72
+ it "raises UnknownObjectException if the span doesn't exist" do
73
+ expect { browser.span(id: 'no_such_id').title }.to raise_unknown_object_exception
74
+ expect { browser.span(xpath: "//span[@id='no_such_id']").title }.to raise_unknown_object_exception
75
+ end
76
+ end
77
+
78
+ describe '#text' do
79
+ it 'returns the text of the span' do
80
+ msg = 'Sed pretium metus et quam. Nullam odio dolor, vestibulum non, tempor ut, vehicula sed, sapien. ' \
81
+ 'Vestibulum placerat ligula at quam. Pellentesque habitant morbi tristique senectus et netus et ' \
82
+ 'malesuada fames ac turpis egestas.'
83
+ expect(browser.span(index: 1).text).to eq msg
84
+ end
85
+
86
+ it "returns an empty string if the element doesn't contain any text" do
87
+ expect(browser.span(index: 4).text).to eq ''
88
+ end
89
+
90
+ it "raises UnknownObjectException if the span doesn't exist" do
91
+ expect { browser.span(id: 'no_such_id').text }.to raise_unknown_object_exception
92
+ expect { browser.span(xpath: "//span[@id='no_such_id']").text }.to raise_unknown_object_exception
93
+ end
94
+ end
95
+
96
+ describe '#respond_to?' do
97
+ it 'returns true for all attribute methods' do
98
+ expect(browser.span(index: 0)).to respond_to(:class_name)
99
+ expect(browser.span(index: 0)).to respond_to(:id)
100
+ expect(browser.span(index: 0)).to respond_to(:title)
101
+ expect(browser.span(index: 0)).to respond_to(:text)
102
+ end
103
+ end
104
+
105
+ # Other
106
+ describe '#click', except: {headless: true} do
107
+ it 'fires events' do
108
+ expect(browser.span(class: 'footer').text).not_to include('Javascript')
109
+ browser.span(class: 'footer').click
110
+ expect(browser.span(class: 'footer').text).to include('Javascript')
111
+ end
112
+
113
+ it "raises UnknownObjectException if the span doesn't exist" do
114
+ expect { browser.span(id: 'no_such_id').click }.to raise_unknown_object_exception
115
+ expect { browser.span(title: 'no_such_title').click }.to raise_unknown_object_exception
116
+ end
115
117
  end
116
118
  end
117
119
  end
@@ -2,39 +2,41 @@
2
2
 
3
3
  require 'watirspec_helper'
4
4
 
5
- describe 'Spans' do
6
- before :each do
7
- browser.goto(WatirSpec.url_for('non_control_elements.html'))
8
- end
5
+ module Watir
6
+ describe SpanCollection do
7
+ before do
8
+ browser.goto(WatirSpec.url_for('non_control_elements.html'))
9
+ end
9
10
 
10
- describe 'with selectors' do
11
- it 'returns the matching elements' do
12
- expect(browser.spans(class: 'footer').to_a).to eq [browser.span(class: 'footer')]
11
+ describe 'with selectors' do
12
+ it 'returns the matching elements' do
13
+ expect(browser.spans(class: 'footer').to_a).to eq [browser.span(class: 'footer')]
14
+ end
13
15
  end
14
- end
15
16
 
16
- describe '#length' do
17
- it 'returns the number of spans' do
18
- expect(browser.spans.length).to eq 8
17
+ describe '#length' do
18
+ it 'returns the number of spans' do
19
+ expect(browser.spans.length).to eq 8
20
+ end
19
21
  end
20
- end
21
22
 
22
- describe '#[]' do
23
- it 'returns the p at the given index' do
24
- expect(browser.spans[0].id).to eq 'lead'
23
+ describe '#[]' do
24
+ it 'returns the p at the given index' do
25
+ expect(browser.spans[0].id).to eq 'lead'
26
+ end
25
27
  end
26
- end
27
28
 
28
- describe '#each' do
29
- it 'iterates through spans correctly' do
30
- count = 0
29
+ describe '#each' do
30
+ it 'iterates through spans correctly' do
31
+ count = 0
31
32
 
32
- browser.spans.each_with_index do |s, index|
33
- expect(s.id).to eq browser.span(index: index).id
34
- count += 1
35
- end
33
+ browser.spans.each_with_index do |s, index|
34
+ expect(s.id).to eq browser.span(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,77 +2,77 @@
2
2
 
3
3
  require 'watirspec_helper'
4
4
 
5
- describe 'Strong' 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 element exists' do
13
- expect(browser.strong(id: 'descartes')).to exist
14
- expect(browser.strong(id: /descartes/)).to exist
15
- expect(browser.strong(text: 'Dubito, ergo cogito, ergo sum.')).to exist
16
- expect(browser.strong(class: 'descartes')).to exist
17
- expect(browser.strong(class: /descartes/)).to exist
18
- expect(browser.strong(index: 0)).to exist
19
- expect(browser.strong(xpath: "//strong[@id='descartes']")).to exist
5
+ module Watir
6
+ describe 'Strong' do
7
+ before do
8
+ browser.goto(WatirSpec.url_for('non_control_elements.html'))
20
9
  end
21
10
 
22
- it 'visible text is found by regular expression with text locator' do
23
- expect(browser.strong(visible_text: /Dubito, ergo cogito, ergo sum/)).to exist
24
- end
11
+ # Exists method
12
+ describe '#exist?' do
13
+ it 'returns true if the element exists' do
14
+ expect(browser.strong(id: 'descartes')).to exist
15
+ expect(browser.strong(id: /descartes/)).to exist
16
+ expect(browser.strong(text: 'Dubito, ergo cogito, ergo sum.')).to exist
17
+ expect(browser.strong(class: 'descartes')).to exist
18
+ expect(browser.strong(class: /descartes/)).to exist
19
+ expect(browser.strong(index: 0)).to exist
20
+ expect(browser.strong(xpath: "//strong[@id='descartes']")).to exist
21
+ end
25
22
 
26
- it 'returns the first strong if given no args' do
27
- expect(browser.strong).to exist
28
- end
23
+ it 'visible text is found by regular expression with text locator' do
24
+ expect(browser.strong(visible_text: /Dubito, ergo cogito, ergo sum/)).to exist
25
+ end
29
26
 
30
- it "returns false if the element doesn't exist" do
31
- expect(browser.strong(id: 'no_such_id')).to_not exist
32
- expect(browser.strong(id: /no_such_id/)).to_not exist
33
- expect(browser.strong(text: 'no_such_text')).to_not exist
34
- expect(browser.strong(text: /no_such_text/)).to_not exist
35
- expect(browser.strong(class: 'no_such_class')).to_not exist
36
- expect(browser.strong(class: /no_such_class/)).to_not exist
37
- expect(browser.strong(index: 1337)).to_not exist
38
- expect(browser.strong(xpath: "//strong[@id='no_such_id']")).to_not exist
39
- end
27
+ it 'returns the first strong if given no args' do
28
+ expect(browser.strong).to exist
29
+ end
40
30
 
41
- it "raises TypeError when 'what' argument is invalid" do
42
- expect { browser.strong(id: 3.14).exists? }.to raise_error(TypeError)
43
- end
44
- end
31
+ it "returns false if the element doesn't exist" do
32
+ expect(browser.strong(id: 'no_such_id')).not_to exist
33
+ expect(browser.strong(id: /no_such_id/)).not_to exist
34
+ expect(browser.strong(text: 'no_such_text')).not_to exist
35
+ expect(browser.strong(text: /no_such_text/)).not_to exist
36
+ expect(browser.strong(class: 'no_such_class')).not_to exist
37
+ expect(browser.strong(class: /no_such_class/)).not_to exist
38
+ expect(browser.strong(index: 1337)).not_to exist
39
+ expect(browser.strong(xpath: "//strong[@id='no_such_id']")).not_to exist
40
+ end
45
41
 
46
- # Attribute methods
47
- describe '#id' do
48
- it 'returns the id attribute' do
49
- expect(browser.strong(index: 0).id).to eq 'descartes'
42
+ it "raises TypeError when 'what' argument is invalid" do
43
+ expect { browser.strong(id: 3.14).exists? }.to raise_error(TypeError)
44
+ end
50
45
  end
51
46
 
52
- it "raises UnknownObjectException if the element doesn't exist" do
53
- expect { browser.strong(id: 'no_such_id').id }.to raise_unknown_object_exception
54
- expect { browser.strong(index: 1337).id }.to raise_unknown_object_exception
55
- end
56
- end
47
+ # Attribute methods
48
+ describe '#id' do
49
+ it 'returns the id attribute' do
50
+ expect(browser.strong(index: 0).id).to eq 'descartes'
51
+ end
57
52
 
58
- describe '#text' do
59
- it 'returns the text of the element' do
60
- expect(browser.strong(index: 0).text).to eq 'Dubito, ergo cogito, ergo sum.'
53
+ it "raises UnknownObjectException if the element doesn't exist" do
54
+ expect { browser.strong(id: 'no_such_id').id }.to raise_unknown_object_exception
55
+ expect { browser.strong(index: 1337).id }.to raise_unknown_object_exception
56
+ end
61
57
  end
62
58
 
63
- it "raises UnknownObjectException if the element doesn't exist" do
64
- expect { browser.strong(id: 'no_such_id').text }.to raise_unknown_object_exception
65
- expect { browser.strong(xpath: "//strong[@id='no_such_id']").text }.to raise_unknown_object_exception
59
+ describe '#text' do
60
+ it 'returns the text of the element' do
61
+ expect(browser.strong(index: 0).text).to eq 'Dubito, ergo cogito, ergo sum.'
62
+ end
63
+
64
+ it "raises UnknownObjectException if the element doesn't exist" do
65
+ expect { browser.strong(id: 'no_such_id').text }.to raise_unknown_object_exception
66
+ expect { browser.strong(xpath: "//strong[@id='no_such_id']").text }.to raise_unknown_object_exception
67
+ end
66
68
  end
67
- end
68
69
 
69
- describe '#respond_to?' do
70
- it 'returns true for all attribute methods' do
71
- expect(browser.strong(index: 0)).to respond_to(:class_name)
72
- expect(browser.strong(index: 0)).to respond_to(:id)
73
- expect(browser.strong(index: 0)).to respond_to(:text)
70
+ describe '#respond_to?' do
71
+ it 'returns true for all attribute methods' do
72
+ expect(browser.strong(index: 0)).to respond_to(:class_name)
73
+ expect(browser.strong(index: 0)).to respond_to(:id)
74
+ expect(browser.strong(index: 0)).to respond_to(:text)
75
+ end
74
76
  end
75
77
  end
76
-
77
- # Other
78
78
  end
@@ -2,42 +2,44 @@
2
2
 
3
3
  require 'watirspec_helper'
4
4
 
5
- describe 'Strongs' do
6
- before :each do
7
- browser.goto(WatirSpec.url_for('non_control_elements.html'))
8
- end
5
+ module Watir
6
+ describe 'Strongs' do
7
+ before do
8
+ browser.goto(WatirSpec.url_for('non_control_elements.html'))
9
+ end
9
10
 
10
- describe 'with selectors' do
11
- it 'returns the matching elements' do
12
- expect(browser.strongs(class: 'descartes').to_a).to eq [browser.strong(class: 'descartes')]
11
+ describe 'with selectors' do
12
+ it 'returns the matching elements' do
13
+ expect(browser.strongs(class: 'descartes').to_a).to eq [browser.strong(class: 'descartes')]
14
+ end
13
15
  end
14
- end
15
16
 
16
- describe '#length' do
17
- it 'returns the number of divs' do
18
- expect(browser.strongs.length).to eq 2
17
+ describe '#length' do
18
+ it 'returns the number of divs' do
19
+ expect(browser.strongs.length).to eq 2
20
+ end
19
21
  end
20
- end
21
22
 
22
- describe '#[]' do
23
- it 'returns the div at the given index' do
24
- expect(browser.strongs[0].id).to eq 'descartes'
23
+ describe '#[]' do
24
+ it 'returns the div at the given index' do
25
+ expect(browser.strongs[0].id).to eq 'descartes'
26
+ end
25
27
  end
26
- end
27
28
 
28
- describe '#each' do
29
- it 'iterates through divs correctly' do
30
- count = 0
29
+ describe '#each' do
30
+ it 'iterates through divs correctly' do
31
+ count = 0
31
32
 
32
- browser.strongs.each_with_index do |s, index|
33
- strong = browser.strong(index: index)
34
- expect(s.id).to eq strong.id
35
- expect(s.class_name).to eq strong.class_name
33
+ browser.strongs.each_with_index do |s, index|
34
+ strong = browser.strong(index: index)
35
+ expect(s.id).to eq strong.id
36
+ expect(s.class_name).to eq strong.class_name
36
37
 
37
- count += 1
38
- end
38
+ count += 1
39
+ end
39
40
 
40
- expect(count).to be > 0
41
+ expect(count).to be > 0
42
+ end
41
43
  end
42
44
  end
43
45
  end