vigiles 0.1.0.pre.beta3 → 0.1.0.pre.beta4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +10 -1
  3. data/lib/vigiles/archive/extras.rb +4 -3
  4. data/lib/vigiles/archive/metadata.rb +3 -2
  5. data/lib/vigiles/archive/request.rb +18 -4
  6. data/lib/vigiles/archive.rb +15 -3
  7. data/lib/vigiles/constants.rb +7 -0
  8. data/lib/vigiles/middleware/record_conversation.rb +6 -22
  9. data/lib/vigiles/spec.rb +1 -1
  10. data/lib/vigiles/utilities/uri.rb +18 -0
  11. data/lib/vigiles/version.rb +1 -1
  12. data/lib/vigiles.rb +4 -1
  13. data/sorbet/rbi/gems/{activemodel@7.0.5.rbi → actioncable@7.1.3.3.rbi} +2 -2
  14. data/sorbet/rbi/gems/actionmailbox@7.1.3.3.rbi +8 -0
  15. data/sorbet/rbi/gems/{activerecord@7.0.5.rbi → actionmailer@7.1.3.3.rbi} +2 -2
  16. data/sorbet/rbi/gems/actionpack@7.1.3.3.rbi +20046 -0
  17. data/sorbet/rbi/gems/actiontext@7.1.3.3.rbi +8 -0
  18. data/sorbet/rbi/gems/actionview@7.1.3.3.rbi +15953 -0
  19. data/sorbet/rbi/gems/activejob@7.1.3.3.rbi +8 -0
  20. data/sorbet/rbi/gems/activemodel@7.1.3.3.rbi +6657 -0
  21. data/sorbet/rbi/gems/activerecord@7.1.3.3.rbi +41520 -0
  22. data/sorbet/rbi/gems/activestorage@7.1.3.3.rbi +8 -0
  23. data/sorbet/rbi/gems/activesupport@7.1.3.3.rbi +20570 -0
  24. data/sorbet/rbi/gems/base64@0.2.0.rbi +508 -0
  25. data/sorbet/rbi/gems/bigdecimal@3.1.8.rbi +77 -0
  26. data/sorbet/rbi/gems/builder@3.2.4.rbi +8 -0
  27. data/sorbet/rbi/gems/connection_pool@2.4.1.rbi +8 -0
  28. data/sorbet/rbi/gems/crass@1.0.6.rbi +622 -0
  29. data/sorbet/rbi/gems/date@3.3.4.rbi +74 -0
  30. data/sorbet/rbi/gems/drb@2.2.1.rbi +1346 -0
  31. data/sorbet/rbi/gems/globalid@1.2.1.rbi +8 -0
  32. data/sorbet/rbi/gems/i18n@1.14.5.rbi +2358 -0
  33. data/sorbet/rbi/gems/io-console@0.7.2.rbi +8 -0
  34. data/sorbet/rbi/gems/loofah@2.22.0.rbi +1080 -0
  35. data/sorbet/rbi/gems/{i18n@1.14.1.rbi → mail@2.8.1.rbi} +2 -2
  36. data/sorbet/rbi/gems/marcel@1.0.4.rbi +8 -0
  37. data/sorbet/rbi/gems/mini_mime@1.1.5.rbi +8 -0
  38. data/sorbet/rbi/gems/mutex_m@0.2.0.rbi +93 -0
  39. data/sorbet/rbi/gems/net-imap@0.4.11.rbi +8 -0
  40. data/sorbet/rbi/gems/net-pop@0.1.2.rbi +8 -0
  41. data/sorbet/rbi/gems/net-protocol@0.2.2.rbi +291 -0
  42. data/sorbet/rbi/gems/net-smtp@0.5.0.rbi +8 -0
  43. data/sorbet/rbi/gems/nio4r@2.7.3.rbi +8 -0
  44. data/sorbet/rbi/gems/nokogiri@1.16.5.rbi +7310 -0
  45. data/sorbet/rbi/gems/psych@5.1.2.rbi +1768 -0
  46. data/sorbet/rbi/gems/rack-session@2.0.0.rbi +729 -0
  47. data/sorbet/rbi/gems/rack-test@2.1.0.rbi +749 -0
  48. data/sorbet/rbi/gems/rack@3.0.11.rbi +5195 -0
  49. data/sorbet/rbi/gems/rackup@2.1.0.rbi +406 -0
  50. data/sorbet/rbi/gems/rails-dom-testing@2.2.0.rbi +691 -0
  51. data/sorbet/rbi/gems/rails-html-sanitizer@1.6.0.rbi +721 -0
  52. data/sorbet/rbi/gems/rails@7.1.3.3.rbi +8 -0
  53. data/sorbet/rbi/gems/railties@7.1.3.3.rbi +2167 -0
  54. data/sorbet/rbi/gems/rdoc@6.6.3.1.rbi +12715 -0
  55. data/sorbet/rbi/gems/reline@0.5.7.rbi +8 -0
  56. data/sorbet/rbi/gems/stringio@3.1.0.rbi +8 -0
  57. data/sorbet/rbi/gems/timeout@0.4.1.rbi +148 -0
  58. data/sorbet/rbi/gems/webrick@1.8.1.rbi +2606 -0
  59. data/sorbet/rbi/gems/websocket-driver@0.7.6.rbi +8 -0
  60. data/sorbet/rbi/gems/websocket-extensions@0.1.5.rbi +8 -0
  61. data/sorbet/rbi/gems/zeitwerk@2.6.13.rbi +1003 -0
  62. data/vigiles.gemspec +1 -1
  63. metadata +54 -7
  64. data/sorbet/rbi/gems/activesupport@7.0.5.rbi +0 -14
@@ -0,0 +1,691 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `rails-dom-testing` gem.
5
+ # Please instead update this file by running `bin/tapioca gem rails-dom-testing`.
6
+
7
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/dom_assertions.rb#3
8
+ module Rails
9
+ class << self
10
+ # source://railties/7.1.3.3/lib/rails/deprecator.rb#4
11
+ def deprecator; end
12
+ end
13
+ end
14
+
15
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/dom_assertions.rb#4
16
+ module Rails::Dom; end
17
+
18
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/dom_assertions.rb#5
19
+ module Rails::Dom::Testing
20
+ # source://rails-dom-testing//lib/rails/dom/testing.rb#12
21
+ def default_html_version; end
22
+
23
+ # source://rails-dom-testing//lib/rails/dom/testing.rb#12
24
+ def default_html_version=(val); end
25
+
26
+ class << self
27
+ # source://rails-dom-testing//lib/rails/dom/testing.rb#12
28
+ def default_html_version; end
29
+
30
+ # source://rails-dom-testing//lib/rails/dom/testing.rb#12
31
+ def default_html_version=(val); end
32
+
33
+ # @return [Boolean]
34
+ #
35
+ # source://rails-dom-testing//lib/rails/dom/testing.rb#15
36
+ def html5_support?; end
37
+
38
+ # source://rails-dom-testing//lib/rails/dom/testing.rb#19
39
+ def html_document(html_version: T.unsafe(nil)); end
40
+
41
+ # source://rails-dom-testing//lib/rails/dom/testing.rb#26
42
+ def html_document_fragment(html_version: T.unsafe(nil)); end
43
+
44
+ private
45
+
46
+ # source://rails-dom-testing//lib/rails/dom/testing.rb#34
47
+ def choose_html_parser(parser_classes, html_version: T.unsafe(nil)); end
48
+ end
49
+ end
50
+
51
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/dom_assertions.rb#6
52
+ module Rails::Dom::Testing::Assertions
53
+ include ::Rails::Dom::Testing::Assertions::DomAssertions
54
+ include ::Rails::Dom::Testing::Assertions::SelectorAssertions
55
+ end
56
+
57
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/dom_assertions.rb#7
58
+ module Rails::Dom::Testing::Assertions::DomAssertions
59
+ # \Test two HTML strings for equivalency (e.g., equal even when attributes are in another order)
60
+ #
61
+ # # assert that the referenced method generates the appropriate HTML string
62
+ # assert_dom_equal(
63
+ # '<a href="http://www.example.com">Apples</a>',
64
+ # link_to("Apples", "http://www.example.com"),
65
+ # )
66
+ #
67
+ # By default, the matcher will not pay attention to whitespace in text nodes (e.g., spaces
68
+ # and newlines). If you want stricter matching with exact matching for whitespace, pass
69
+ # <tt>strict: true</tt>:
70
+ #
71
+ # # these assertions will both pass
72
+ # assert_dom_equal "<div>\nfoo\n\</div>", "<div>foo</div>", strict: false
73
+ # assert_dom_not_equal "<div>\nfoo\n\</div>", "<div>foo</div>", strict: true
74
+ #
75
+ # The DOMs are created using an HTML parser specified by
76
+ # Rails::Dom::Testing.default_html_version (either :html4 or :html5).
77
+ #
78
+ # When testing in a Rails application, the parser default can also be set by setting
79
+ # +Rails.application.config.dom_testing_default_html_version+.
80
+ #
81
+ # If you want to specify the HTML parser just for a particular assertion, pass
82
+ # <tt>html_version: :html4</tt> or <tt>html_version: :html5</tt> keyword arguments:
83
+ #
84
+ # assert_dom_equal expected, actual, html_version: :html5
85
+ #
86
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/dom_assertions.rb#35
87
+ def assert_dom_equal(expected, actual, message = T.unsafe(nil), strict: T.unsafe(nil), html_version: T.unsafe(nil)); end
88
+
89
+ # The negated form of +assert_dom_equal+.
90
+ #
91
+ # # assert that the referenced method does not generate the specified HTML string
92
+ # assert_dom_not_equal(
93
+ # '<a href="http://www.example.com">Apples</a>',
94
+ # link_to("Oranges", "http://www.example.com"),
95
+ # )
96
+ #
97
+ # By default, the matcher will not pay attention to whitespace in text nodes (e.g., spaces
98
+ # and newlines). If you want stricter matching with exact matching for whitespace, pass
99
+ # <tt>strict: true</tt>:
100
+ #
101
+ # # these assertions will both pass
102
+ # assert_dom_equal "<div>\nfoo\n\</div>", "<div>foo</div>", strict: false
103
+ # assert_dom_not_equal "<div>\nfoo\n\</div>", "<div>foo</div>", strict: true
104
+ #
105
+ # The DOMs are created using an HTML parser specified by
106
+ # Rails::Dom::Testing.default_html_version (either :html4 or :html5).
107
+ #
108
+ # When testing in a Rails application, the parser default can also be set by setting
109
+ # +Rails.application.config.dom_testing_default_html_version+.
110
+ #
111
+ # If you want to specify the HTML parser just for a particular assertion, pass
112
+ # <tt>html_version: :html4</tt> or <tt>html_version: :html5</tt> keyword arguments:
113
+ #
114
+ # assert_dom_not_equal expected, actual, html_version: :html5
115
+ #
116
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/dom_assertions.rb#68
117
+ def assert_dom_not_equal(expected, actual, message = T.unsafe(nil), strict: T.unsafe(nil), html_version: T.unsafe(nil)); end
118
+
119
+ protected
120
+
121
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/dom_assertions.rb#75
122
+ def compare_doms(expected, actual, strict); end
123
+
124
+ # @return [Boolean]
125
+ #
126
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/dom_assertions.rb#128
127
+ def equal_attribute?(attr, other_attr); end
128
+
129
+ # @return [Boolean]
130
+ #
131
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/dom_assertions.rb#115
132
+ def equal_attribute_nodes?(nodes, other_nodes); end
133
+
134
+ # @return [Boolean]
135
+ #
136
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/dom_assertions.rb#107
137
+ def equal_child?(child, other_child, strict); end
138
+
139
+ # @return [Boolean]
140
+ #
141
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/dom_assertions.rb#95
142
+ def equal_children?(child, other_child, strict); end
143
+
144
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/dom_assertions.rb#87
145
+ def extract_children(node, strict); end
146
+
147
+ private
148
+
149
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/dom_assertions.rb#133
150
+ def fragment(text, html_version: T.unsafe(nil)); end
151
+ end
152
+
153
+ # Adds the +assert_dom+ method for use in Rails functional
154
+ # test cases, which can be used to make assertions on the response HTML of a controller
155
+ # action. You can also call +assert_dom+ within another +assert_dom+ to
156
+ # make assertions on elements selected by the enclosing assertion.
157
+ #
158
+ # Use +css_select+ to select elements without making an assertions, either
159
+ # from the response HTML or elements selected by the enclosing assertion.
160
+ #
161
+ # In addition to HTML responses, you can make the following assertions:
162
+ #
163
+ # * +assert_dom_encoded+ - Assertions on HTML encoded inside XML, for example for dealing with feed item descriptions.
164
+ # * +assert_dom_email+ - Assertions on the HTML body of an e-mail.
165
+ #
166
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions/substitution_context.rb#7
167
+ module Rails::Dom::Testing::Assertions::SelectorAssertions
168
+ # An assertion that selects elements and makes one or more equality tests.
169
+ #
170
+ # If the first argument is an element, selects all matching elements
171
+ # starting from (and including) that element and all its children in
172
+ # depth-first order.
173
+ #
174
+ # If no element is specified +assert_dom+ selects from
175
+ # the element returned in +document_root_element+
176
+ # unless +assert_dom+ is called from within an +assert_dom+ block.
177
+ # Override +document_root_element+ to tell +assert_dom+ what to select from.
178
+ # The default implementation raises an exception explaining this.
179
+ #
180
+ # When called with a block +assert_dom+ passes an array of selected elements
181
+ # to the block. Calling +assert_dom+ from the block, with no element specified,
182
+ # runs the assertion on the complete set of elements selected by the enclosing assertion.
183
+ # Alternatively the array may be iterated through so that +assert_dom+ can be called
184
+ # separately for each element.
185
+ #
186
+ #
187
+ # ==== Example
188
+ # If the response contains two ordered lists, each with four list elements then:
189
+ # assert_dom "ol" do |elements|
190
+ # elements.each do |element|
191
+ # assert_dom element, "li", 4
192
+ # end
193
+ # end
194
+ #
195
+ # will pass, as will:
196
+ # assert_dom "ol" do
197
+ # assert_dom "li", 8
198
+ # end
199
+ #
200
+ # The selector may be a CSS selector expression (String, Symbol, or Numeric) or an expression
201
+ # with substitution values (Array).
202
+ # Substitution uses a custom pseudo class match. Pass in whatever attribute you want to match (enclosed in quotes) and a ? for the substitution.
203
+ # assert_dom returns nil if called with an invalid css selector.
204
+ #
205
+ # assert_dom "div:match('id', ?)", "id_string"
206
+ # assert_dom "div:match('id', ?)", :id_string
207
+ # assert_dom "div:match('id', ?)", 1
208
+ # assert_dom "div:match('id', ?)", /\d+/
209
+ #
210
+ # === Equality Tests
211
+ #
212
+ # The equality test may be one of the following:
213
+ # * <tt>true</tt> - Assertion is true if at least one element selected.
214
+ # * <tt>false</tt> - Assertion is true if no element selected.
215
+ # * <tt>String/Regexp</tt> - Assertion is true if the text value of at least
216
+ # one element matches the string or regular expression.
217
+ # * <tt>Integer</tt> - Assertion is true if exactly that number of
218
+ # elements are selected.
219
+ # * <tt>Range</tt> - Assertion is true if the number of selected
220
+ # elements fit the range.
221
+ # If no equality test specified, the assertion is true if at least one
222
+ # element selected.
223
+ #
224
+ # To perform more than one equality tests, use a hash with the following keys:
225
+ # * <tt>:text</tt> - Narrow the selection to elements that have this text
226
+ # value (string or regexp).
227
+ # * <tt>:html</tt> - Narrow the selection to elements that have this HTML
228
+ # content (string or regexp).
229
+ # * <tt>:count</tt> - Assertion is true if the number of selected elements
230
+ # is equal to this value.
231
+ # * <tt>:minimum</tt> - Assertion is true if the number of selected
232
+ # elements is at least this value.
233
+ # * <tt>:maximum</tt> - Assertion is true if the number of selected
234
+ # elements is at most this value.
235
+ #
236
+ # If the method is called with a block, once all equality tests are
237
+ # evaluated the block is called with an array of all matched elements.
238
+ #
239
+ # # At least one form element
240
+ # assert_dom "form"
241
+ #
242
+ # # Form element includes four input fields
243
+ # assert_dom "form input", 4
244
+ #
245
+ # # Page title is "Welcome"
246
+ # assert_dom "title", "Welcome"
247
+ #
248
+ # # Page title is "Welcome" and there is only one title element
249
+ # assert_dom "title", {count: 1, text: "Welcome"},
250
+ # "Wrong title or more than one title element"
251
+ #
252
+ # # Page contains no forms
253
+ # assert_dom "form", false, "This page must contain no forms"
254
+ #
255
+ # # Test the content and style
256
+ # assert_dom "body div.header ul.menu"
257
+ #
258
+ # # Use substitution values
259
+ # assert_dom "ol>li:match('id', ?)", /item-\d+/
260
+ #
261
+ # # All input fields in the form have a name
262
+ # assert_dom "form input" do
263
+ # assert_dom ":match('name', ?)", /.+/ # Not empty
264
+ # end
265
+ #
266
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions.rb#163
267
+ def assert_dom(*args, &block); end
268
+
269
+ # Extracts the body of an email and runs nested assertions on it.
270
+ #
271
+ # You must enable deliveries for this assertion to work, use:
272
+ # ActionMailer::Base.perform_deliveries = true
273
+ #
274
+ # Example usage:
275
+ #
276
+ # assert_dom_email do
277
+ # assert_dom "h1", "Email alert"
278
+ # end
279
+ #
280
+ # assert_dom_email do
281
+ # items = assert_dom "ol>li"
282
+ # items.each do
283
+ # # Work with items here...
284
+ # end
285
+ # end
286
+ #
287
+ # The DOM is created using an HTML parser specified by
288
+ # Rails::Dom::Testing.default_html_version (either :html4 or :html5).
289
+ #
290
+ # When testing in a Rails application, the parser default can also be set by setting
291
+ # +Rails.application.config.dom_testing_default_html_version+.
292
+ #
293
+ # If you want to specify the HTML parser just for a particular assertion, pass
294
+ # <tt>html_version: :html4</tt> or <tt>html_version: :html5</tt> keyword arguments:
295
+ #
296
+ # assert_dom_email(html_version: :html5) do
297
+ # assert_dom "h1", "Email alert"
298
+ # end
299
+ #
300
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions.rb#285
301
+ def assert_dom_email(html_version: T.unsafe(nil), &block); end
302
+
303
+ # Extracts the content of an element, treats it as encoded HTML and runs
304
+ # nested assertion on it.
305
+ #
306
+ # You typically call this method within another assertion to operate on
307
+ # all currently selected elements. You can also pass an element or array
308
+ # of elements.
309
+ #
310
+ # The content of each element is un-encoded, and wrapped in the root
311
+ # element +encoded+. It then calls the block with all un-encoded elements.
312
+ #
313
+ # # Selects all bold tags from within the title of an Atom feed's entries (perhaps to nab a section name prefix)
314
+ # assert_dom "feed[xmlns='http://www.w3.org/2005/Atom']" do
315
+ # # Select each entry item and then the title item
316
+ # assert_dom "entry>title" do
317
+ # # Run assertions on the encoded title elements
318
+ # assert_dom_encoded do
319
+ # assert_dom "b"
320
+ # end
321
+ # end
322
+ # end
323
+ #
324
+ #
325
+ # # Selects all paragraph tags from within the description of an RSS feed
326
+ # assert_dom "rss[version=2.0]" do
327
+ # # Select description element of each feed item.
328
+ # assert_dom "channel>item>description" do
329
+ # # Run assertions on the encoded elements.
330
+ # assert_dom_encoded do
331
+ # assert_dom "p"
332
+ # end
333
+ # end
334
+ # end
335
+ #
336
+ # The DOM is created using an HTML parser specified by
337
+ # Rails::Dom::Testing.default_html_version (either :html4 or :html5).
338
+ #
339
+ # When testing in a Rails application, the parser default can also be set by setting
340
+ # +Rails.application.config.dom_testing_default_html_version+.
341
+ #
342
+ # If you want to specify the HTML parser just for a particular assertion, pass
343
+ # <tt>html_version: :html4</tt> or <tt>html_version: :html5</tt> keyword arguments:
344
+ #
345
+ # assert_dom "feed[xmlns='http://www.w3.org/2005/Atom']" do
346
+ # assert_dom "entry>title" do
347
+ # assert_dom_encoded(html_version: :html5) do
348
+ # assert_dom "b"
349
+ # end
350
+ # end
351
+ # end
352
+ #
353
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions.rb#232
354
+ def assert_dom_encoded(element = T.unsafe(nil), html_version: T.unsafe(nil), &block); end
355
+
356
+ # An assertion that selects elements and makes one or more equality tests.
357
+ #
358
+ # If the first argument is an element, selects all matching elements
359
+ # starting from (and including) that element and all its children in
360
+ # depth-first order.
361
+ #
362
+ # If no element is specified +assert_dom+ selects from
363
+ # the element returned in +document_root_element+
364
+ # unless +assert_dom+ is called from within an +assert_dom+ block.
365
+ # Override +document_root_element+ to tell +assert_dom+ what to select from.
366
+ # The default implementation raises an exception explaining this.
367
+ #
368
+ # When called with a block +assert_dom+ passes an array of selected elements
369
+ # to the block. Calling +assert_dom+ from the block, with no element specified,
370
+ # runs the assertion on the complete set of elements selected by the enclosing assertion.
371
+ # Alternatively the array may be iterated through so that +assert_dom+ can be called
372
+ # separately for each element.
373
+ #
374
+ #
375
+ # ==== Example
376
+ # If the response contains two ordered lists, each with four list elements then:
377
+ # assert_dom "ol" do |elements|
378
+ # elements.each do |element|
379
+ # assert_dom element, "li", 4
380
+ # end
381
+ # end
382
+ #
383
+ # will pass, as will:
384
+ # assert_dom "ol" do
385
+ # assert_dom "li", 8
386
+ # end
387
+ #
388
+ # The selector may be a CSS selector expression (String, Symbol, or Numeric) or an expression
389
+ # with substitution values (Array).
390
+ # Substitution uses a custom pseudo class match. Pass in whatever attribute you want to match (enclosed in quotes) and a ? for the substitution.
391
+ # assert_dom returns nil if called with an invalid css selector.
392
+ #
393
+ # assert_dom "div:match('id', ?)", "id_string"
394
+ # assert_dom "div:match('id', ?)", :id_string
395
+ # assert_dom "div:match('id', ?)", 1
396
+ # assert_dom "div:match('id', ?)", /\d+/
397
+ #
398
+ # === Equality Tests
399
+ #
400
+ # The equality test may be one of the following:
401
+ # * <tt>true</tt> - Assertion is true if at least one element selected.
402
+ # * <tt>false</tt> - Assertion is true if no element selected.
403
+ # * <tt>String/Regexp</tt> - Assertion is true if the text value of at least
404
+ # one element matches the string or regular expression.
405
+ # * <tt>Integer</tt> - Assertion is true if exactly that number of
406
+ # elements are selected.
407
+ # * <tt>Range</tt> - Assertion is true if the number of selected
408
+ # elements fit the range.
409
+ # If no equality test specified, the assertion is true if at least one
410
+ # element selected.
411
+ #
412
+ # To perform more than one equality tests, use a hash with the following keys:
413
+ # * <tt>:text</tt> - Narrow the selection to elements that have this text
414
+ # value (string or regexp).
415
+ # * <tt>:html</tt> - Narrow the selection to elements that have this HTML
416
+ # content (string or regexp).
417
+ # * <tt>:count</tt> - Assertion is true if the number of selected elements
418
+ # is equal to this value.
419
+ # * <tt>:minimum</tt> - Assertion is true if the number of selected
420
+ # elements is at least this value.
421
+ # * <tt>:maximum</tt> - Assertion is true if the number of selected
422
+ # elements is at most this value.
423
+ #
424
+ # If the method is called with a block, once all equality tests are
425
+ # evaluated the block is called with an array of all matched elements.
426
+ #
427
+ # # At least one form element
428
+ # assert_dom "form"
429
+ #
430
+ # # Form element includes four input fields
431
+ # assert_dom "form input", 4
432
+ #
433
+ # # Page title is "Welcome"
434
+ # assert_dom "title", "Welcome"
435
+ #
436
+ # # Page title is "Welcome" and there is only one title element
437
+ # assert_dom "title", {count: 1, text: "Welcome"},
438
+ # "Wrong title or more than one title element"
439
+ #
440
+ # # Page contains no forms
441
+ # assert_dom "form", false, "This page must contain no forms"
442
+ #
443
+ # # Test the content and style
444
+ # assert_dom "body div.header ul.menu"
445
+ #
446
+ # # Use substitution values
447
+ # assert_dom "ol>li:match('id', ?)", /item-\d+/
448
+ #
449
+ # # All input fields in the form have a name
450
+ # assert_dom "form input" do
451
+ # assert_dom ":match('name', ?)", /.+/ # Not empty
452
+ # end
453
+ #
454
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions.rb#163
455
+ def assert_select(*args, &block); end
456
+
457
+ # Extracts the body of an email and runs nested assertions on it.
458
+ #
459
+ # You must enable deliveries for this assertion to work, use:
460
+ # ActionMailer::Base.perform_deliveries = true
461
+ #
462
+ # Example usage:
463
+ #
464
+ # assert_dom_email do
465
+ # assert_dom "h1", "Email alert"
466
+ # end
467
+ #
468
+ # assert_dom_email do
469
+ # items = assert_dom "ol>li"
470
+ # items.each do
471
+ # # Work with items here...
472
+ # end
473
+ # end
474
+ #
475
+ # The DOM is created using an HTML parser specified by
476
+ # Rails::Dom::Testing.default_html_version (either :html4 or :html5).
477
+ #
478
+ # When testing in a Rails application, the parser default can also be set by setting
479
+ # +Rails.application.config.dom_testing_default_html_version+.
480
+ #
481
+ # If you want to specify the HTML parser just for a particular assertion, pass
482
+ # <tt>html_version: :html4</tt> or <tt>html_version: :html5</tt> keyword arguments:
483
+ #
484
+ # assert_dom_email(html_version: :html5) do
485
+ # assert_dom "h1", "Email alert"
486
+ # end
487
+ #
488
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions.rb#285
489
+ def assert_select_email(html_version: T.unsafe(nil), &block); end
490
+
491
+ # Extracts the content of an element, treats it as encoded HTML and runs
492
+ # nested assertion on it.
493
+ #
494
+ # You typically call this method within another assertion to operate on
495
+ # all currently selected elements. You can also pass an element or array
496
+ # of elements.
497
+ #
498
+ # The content of each element is un-encoded, and wrapped in the root
499
+ # element +encoded+. It then calls the block with all un-encoded elements.
500
+ #
501
+ # # Selects all bold tags from within the title of an Atom feed's entries (perhaps to nab a section name prefix)
502
+ # assert_dom "feed[xmlns='http://www.w3.org/2005/Atom']" do
503
+ # # Select each entry item and then the title item
504
+ # assert_dom "entry>title" do
505
+ # # Run assertions on the encoded title elements
506
+ # assert_dom_encoded do
507
+ # assert_dom "b"
508
+ # end
509
+ # end
510
+ # end
511
+ #
512
+ #
513
+ # # Selects all paragraph tags from within the description of an RSS feed
514
+ # assert_dom "rss[version=2.0]" do
515
+ # # Select description element of each feed item.
516
+ # assert_dom "channel>item>description" do
517
+ # # Run assertions on the encoded elements.
518
+ # assert_dom_encoded do
519
+ # assert_dom "p"
520
+ # end
521
+ # end
522
+ # end
523
+ #
524
+ # The DOM is created using an HTML parser specified by
525
+ # Rails::Dom::Testing.default_html_version (either :html4 or :html5).
526
+ #
527
+ # When testing in a Rails application, the parser default can also be set by setting
528
+ # +Rails.application.config.dom_testing_default_html_version+.
529
+ #
530
+ # If you want to specify the HTML parser just for a particular assertion, pass
531
+ # <tt>html_version: :html4</tt> or <tt>html_version: :html5</tt> keyword arguments:
532
+ #
533
+ # assert_dom "feed[xmlns='http://www.w3.org/2005/Atom']" do
534
+ # assert_dom "entry>title" do
535
+ # assert_dom_encoded(html_version: :html5) do
536
+ # assert_dom "b"
537
+ # end
538
+ # end
539
+ # end
540
+ #
541
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions.rb#232
542
+ def assert_select_encoded(element = T.unsafe(nil), html_version: T.unsafe(nil), &block); end
543
+
544
+ # Select and return all matching elements.
545
+ #
546
+ # If called with a single argument, uses that argument as a selector.
547
+ # Called without an element +css_select+ selects from
548
+ # the element returned in +document_root_element+
549
+ #
550
+ # The default implementation of +document_root_element+ raises an exception explaining this.
551
+ #
552
+ # Returns an empty Nokogiri::XML::NodeSet if no match is found.
553
+ #
554
+ # If called with two arguments, uses the first argument as the root
555
+ # element and the second argument as the selector. Attempts to match the
556
+ # root element and any of its children.
557
+ # Returns an empty Nokogiri::XML::NodeSet if no match is found.
558
+ #
559
+ # The selector may be a CSS selector expression (String).
560
+ # css_select returns nil if called with an invalid css selector.
561
+ #
562
+ # # Selects all div tags
563
+ # divs = css_select("div")
564
+ #
565
+ # # Selects all paragraph tags and does something interesting
566
+ # pars = css_select("p")
567
+ # pars.each do |par|
568
+ # # Do something fun with paragraphs here...
569
+ # end
570
+ #
571
+ # # Selects all list items in unordered lists
572
+ # items = css_select("ul>li")
573
+ #
574
+ # # Selects all form tags and then all inputs inside the form
575
+ # forms = css_select("form")
576
+ # forms.each do |form|
577
+ # inputs = css_select(form, "input")
578
+ # ...
579
+ # end
580
+ #
581
+ # @raise [ArgumentError]
582
+ #
583
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions.rb#58
584
+ def css_select(*args); end
585
+
586
+ private
587
+
588
+ # +equals+ must contain :minimum, :maximum and :count keys
589
+ #
590
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions.rb#307
591
+ def assert_size_match!(size, equals, css_selector, message = T.unsafe(nil)); end
592
+
593
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions.rb#319
594
+ def count_description(min, max, count); end
595
+
596
+ # @raise [NotImplementedError]
597
+ #
598
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions.rb#301
599
+ def document_root_element; end
600
+
601
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions.rb#335
602
+ def nest_selection(selection); end
603
+
604
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions.rb#344
605
+ def nodeset(node); end
606
+
607
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions.rb#331
608
+ def pluralize_element(quantity); end
609
+ end
610
+
611
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions/html_selector.rb#12
612
+ class Rails::Dom::Testing::Assertions::SelectorAssertions::HTMLSelector
613
+ include ::Minitest::Assertions
614
+
615
+ # @return [HTMLSelector] a new instance of HTMLSelector
616
+ #
617
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions/html_selector.rb#17
618
+ def initialize(values, previous_selection = T.unsafe(nil), &root_fallback); end
619
+
620
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions/html_selector.rb#46
621
+ def context; end
622
+
623
+ # Returns the value of attribute css_selector.
624
+ #
625
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions/html_selector.rb#13
626
+ def css_selector; end
627
+
628
+ # Returns the value of attribute message.
629
+ #
630
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions/html_selector.rb#13
631
+ def message; end
632
+
633
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions/html_selector.rb#39
634
+ def select; end
635
+
636
+ # @return [Boolean]
637
+ #
638
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions/html_selector.rb#33
639
+ def selecting_no_body?; end
640
+
641
+ # Returns the value of attribute tests.
642
+ #
643
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions/html_selector.rb#13
644
+ def tests; end
645
+
646
+ private
647
+
648
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions/html_selector.rb#100
649
+ def extract_equality_tests; end
650
+
651
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions/html_selector.rb#72
652
+ def extract_root(previous_selection, root_fallback); end
653
+
654
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions/html_selector.rb#89
655
+ def extract_selectors; end
656
+
657
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions/html_selector.rb#48
658
+ def filter(matches); end
659
+
660
+ class << self
661
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions/html_selector.rb#46
662
+ def context; end
663
+ end
664
+ end
665
+
666
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions/html_selector.rb#44
667
+ Rails::Dom::Testing::Assertions::SelectorAssertions::HTMLSelector::NO_STRIP = T.let(T.unsafe(nil), Array)
668
+
669
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions/substitution_context.rb#8
670
+ class Rails::Dom::Testing::Assertions::SelectorAssertions::SubstitutionContext
671
+ # @return [SubstitutionContext] a new instance of SubstitutionContext
672
+ #
673
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions/substitution_context.rb#9
674
+ def initialize; end
675
+
676
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions/substitution_context.rb#20
677
+ def match(matches, attribute, matcher); end
678
+
679
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions/substitution_context.rb#13
680
+ def substitute!(selector, values, format_for_presentation = T.unsafe(nil)); end
681
+
682
+ private
683
+
684
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions/substitution_context.rb#25
685
+ def matcher_for(value, format_for_presentation); end
686
+
687
+ # @return [Boolean]
688
+ #
689
+ # source://rails-dom-testing//lib/rails/dom/testing/assertions/selector_assertions/substitution_context.rb#36
690
+ def substitutable?(value); end
691
+ end