terminus 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. data/bin/terminus +5 -5
  2. data/lib/capybara/driver/terminus.rb +24 -13
  3. data/lib/terminus.rb +21 -15
  4. data/lib/terminus/application.rb +6 -6
  5. data/lib/terminus/browser.rb +77 -60
  6. data/lib/terminus/client.rb +33 -16
  7. data/lib/terminus/client/browser.rb +10 -9
  8. data/lib/terminus/client/phantom.js +25 -3
  9. data/lib/terminus/client/phantomjs.rb +44 -7
  10. data/lib/terminus/connector.rb +2 -2
  11. data/lib/terminus/connector/server.rb +15 -15
  12. data/lib/terminus/connector/socket_handler.rb +11 -11
  13. data/lib/terminus/controller.rb +62 -26
  14. data/lib/terminus/headers.rb +25 -0
  15. data/lib/terminus/host.rb +6 -6
  16. data/lib/terminus/node.rb +36 -22
  17. data/lib/terminus/proxy.rb +81 -45
  18. data/lib/terminus/proxy/driver_body.rb +14 -15
  19. data/lib/terminus/proxy/external.rb +12 -6
  20. data/lib/terminus/proxy/rewrite.rb +7 -6
  21. data/lib/terminus/public/compiled/terminus-min.js +3 -3
  22. data/lib/terminus/public/compiled/terminus.js +225 -180
  23. data/lib/terminus/public/pathology.js +87 -87
  24. data/lib/terminus/public/terminus.js +138 -93
  25. data/lib/terminus/server.rb +7 -7
  26. data/lib/terminus/timeouts.rb +8 -8
  27. data/lib/terminus/views/bootstrap.erb +7 -7
  28. data/lib/terminus/views/index.erb +4 -4
  29. data/lib/terminus/views/infinite.html +4 -4
  30. data/spec/1.1/reports/android.txt +874 -0
  31. data/spec/{reports → 1.1/reports}/chrome.txt +72 -69
  32. data/spec/{reports → 1.1/reports}/firefox.txt +72 -69
  33. data/spec/{reports → 1.1/reports}/opera.txt +72 -69
  34. data/spec/{reports → 1.1/reports}/phantomjs.txt +72 -69
  35. data/spec/{reports → 1.1/reports}/safari.txt +72 -69
  36. data/spec/{spec_helper.rb → 1.1/spec_helper.rb} +5 -2
  37. data/spec/{terminus_driver_spec.rb → 1.1/terminus_driver_spec.rb} +2 -2
  38. data/spec/{terminus_session_spec.rb → 1.1/terminus_session_spec.rb} +2 -2
  39. data/spec/2.0/reports/android.txt +815 -0
  40. data/spec/2.0/reports/chrome.txt +806 -0
  41. data/spec/2.0/reports/firefox.txt +812 -0
  42. data/spec/2.0/reports/opera.txt +806 -0
  43. data/spec/2.0/reports/phantomjs.txt +803 -0
  44. data/spec/2.0/reports/safari.txt +806 -0
  45. data/spec/2.0/spec_helper.rb +21 -0
  46. data/spec/2.0/terminus_spec.rb +25 -0
  47. metadata +41 -32
  48. data/spec/reports/android.txt +0 -875
@@ -0,0 +1,806 @@
1
+ Run options: exclude {:requires=>#<Proc:./vendor/capybara/2.0/lib/capybara/spec/spec_helper.rb:12>}
2
+
3
+ Capybara::Session terminus
4
+ #all
5
+ should find all elements using the given locator
6
+ should return an empty array when nothing was found
7
+ should accept an XPath instance
8
+ should raise an error when given invalid options
9
+ with css selectors
10
+ should find all elements using the given selector
11
+ should find all elements when given a list of selectors
12
+ with xpath selectors
13
+ should find the first element using the given locator
14
+ with css as default selector
15
+ should find the first element using the given locator
16
+ with visible filter
17
+ should only find visible nodes
18
+ should only find invisible nodes
19
+ within a scope
20
+ should find any element using the given locator
21
+ #assert_selector
22
+ should be true if the given selector is on the page
23
+ should be false if the given selector is not on the page
24
+ should use default selector
25
+ should respect scopes
26
+ with count
27
+ should be true if the content is on the page the given number of times
28
+ should be false if the content is on the page the given number of times
29
+ should be false if the content isn't on the page at all
30
+ with text
31
+ should discard all matches where the given string is not contained
32
+ should discard all matches where the given regexp is not matched
33
+ #assert_no_selector
34
+ should be false if the given selector is on the page
35
+ should be true if the given selector is not on the page
36
+ should use default selector
37
+ should respect scopes
38
+ with count
39
+ should be false if the content is on the page the given number of times
40
+ should be true if the content is on the page the wrong number of times
41
+ should be true if the content isn't on the page at all
42
+ with text
43
+ should discard all matches where the given string is contained
44
+ should discard all matches where the given regexp is matched
45
+ #attach_file
46
+ with normal form
47
+ should set a file path by id (FAILED - 1)
48
+ should set a file path by label (FAILED - 2)
49
+ casts to string (FAILED - 3)
50
+ with multipart form
51
+ should set a file path by id (FAILED - 4)
52
+ should set a file path by label (FAILED - 5)
53
+ should not break if no file is submitted
54
+ should send content type text/plain when uploading a text file (FAILED - 6)
55
+ should send content type image/jpeg when uploading an image (FAILED - 7)
56
+ should not break when using HTML5 multiple file input (FAILED - 8)
57
+ should not break when using HTML5 multiple file input uploading multiple files (FAILED - 9)
58
+ with a locator that doesn't exist
59
+ should raise an error
60
+ with a path that doesn't exist
61
+ should raise an error
62
+ #body
63
+ should return the unmodified page body
64
+ encoding of response between ascii and utf8
65
+ should be valid with html entities
66
+ should be valid without html entities
67
+ #check
68
+ should trigger associated events
69
+ should check a checkbox by id
70
+ should check a checkbox by label
71
+ casts to string
72
+ 'checked' attribute
73
+ should be true if checked
74
+ should be false if unchecked
75
+ checking
76
+ should not change an already checked checkbox
77
+ should check an unchecked checkbox
78
+ unchecking
79
+ should not change an already unchecked checkbox
80
+ should uncheck a checked checkbox
81
+ with a locator that doesn't exist
82
+ should raise an error
83
+ with a disabled checkbox
84
+ should raise an error
85
+ #choose
86
+ should choose a radio button by id
87
+ should choose a radio button by label
88
+ casts to string
89
+ with a locator that doesn't exist
90
+ should raise an error
91
+ with a disabled radio button
92
+ should raise an error
93
+ #click_button
94
+ should wait for asynchronous load
95
+ casts to string
96
+ should serialize and send valueless buttons that were clicked
97
+ should not send image buttons that were not clicked
98
+ should serialize and send GET forms
99
+ should follow redirects
100
+ should post pack to the same URL when no action given
101
+ should post pack to the same URL when blank action given
102
+ ignores disabled buttons
103
+ should encode complex field names, like array[][value]
104
+ with multiple values with the same name
105
+ should use the latest given value
106
+ with a form that has a relative url as an action
107
+ should post to the correct url
108
+ with a form that has no action specified
109
+ should post to the correct url
110
+ with value given on a submit button
111
+ on a form with HTML5 fields
112
+ should serialise and submit search fields
113
+ should serialise and submit email fields
114
+ should serialise and submit url fields
115
+ should serialise and submit tel fields
116
+ should serialise and submit color fields
117
+ on an HTML4 form
118
+ should serialize and submit text fields
119
+ should escape fields when submitting
120
+ should serialize and submit password fields
121
+ should serialize and submit hidden fields
122
+ should not serialize fields from other forms
123
+ should submit the button that was clicked, but not other buttons
124
+ should serialize radio buttons
125
+ should serialize check boxes
126
+ should serialize text areas
127
+ should serialize select tag with values
128
+ should serialize select tag without values
129
+ should serialize first option for select tag with no selection
130
+ should not serialize a select tag without options
131
+ should not submit disabled fields
132
+ with id given on a submit button
133
+ should submit the associated form
134
+ should work with partial matches
135
+ with title given on a submit button
136
+ should submit the associated form
137
+ should work with partial matches
138
+ with alt given on an image button
139
+ should submit the associated form
140
+ should work with partial matches
141
+ with value given on an image button
142
+ should submit the associated form
143
+ should work with partial matches
144
+ with id given on an image button
145
+ should submit the associated form
146
+ with title given on an image button
147
+ should submit the associated form
148
+ should work with partial matches
149
+ with text given on a button defined by <button> tag
150
+ should submit the associated form
151
+ should work with partial matches
152
+ with id given on a button defined by <button> tag
153
+ should submit the associated form
154
+ should serialize and send GET forms
155
+ with value given on a button defined by <button> tag
156
+ should submit the associated form
157
+ should work with partial matches
158
+ with title given on a button defined by <button> tag
159
+ should submit the associated form
160
+ should work with partial matches
161
+ with a locator that doesn't exist
162
+ should raise an error
163
+ #click_link_or_button
164
+ should click on a link
165
+ should click on a button
166
+ should click on a button with no type attribute
167
+ should be aliased as click_on
168
+ should wait for asynchronous load
169
+ casts to string
170
+ with a locator that doesn't exist
171
+ should raise an error
172
+ #click_link
173
+ should wait for asynchronous load
174
+ casts to string
175
+ should follow relative links
176
+ should follow protocol relative links
177
+ should follow redirects
178
+ should follow redirects
179
+ should add query string to current URL with naked query string
180
+ should do nothing on anchor links
181
+ should do nothing on URL+anchor links for the same page
182
+ should follow link on URL+anchor links for a different page
183
+ raise an error with links with no href
184
+ with id given
185
+ should take user to the linked page
186
+ with text given
187
+ should take user to the linked page
188
+ should accept partial matches
189
+ with title given
190
+ should take user to the linked page
191
+ should accept partial matches
192
+ with alternative text given to a contained image
193
+ should take user to the linked page
194
+ should accept partial matches
195
+ with a locator that doesn't exist
196
+ should raise an error
197
+ #current_url, #current_path, #current_host
198
+ is affected by visiting a page directly
199
+ returns to the app host when visiting a relative url
200
+ is affected by setting Capybara.app_host
201
+ is unaffected by following a relative link
202
+ is affected by following an absolute link
203
+ is unaffected by posting through a relative form
204
+ is affected by posting through an absolute form
205
+ is affected by following a redirect
206
+ is affected by pushState
207
+ is affected by replaceState
208
+ #evaluate_script
209
+ should evaluate the given script and return whatever it produces
210
+ #execute_script
211
+ should execute the given script and return nothing
212
+ #fill_in
213
+ should fill in a text field by id
214
+ should fill in a text field by name
215
+ should fill in a text field by label without for
216
+ should fill in a url field by label without for
217
+ should fill in a textarea by id
218
+ should fill in a textarea by label
219
+ should fill in a textarea by name
220
+ should fill in a password field by id
221
+ should fill in a field with a custom type
222
+ should fill in a field without a type
223
+ should fill in a text field respecting its maxlength attribute
224
+ should fill in a password field by name
225
+ should fill in a password field by label
226
+ should fill in a password field by name
227
+ should throw an exception if a hash containing 'with' is not provided
228
+ should wait for asynchronous load
229
+ casts to string
230
+ on a pre-populated textfield with a reformatting onchange
231
+ should only trigger onchange once
232
+ with ignore_hidden_fields
233
+ should not find a hidden field
234
+ with a locator that doesn't exist
235
+ should raise an error
236
+ on a disabled field
237
+ should raise an error
238
+ #find_button
239
+ should find any button
240
+ casts to string
241
+ should raise error if the button doesn't exist
242
+ #find_by_id
243
+ should find any element by id
244
+ casts to string
245
+ should raise error if no element with id is found
246
+ #find_field
247
+ should find any field
248
+ casts to string
249
+ should raise error if the field doesn't exist
250
+ should be aliased as 'field_labeled' for webrat compatibility
251
+ #find_link
252
+ should find any field
253
+ casts to string
254
+ should raise error if the field doesn't exist
255
+ #find
256
+ should find the first element using the given locator
257
+ should find the first element using the given locator and options
258
+ should raise an error if there are multiple matches
259
+ should wait for asynchronous load
260
+ should raise ElementNotFound with a useful default message if nothing was found
261
+ should accept an XPath instance
262
+ with frozen time
263
+ raises an error suggesting that Capybara is stuck in time
264
+ with css selectors
265
+ should find the first element using the given locator
266
+ with xpath selectors
267
+ should find the first element using the given locator
268
+ with custom selector
269
+ should use the custom selector
270
+ with custom selector with :for option
271
+ should use the selector when it matches the :for option
272
+ with custom selector with custom filter
273
+ should find elements that match the filter
274
+ should not find elements that don't match the filter
275
+ with css as default selector
276
+ should find the first element using the given locator
277
+ within a scope
278
+ should find the an element using the given locator
279
+ #first
280
+ should find the first element using the given locator
281
+ should return nil when nothing was found
282
+ should accept an XPath instance
283
+ with css selectors
284
+ should find the first element using the given selector
285
+ with xpath selectors
286
+ should find the first element using the given locator
287
+ with css as default selector
288
+ should find the first element using the given locator
289
+ with visible filter
290
+ should only find visible nodes if true given
291
+ should include invisible nodes if false given
292
+ within a scope
293
+ should find the first element using the given locator
294
+ #has_button?
295
+ should be true if the given button is on the page
296
+ should be false if the given button is not on the page
297
+ #has_no_button?
298
+ should be true if the given button is on the page
299
+ should be false if the given button is not on the page
300
+ #has_css?
301
+ should be true if the given selector is on the page
302
+ should be false if the given selector is not on the page
303
+ should respect scopes
304
+ should wait for content to appear
305
+ with between
306
+ should be true if the content occurs within the range given
307
+ should be false if the content occurs more or fewer times than range
308
+ with count
309
+ should be true if the content occurs the given number of times
310
+ should be false if the content occurs a different number of times than the given
311
+ should coerce count to an integer
312
+ with maximum
313
+ should be true when content occurs same or fewer times than given
314
+ should be false when content occurs more times than given
315
+ should coerce maximum to an integer
316
+ with minimum
317
+ should be true when content occurs same or more times than given
318
+ should be false when content occurs fewer times than given
319
+ should coerce minimum to an integer
320
+ with text
321
+ should discard all matches where the given string is not contained
322
+ should discard all matches where the given regexp is not matched
323
+ #has_no_css?
324
+ should be false if the given selector is on the page
325
+ should be true if the given selector is not on the page
326
+ should respect scopes
327
+ should wait for content to disappear
328
+ with between
329
+ should be false if the content occurs within the range given
330
+ should be true if the content occurs more or fewer times than range
331
+ with count
332
+ should be false if the content is on the page the given number of times
333
+ should be true if the content is on the page the given number of times
334
+ should coerce count to an integer
335
+ with maximum
336
+ should be false when content occurs same or fewer times than given
337
+ should be true when content occurs more times than given
338
+ should coerce maximum to an integer
339
+ with minimum
340
+ should be false when content occurs same or more times than given
341
+ should be true when content occurs fewer times than given
342
+ should coerce minimum to an integer
343
+ with text
344
+ should discard all matches where the given string is not contained
345
+ should discard all matches where the given regexp is not matched
346
+ #has_field
347
+ should be true if the field is on the page
348
+ should be false if the field is not on the page
349
+ with value
350
+ should be true if a field with the given value is on the page
351
+ should be false if the given field is not on the page
352
+ should be true after the field has been filled in with the given value
353
+ should be false after the field has been filled in with a different value
354
+ with type
355
+ should be true if a field with the given type is on the page
356
+ should be false if the given field is not on the page
357
+ #has_no_field
358
+ should be false if the field is on the page
359
+ should be true if the field is not on the page
360
+ with value
361
+ should be false if a field with the given value is on the page
362
+ should be true if the given field is not on the page
363
+ should be false after the field has been filled in with the given value
364
+ should be true after the field has been filled in with a different value
365
+ with type
366
+ should be false if a field with the given type is on the page
367
+ should be true if the given field is not on the page
368
+ #has_checked_field?
369
+ should be true if a checked field is on the page
370
+ should be false if an unchecked field is on the page
371
+ should be false if no field is on the page
372
+ should be true after an unchecked checkbox is checked
373
+ should be false after a checked checkbox is unchecked
374
+ should be true after an unchecked radio button is chosen
375
+ should be false after another radio button in the group is chosen
376
+ #has_no_checked_field?
377
+ should be false if a checked field is on the page
378
+ should be true if an unchecked field is on the page
379
+ should be true if no field is on the page
380
+ #has_unchecked_field?
381
+ should be false if a checked field is on the page
382
+ should be true if an unchecked field is on the page
383
+ should be false if no field is on the page
384
+ should be false after an unchecked checkbox is checked
385
+ should be true after a checked checkbox is unchecked
386
+ should be false after an unchecked radio button is chosen
387
+ should be true after another radio button in the group is chosen
388
+ #has_no_unchecked_field?
389
+ should be true if a checked field is on the page
390
+ should be false if an unchecked field is on the page
391
+ should be true if no field is on the page
392
+ #has_link?
393
+ should be true if the given link is on the page
394
+ should be false if the given link is not on the page
395
+ #has_no_link?
396
+ should be false if the given link is on the page
397
+ should be true if the given link is not on the page
398
+ #has_select?
399
+ should be true if the field is on the page
400
+ should be false if the field is not on the page
401
+ with selected value
402
+ should be true if a field with the given value is on the page
403
+ should be false if the given field is not on the page
404
+ should be true after the given value is selected
405
+ should be false after a different value is selected
406
+ should be true after the given values are selected
407
+ should be false after one of the values is unselected
408
+ with exact options
409
+ should be true if a field with the given options is on the page
410
+ should be false if the given field is not on the page
411
+ with partial options
412
+ should be true if a field with the given partial options is on the page
413
+ should be false if a field with the given partial options is not on the page
414
+ #has_no_select?
415
+ should be false if the field is on the page
416
+ should be true if the field is not on the page
417
+ with selected value
418
+ should be false if a field with the given value is on the page
419
+ should be true if the given field is not on the page
420
+ should be false after the given value is selected
421
+ should be true after a different value is selected
422
+ should be false after the given values are selected
423
+ should be true after one of the values is unselected
424
+ with exact options
425
+ should be false if a field with the given options is on the page
426
+ should be true if the given field is not on the page
427
+ with partial options
428
+ should be false if a field with the given partial options is on the page
429
+ should be true if a field with the given partial options is not on the page
430
+ #has_selector?
431
+ should be true if the given selector is on the page
432
+ should be false if the given selector is not on the page
433
+ should use default selector
434
+ should respect scopes
435
+ with count
436
+ should be true if the content is on the page the given number of times
437
+ should be false if the content is on the page the given number of times
438
+ should be false if the content isn't on the page at all
439
+ with text
440
+ should discard all matches where the given string is not contained
441
+ should discard all matches where the given regexp is not matched
442
+ #has_no_selector?
443
+ should be false if the given selector is on the page
444
+ should be true if the given selector is not on the page
445
+ should use default selector
446
+ should respect scopes
447
+ with count
448
+ should be false if the content is on the page the given number of times
449
+ should be true if the content is on the page the wrong number of times
450
+ should be true if the content isn't on the page at all
451
+ with text
452
+ should discard all matches where the given string is contained
453
+ should discard all matches where the given regexp is matched
454
+ #has_table?
455
+ should be true if the table is on the page
456
+ should be false if the table is not on the page
457
+ #has_no_table?
458
+ should be false if the table is on the page
459
+ should be true if the table is not on the page
460
+ #has_text?
461
+ should be true if the given text is on the page at least once
462
+ should be true if scoped to an element which has the text
463
+ should be false if scoped to an element which does not have the text
464
+ should ignore tags
465
+ should ignore extra whitespace and newlines
466
+ should ignore whitespace and newlines in the search string
467
+ should be false if the given text is not on the page
468
+ should handle single quotes in the text
469
+ should handle double quotes in the text
470
+ should handle mixed single and double quotes in the text
471
+ should be false if text is in the title tag in the head
472
+ should be false if text is inside a script tag in the body
473
+ should be false if the given text is on the page but not visible
474
+ should be true if the text in the page matches given regexp
475
+ should be false if the text in the page doesn't match given regexp
476
+ should escape any characters that would have special meaning in a regexp
477
+ should accept non-string parameters
478
+ should be true when passed nil
479
+ should wait for text to appear
480
+ #has_no_text?
481
+ should be false if the given text is on the page at least once
482
+ should be false if scoped to an element which has the text
483
+ should be true if scoped to an element which does not have the text
484
+ should ignore tags
485
+ should be true if the given text is not on the page
486
+ should handle single quotes in the text
487
+ should handle double quotes in the text
488
+ should handle mixed single and double quotes in the text
489
+ should be true if text is in the title tag in the head
490
+ should be true if text is inside a script tag in the body
491
+ should be true if the given text is on the page but not visible
492
+ should be true if the text in the page doesn't match given regexp
493
+ should be false if the text in the page matches given regexp
494
+ should escape any characters that would have special meaning in a regexp
495
+ should wait for text to disappear
496
+ #has_xpath?
497
+ should be true if the given selector is on the page
498
+ should be false if the given selector is not on the page
499
+ should use xpath even if default selector is CSS
500
+ should respect scopes
501
+ should wait for content to appear
502
+ with count
503
+ should be true if the content occurs the given number of times
504
+ should be false if the content occurs a different number of times than the given
505
+ with text
506
+ should discard all matches where the given string is not contained
507
+ should discard all matches where the given regexp is not matched
508
+ #has_no_xpath?
509
+ should be false if the given selector is on the page
510
+ should be true if the given selector is not on the page
511
+ should use xpath even if default selector is CSS
512
+ should respect scopes
513
+ should wait for content to disappear
514
+ with count
515
+ should be false if the content occurs the given number of times
516
+ should be true if the content occurs a different number of times than the given
517
+ with text
518
+ should discard all matches where the given string is contained
519
+ should discard all matches where the given regexp is matched
520
+ #response_headers
521
+ should return response headers
522
+ #html
523
+ should return the unmodified page body
524
+ should return the current state of the page
525
+ #source
526
+ should return the unmodified page source
527
+ should return the current state of the page
528
+ #body
529
+ should return the unmodified page source
530
+ should return the current state of the page
531
+ node
532
+ should act like a session object
533
+ should scope CSS selectors
534
+ #parent
535
+ should have a reference to its parent if there is one
536
+ #text
537
+ should extract node texts
538
+ should return document text on /html selector
539
+ #[]
540
+ should extract node attributes
541
+ should extract boolean node attributes
542
+ #value
543
+ should allow retrieval of the value
544
+ should not swallow extra newlines in textarea
545
+ #set
546
+ should allow assignment of field value
547
+ should fill the field even if the caret was not at the end
548
+ #tag_name
549
+ should extract node tag name
550
+ #visible?
551
+ should extract node visibility
552
+ #checked?
553
+ should extract node checked state
554
+ #selected?
555
+ should extract node selected state
556
+ #==
557
+ preserve object identity
558
+ #trigger
559
+ should allow triggering of custom JS events
560
+ #drag_to
561
+ should drag and drop an object
562
+ #reload
563
+ without automatic reload
564
+ should reload the current context of the node
565
+ should reload a parent node
566
+ should not automatically reload
567
+ with automatic reload
568
+ should reload the current context of the node automatically
569
+ should reload a parent node automatically
570
+ should reload a node automatically when using find
571
+ should not reload nodes which haven't been found
572
+ should reload nodes with options
573
+ #reset_session!
574
+ removes cookies
575
+ resets current url, host, path
576
+ resets page body
577
+ raises any errors caught inside the server
578
+ #status_code
579
+ should return response codes
580
+ #save_page
581
+ saves the page in the root directory
582
+ generates a sensible filename
583
+ can store files in a specified directory
584
+ uses the given filename
585
+ returns the filename
586
+ #select
587
+ should return value of the first option
588
+ should return value of the selected option
589
+ should return the value attribute rather than content if present
590
+ should select an option from a select box by id
591
+ should select an option from a select box by label
592
+ should select an option without giving a select box
593
+ should escape quotes
594
+ should obey from
595
+ show match labels with preceding or trailing whitespace
596
+ casts to string
597
+ with a locator that doesn't exist
598
+ should raise an error
599
+ with an option that doesn't exist
600
+ should raise an error
601
+ on a disabled select
602
+ should raise an error
603
+ with multiple select
604
+ should return an empty value
605
+ should return value of the selected options
606
+ should select one option
607
+ should select multiple options
608
+ should remain selected if already selected
609
+ should return value attribute rather than content if present
610
+ #text
611
+ should print the text of the page
612
+ should strip whitespace
613
+ with css as default selector
614
+ should print the text of the page
615
+ #uncheck
616
+ should uncheck a checkbox by id
617
+ should uncheck a checkbox by label
618
+ casts to string
619
+ #unselect
620
+ with multiple select
621
+ should unselect an option from a select box by id
622
+ should unselect an option without a select box
623
+ should unselect an option from a select box by label
624
+ should favour exact matches to option labels
625
+ should escape quotes
626
+ casts to string
627
+ with single select
628
+ should raise an error
629
+ with a locator that doesn't exist
630
+ should raise an error
631
+ with an option that doesn't exist
632
+ should raise an error
633
+ #visit
634
+ should fetch a response from the driver with a relative url
635
+ should fetch a response from the driver with an absolute url with a port
636
+ should send no referer when visiting a page
637
+ should send no referer when visiting a second page
638
+ should send a referer when following a link
639
+ should preserve the original referer URL when following a redirect
640
+ should send a referer when submitting a form
641
+ when Capybara.always_include_port is true
642
+ should fetch a response from the driver with an absolute url without a port
643
+ without a server
644
+ should respect `app_host`
645
+ should visit a fully qualified URL
646
+ #within_frame
647
+ should find the div in frameOne
648
+ should find the div in FrameTwo
649
+ should find the text div in the main window after finding text in frameOne
650
+ should find the text div in the main window after finding text in frameTwo
651
+ should return the result of executing the block
652
+ #within
653
+ should raise an error if the scope is not found on the page
654
+ should restore the scope when an error is raised
655
+ should fill in a field and click a button
656
+ with CSS selector
657
+ should click links in the given scope
658
+ should assert content in the given scope
659
+ should accept additional options
660
+ with XPath selector
661
+ should click links in the given scope
662
+ with the default selector
663
+ should use XPath
664
+ with Node rather than selector
665
+ should click links in the given scope
666
+ with the default selector set to CSS
667
+ should use CSS
668
+ with nested scopes
669
+ should respect the inner scope
670
+ should respect the outer scope
671
+ #within_fieldset
672
+ should restrict scope to a fieldset given by id
673
+ should restrict scope to a fieldset given by legend
674
+ #within_table
675
+ should restrict scope to a fieldset given by id
676
+ should restrict scope to a fieldset given by legend
677
+ #within_window
678
+ should find the div in firstPopup
679
+ should find the div in secondPopup
680
+ should find the divs in both popups
681
+ should find the div in the main window after finding a div in a popup
682
+
683
+ Failures:
684
+
685
+ 1) Capybara::Session terminus #attach_file with normal form should set a file path by id
686
+ Failure/Error: @session.attach_file "form_image", __FILE__
687
+ Capybara::NotSupportedByDriverError:
688
+ Capybara::NotSupportedByDriverError
689
+ # ./lib/terminus/node.rb:66:in `set'
690
+ # ./vendor/capybara/2.0/lib/capybara/node/element.rb:79:in `block in set'
691
+ # ./vendor/capybara/2.0/lib/capybara/node/base.rb:77:in `synchronize'
692
+ # ./vendor/capybara/2.0/lib/capybara/node/element.rb:79:in `set'
693
+ # ./vendor/capybara/2.0/lib/capybara/node/actions.rb:144:in `attach_file'
694
+ # ./vendor/capybara/2.0/lib/capybara/session.rb:338:in `block (2 levels) in <class:Session>'
695
+ # ./vendor/capybara/2.0/lib/capybara/spec/session/attach_file_spec.rb:11:in `block (3 levels) in <top (required)>'
696
+
697
+ 2) Capybara::Session terminus #attach_file with normal form should set a file path by label
698
+ Failure/Error: @session.attach_file "Image", __FILE__
699
+ Capybara::NotSupportedByDriverError:
700
+ Capybara::NotSupportedByDriverError
701
+ # ./lib/terminus/node.rb:66:in `set'
702
+ # ./vendor/capybara/2.0/lib/capybara/node/element.rb:79:in `block in set'
703
+ # ./vendor/capybara/2.0/lib/capybara/node/base.rb:77:in `synchronize'
704
+ # ./vendor/capybara/2.0/lib/capybara/node/element.rb:79:in `set'
705
+ # ./vendor/capybara/2.0/lib/capybara/node/actions.rb:144:in `attach_file'
706
+ # ./vendor/capybara/2.0/lib/capybara/session.rb:338:in `block (2 levels) in <class:Session>'
707
+ # ./vendor/capybara/2.0/lib/capybara/spec/session/attach_file_spec.rb:17:in `block (3 levels) in <top (required)>'
708
+
709
+ 3) Capybara::Session terminus #attach_file with normal form casts to string
710
+ Failure/Error: @session.attach_file :"form_image", __FILE__
711
+ Capybara::NotSupportedByDriverError:
712
+ Capybara::NotSupportedByDriverError
713
+ # ./lib/terminus/node.rb:66:in `set'
714
+ # ./vendor/capybara/2.0/lib/capybara/node/element.rb:79:in `block in set'
715
+ # ./vendor/capybara/2.0/lib/capybara/node/base.rb:77:in `synchronize'
716
+ # ./vendor/capybara/2.0/lib/capybara/node/element.rb:79:in `set'
717
+ # ./vendor/capybara/2.0/lib/capybara/node/actions.rb:144:in `attach_file'
718
+ # ./vendor/capybara/2.0/lib/capybara/session.rb:338:in `block (2 levels) in <class:Session>'
719
+ # ./vendor/capybara/2.0/lib/capybara/spec/session/attach_file_spec.rb:23:in `block (3 levels) in <top (required)>'
720
+
721
+ 4) Capybara::Session terminus #attach_file with multipart form should set a file path by id
722
+ Failure/Error: @session.attach_file "form_document", @test_file_path
723
+ Capybara::NotSupportedByDriverError:
724
+ Capybara::NotSupportedByDriverError
725
+ # ./lib/terminus/node.rb:66:in `set'
726
+ # ./vendor/capybara/2.0/lib/capybara/node/element.rb:79:in `block in set'
727
+ # ./vendor/capybara/2.0/lib/capybara/node/base.rb:77:in `synchronize'
728
+ # ./vendor/capybara/2.0/lib/capybara/node/element.rb:79:in `set'
729
+ # ./vendor/capybara/2.0/lib/capybara/node/actions.rb:144:in `attach_file'
730
+ # ./vendor/capybara/2.0/lib/capybara/session.rb:338:in `block (2 levels) in <class:Session>'
731
+ # ./vendor/capybara/2.0/lib/capybara/spec/session/attach_file_spec.rb:31:in `block (3 levels) in <top (required)>'
732
+
733
+ 5) Capybara::Session terminus #attach_file with multipart form should set a file path by label
734
+ Failure/Error: @session.attach_file "Single Document", @test_file_path
735
+ Capybara::NotSupportedByDriverError:
736
+ Capybara::NotSupportedByDriverError
737
+ # ./lib/terminus/node.rb:66:in `set'
738
+ # ./vendor/capybara/2.0/lib/capybara/node/element.rb:79:in `block in set'
739
+ # ./vendor/capybara/2.0/lib/capybara/node/base.rb:77:in `synchronize'
740
+ # ./vendor/capybara/2.0/lib/capybara/node/element.rb:79:in `set'
741
+ # ./vendor/capybara/2.0/lib/capybara/node/actions.rb:144:in `attach_file'
742
+ # ./vendor/capybara/2.0/lib/capybara/session.rb:338:in `block (2 levels) in <class:Session>'
743
+ # ./vendor/capybara/2.0/lib/capybara/spec/session/attach_file_spec.rb:37:in `block (3 levels) in <top (required)>'
744
+
745
+ 6) Capybara::Session terminus #attach_file with multipart form should send content type text/plain when uploading a text file
746
+ Failure/Error: @session.attach_file "Single Document", @test_file_path
747
+ Capybara::NotSupportedByDriverError:
748
+ Capybara::NotSupportedByDriverError
749
+ # ./lib/terminus/node.rb:66:in `set'
750
+ # ./vendor/capybara/2.0/lib/capybara/node/element.rb:79:in `block in set'
751
+ # ./vendor/capybara/2.0/lib/capybara/node/base.rb:77:in `synchronize'
752
+ # ./vendor/capybara/2.0/lib/capybara/node/element.rb:79:in `set'
753
+ # ./vendor/capybara/2.0/lib/capybara/node/actions.rb:144:in `attach_file'
754
+ # ./vendor/capybara/2.0/lib/capybara/session.rb:338:in `block (2 levels) in <class:Session>'
755
+ # ./vendor/capybara/2.0/lib/capybara/spec/session/attach_file_spec.rb:48:in `block (3 levels) in <top (required)>'
756
+
757
+ 7) Capybara::Session terminus #attach_file with multipart form should send content type image/jpeg when uploading an image
758
+ Failure/Error: @session.attach_file "Single Document", @test_jpg_file_path
759
+ Capybara::NotSupportedByDriverError:
760
+ Capybara::NotSupportedByDriverError
761
+ # ./lib/terminus/node.rb:66:in `set'
762
+ # ./vendor/capybara/2.0/lib/capybara/node/element.rb:79:in `block in set'
763
+ # ./vendor/capybara/2.0/lib/capybara/node/base.rb:77:in `synchronize'
764
+ # ./vendor/capybara/2.0/lib/capybara/node/element.rb:79:in `set'
765
+ # ./vendor/capybara/2.0/lib/capybara/node/actions.rb:144:in `attach_file'
766
+ # ./vendor/capybara/2.0/lib/capybara/session.rb:338:in `block (2 levels) in <class:Session>'
767
+ # ./vendor/capybara/2.0/lib/capybara/spec/session/attach_file_spec.rb:54:in `block (3 levels) in <top (required)>'
768
+
769
+ 8) Capybara::Session terminus #attach_file with multipart form should not break when using HTML5 multiple file input
770
+ Failure/Error: @session.attach_file "Multiple Documents", @test_file_path
771
+ Capybara::NotSupportedByDriverError:
772
+ Capybara::NotSupportedByDriverError
773
+ # ./lib/terminus/node.rb:66:in `set'
774
+ # ./vendor/capybara/2.0/lib/capybara/node/element.rb:79:in `block in set'
775
+ # ./vendor/capybara/2.0/lib/capybara/node/base.rb:77:in `synchronize'
776
+ # ./vendor/capybara/2.0/lib/capybara/node/element.rb:79:in `set'
777
+ # ./vendor/capybara/2.0/lib/capybara/node/actions.rb:144:in `attach_file'
778
+ # ./vendor/capybara/2.0/lib/capybara/session.rb:338:in `block (2 levels) in <class:Session>'
779
+ # ./vendor/capybara/2.0/lib/capybara/spec/session/attach_file_spec.rb:60:in `block (3 levels) in <top (required)>'
780
+
781
+ 9) Capybara::Session terminus #attach_file with multipart form should not break when using HTML5 multiple file input uploading multiple files
782
+ Failure/Error: @session.attach_file "Multiple Documents", [@test_file_path, @another_test_file_path]
783
+ Capybara::NotSupportedByDriverError:
784
+ Capybara::NotSupportedByDriverError
785
+ # ./lib/terminus/node.rb:66:in `set'
786
+ # ./vendor/capybara/2.0/lib/capybara/node/element.rb:79:in `block in set'
787
+ # ./vendor/capybara/2.0/lib/capybara/node/base.rb:77:in `synchronize'
788
+ # ./vendor/capybara/2.0/lib/capybara/node/element.rb:79:in `set'
789
+ # ./vendor/capybara/2.0/lib/capybara/node/actions.rb:144:in `attach_file'
790
+ # ./vendor/capybara/2.0/lib/capybara/session.rb:338:in `block (2 levels) in <class:Session>'
791
+ # ./vendor/capybara/2.0/lib/capybara/spec/session/attach_file_spec.rb:68:in `block (3 levels) in <top (required)>'
792
+
793
+ Finished in 7 minutes 54.75 seconds
794
+ 497 examples, 9 failures
795
+
796
+ Failed examples:
797
+
798
+ rspec ./vendor/capybara/2.0/lib/capybara/spec/session/attach_file_spec.rb:10 # Capybara::Session terminus #attach_file with normal form should set a file path by id
799
+ rspec ./vendor/capybara/2.0/lib/capybara/spec/session/attach_file_spec.rb:16 # Capybara::Session terminus #attach_file with normal form should set a file path by label
800
+ rspec ./vendor/capybara/2.0/lib/capybara/spec/session/attach_file_spec.rb:22 # Capybara::Session terminus #attach_file with normal form casts to string
801
+ rspec ./vendor/capybara/2.0/lib/capybara/spec/session/attach_file_spec.rb:30 # Capybara::Session terminus #attach_file with multipart form should set a file path by id
802
+ rspec ./vendor/capybara/2.0/lib/capybara/spec/session/attach_file_spec.rb:36 # Capybara::Session terminus #attach_file with multipart form should set a file path by label
803
+ rspec ./vendor/capybara/2.0/lib/capybara/spec/session/attach_file_spec.rb:47 # Capybara::Session terminus #attach_file with multipart form should send content type text/plain when uploading a text file
804
+ rspec ./vendor/capybara/2.0/lib/capybara/spec/session/attach_file_spec.rb:53 # Capybara::Session terminus #attach_file with multipart form should send content type image/jpeg when uploading an image
805
+ rspec ./vendor/capybara/2.0/lib/capybara/spec/session/attach_file_spec.rb:59 # Capybara::Session terminus #attach_file with multipart form should not break when using HTML5 multiple file input
806
+ rspec ./vendor/capybara/2.0/lib/capybara/spec/session/attach_file_spec.rb:66 # Capybara::Session terminus #attach_file with multipart form should not break when using HTML5 multiple file input uploading multiple files