aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/blueimp/jquery-file-upload/wdio/test/pages/file-upload.js
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/blueimp/jquery-file-upload/wdio/test/pages/file-upload.js')
-rw-r--r--vendor/blueimp/jquery-file-upload/wdio/test/pages/file-upload.js75
1 files changed, 75 insertions, 0 deletions
diff --git a/vendor/blueimp/jquery-file-upload/wdio/test/pages/file-upload.js b/vendor/blueimp/jquery-file-upload/wdio/test/pages/file-upload.js
new file mode 100644
index 000000000..dfef36394
--- /dev/null
+++ b/vendor/blueimp/jquery-file-upload/wdio/test/pages/file-upload.js
@@ -0,0 +1,75 @@
+'use strict'
+
+/* global browser, $, $$ */
+/* eslint-disable class-methods-use-this */
+
+class FileUpload {
+ get fileinput() {
+ return $('.fileinput-button input')
+ }
+ get start() {
+ return $('.fileupload-buttonbar .start')
+ }
+ get toggle() {
+ return $('.fileupload-buttonbar .toggle')
+ }
+ get remove() {
+ return $('.fileupload-buttonbar .delete')
+ }
+ get processing() {
+ return $$('.files .processing')
+ }
+ get uploads() {
+ return $$('.files .template-upload')
+ }
+ get downloads() {
+ return $$('.files .template-download')
+ }
+ get checked() {
+ return $$('.files .toggle:checked')
+ }
+ /**
+ * Opens the file upload form.
+ *
+ * @param {number} [timeout] Wait timeout
+ * @returns {FileUpload} FileUpload object
+ */
+ open(timeout) {
+ browser.url('/')
+ this.fileinput.waitForExist(timeout)
+ return this
+ }
+ /**
+ * Uploads files.
+ *
+ * @param {Array<string>} files Files to upload
+ * @param {number} [timeout] Wait timeout
+ * @returns {FileUpload} FileUpload object
+ */
+ upload(files, timeout) {
+ this.fileinput.addValue(files.join('\n'))
+ browser.waitUntil(() => !this.processing.length, timeout)
+ this.start.click()
+ browser.waitUntil(() => !!this.downloads.length, timeout)
+ browser.waitUntil(() => !this.uploads.length, timeout)
+ return this
+ }
+ /**
+ * Deletes uploaded files.
+ *
+ * @param {number} [timeout] Wait timeout
+ * @returns {FileUpload} FileUpload object
+ */
+ delete(timeout) {
+ this.toggle.click()
+ browser.waitUntil(
+ () => this.downloads.length === this.checked.length,
+ timeout
+ )
+ this.remove.click()
+ browser.waitUntil(() => !this.downloads.length, timeout)
+ return this
+ }
+}
+
+module.exports = new FileUpload()