/* the playlist-FILE door, the fifth: the phone's own document picker, and the picked document's NAME deciding both the format and the draft's title — then the two answers a picker can give that are not a file, armed through the mock's fail door */ { do: `__click('.newpl', 'Import')`, name: "import-file-sheet", wait: 700 }, { do: `__click('.halfsheet .row', 'Playlist file')`, name: "import-file-review", wait: 2200 }, { do: `__click('.imp-foot .btn-fill', 'Create playlist')`, name: "import-file-created", wait: 1500 }, { do: `history.back()`, wait: 900 }, { do: `__ssMock.fail('plugin:storage|pick_file', 'cancelled')`, wait: 200 }, { do: `__click('.newpl', 'Import')`, wait: 700 }, { do: `__click('.halfsheet .row', 'Playlist file')`, name: "import-file-cancelled", wait: 1400 }, { do: `__ssMock.fail('plugin:storage|pick_file', 'that file is not on this phone')`, wait: 200 }, { do: `__click('.newpl', 'Import')`, wait: 700 }, { do: `__click('.halfsheet .row', 'Playlist file')`, name: "import-file-refused", wait: 1400 }, /* disarmed and the red dismissed, or every step after this one inherits both — the toast stays until it is tapped */ { do: `__ssMock.fail('plugin:storage|pick_file', '')`, wait: 200 }, { do: `(function () { var t = document.querySelector('.toast:not(.notice)'); if (t) t.click(); return true; })()`, name: "import-file-cleared", wait: 600 },