@@ -29,6 +29,7 @@ const Pages = test.Pages
29
29
test . suite ( function ( env ) {
30
30
var LOREM_IPSUM_TEXT = 'lorem ipsum dolor sit amet'
31
31
var FILE_HTML = '<!DOCTYPE html><div>' + LOREM_IPSUM_TEXT + '</div>'
32
+ var FILE_HTML_2 = '<!DOCTYPE html><div>' + "I love sausages too" + '</div>'
32
33
33
34
var _fp
34
35
before ( function ( ) {
@@ -49,6 +50,41 @@ test.suite(function (env) {
49
50
}
50
51
} )
51
52
53
+ test
54
+ . ignore ( env . browsers ( Browser . SAFARI ) )
55
+ . it ( 'can upload multiple files' , async function ( ) {
56
+ driver . setFileDetector ( new remote . FileDetector ( ) )
57
+
58
+ await driver . get ( Pages . uploadPage )
59
+
60
+ var fp1 = await io . tmpFile ( ) . then ( function ( fp ) {
61
+ fs . writeFileSync ( fp , FILE_HTML )
62
+ return fp
63
+ } )
64
+
65
+ var fp2 = await io . tmpFile ( ) . then ( function ( fp ) {
66
+ fs . writeFileSync ( fp , FILE_HTML_2 )
67
+ return fp
68
+ } )
69
+
70
+ await driver . findElement ( By . id ( 'upload' ) ) . sendKeys ( fp1 + '\n' + fp2 )
71
+ await driver . findElement ( By . id ( 'go' ) ) . click ( )
72
+
73
+ // Uploading files across a network may take a while, even if they're small.
74
+ var label = await driver . findElement ( By . id ( 'upload_label' ) )
75
+ await driver . wait (
76
+ until . elementIsNotVisible ( label ) ,
77
+ 10 * 1000 ,
78
+ 'File took longer than 10 seconds to upload!'
79
+ )
80
+
81
+ var frame = await driver . findElement ( By . id ( 'upload_target' ) )
82
+ await driver . switchTo ( ) . frame ( frame )
83
+ const txt = await driver . findElement ( By . css ( 'body' ) ) . getText ( )
84
+ assert . match ( txt , new RegExp ( fp1 . split ( '/' ) . pop ( ) ) )
85
+ assert . match ( txt , new RegExp ( fp2 . split ( '/' ) . pop ( ) ) )
86
+ } )
87
+
52
88
test
53
89
. ignore ( env . browsers ( Browser . SAFARI ) )
54
90
. it ( 'can upload files' , async function ( ) {
@@ -63,7 +99,6 @@ test.suite(function (env) {
63
99
64
100
await driver . findElement ( By . id ( 'upload' ) ) . sendKeys ( fp )
65
101
await driver . findElement ( By . id ( 'go' ) ) . click ( )
66
-
67
102
// Uploading files across a network may take a while, even if they're small.
68
103
var label = await driver . findElement ( By . id ( 'upload_label' ) )
69
104
await driver . wait (
@@ -74,9 +109,11 @@ test.suite(function (env) {
74
109
75
110
var frame = await driver . findElement ( By . id ( 'upload_target' ) )
76
111
await driver . switchTo ( ) . frame ( frame )
112
+ const txt = await driver . findElement ( By . css ( 'body' ) ) . getText ( ) ;
77
113
assert . strictEqual (
78
- await driver . findElement ( By . css ( 'body' ) ) . getText ( ) ,
79
- LOREM_IPSUM_TEXT
114
+ txt ,
115
+ fp . split ( '/' ) . pop ( ) ,
116
+ `The document contained ${ await driver . getPageSource ( ) } `
80
117
)
81
118
} )
82
119
} )
0 commit comments