diff --git a/test/fixtures/movie.wav b/test/fixtures/movie.wav
new file mode 100644
index 0000000000000000000000000000000000000000..79c10d2146204fa108038bc4a67c853ec81a4707
Binary files /dev/null and b/test/fixtures/movie.wav differ
diff --git a/test/fixtures/sneaker.wav b/test/fixtures/sneaker.wav
new file mode 100644
index 0000000000000000000000000000000000000000..01c4a17597b5e747368094e61c2e8d0d3414cc2b
Binary files /dev/null and b/test/fixtures/sneaker.wav differ
diff --git a/test/integration/backdrops.test.js b/test/integration/backdrops.test.js
index 9a527b2c9d4caa39287b9566af459648efb6ae7b..d0a3e84aa841f73309fb36c88019092e943b6a03 100644
--- a/test/integration/backdrops.test.js
+++ b/test/integration/backdrops.test.js
@@ -4,6 +4,7 @@ import SeleniumHelper from '../helpers/selenium-helper';
 const {
     clickText,
     clickXpath,
+    findByText,
     findByXpath,
     getDriver,
     getLogs,
@@ -49,4 +50,30 @@ describe('Working with backdrops', () => {
         const logs = await getLogs();
         await expect(logs).toEqual([]);
     });
+
+    test.only('Adding multiple backdrops at the same time', async () => {
+        const files = [
+            path.resolve(__dirname, '../fixtures/gh-3582-png.png'),
+            path.resolve(__dirname, '../fixtures/100-100.svg')
+        ];
+        await loadUri(uri);
+        await clickXpath('//button[@title="Try It"]');
+
+        const buttonXpath = '//button[@aria-label="Choose a Backdrop"]';
+        const fileXpath = `${buttonXpath}/following-sibling::div//input[@type="file"]`;
+
+        const el = await findByXpath(buttonXpath);
+        await driver.actions().mouseMove(el)
+            .perform();
+        await driver.sleep(500); // Wait for thermometer menu to come up
+        const input = await findByXpath(fileXpath);
+        await input.sendKeys(files.join('\n'));
+
+        await clickXpath('//span[text()="Stage"]');
+        await findByText('gh-3582-png', scope.costumesTab);
+        await findByText('100-100', scope.costumesTab);
+
+        const logs = await getLogs();
+        await expect(logs).toEqual([]);
+    });
 });
diff --git a/test/integration/costumes.test.js b/test/integration/costumes.test.js
index 5181c429a6b69cb0298f9eb677787c672c3ac8dd..803abbdafde5649a6de75157b500b6ce3fe0b649 100644
--- a/test/integration/costumes.test.js
+++ b/test/integration/costumes.test.js
@@ -4,6 +4,7 @@ import SeleniumHelper from '../helpers/selenium-helper';
 const {
     clickText,
     clickXpath,
+    findByText,
     findByXpath,
     getDriver,
     getLogs,
@@ -181,4 +182,25 @@ describe('Working with costumes', () => {
         await expect(logs).toEqual([]);
     });
 
+    test.only('Adding multiple costumes at the same time', async () => {
+        const files = [
+            path.resolve(__dirname, '../fixtures/gh-3582-png.png'),
+            path.resolve(__dirname, '../fixtures/100-100.svg')
+        ];
+        await loadUri(uri);
+        await clickXpath('//button[@title="Try It"]');
+        await clickText('Costumes');
+        const el = await findByXpath('//button[@aria-label="Choose a Costume"]');
+        await driver.actions().mouseMove(el)
+            .perform();
+        await driver.sleep(500); // Wait for thermometer menu to come up
+        const input = await findByXpath('//input[@type="file"]');
+        await input.sendKeys(files.join('\n'));
+
+        await findByText('gh-3582-png', scope.costumesTab);
+        await findByText('100-100', scope.costumesTab);
+
+        const logs = await getLogs();
+        await expect(logs).toEqual([]);
+    });
 });
diff --git a/test/integration/sounds.test.js b/test/integration/sounds.test.js
index 3877ada3f8fa90acb8e866418fcc5ff1425b516d..940e4750cbc17da4520646e4a29216cf47fd57a9 100644
--- a/test/integration/sounds.test.js
+++ b/test/integration/sounds.test.js
@@ -4,6 +4,7 @@ import SeleniumHelper from '../helpers/selenium-helper';
 const {
     clickText,
     clickXpath,
+    findByText,
     findByXpath,
     getDriver,
     getLogs,
@@ -114,4 +115,26 @@ describe('Working with sounds', () => {
         const logs = await getLogs();
         await expect(logs).toEqual([]);
     });
+
+    test.only('Adding multiple sounds at the same time', async () => {
+        const files = [
+            path.resolve(__dirname, '../fixtures/movie.wav'),
+            path.resolve(__dirname, '../fixtures/sneaker.wav')
+        ];
+        await loadUri(uri);
+        await clickXpath('//button[@title="Try It"]');
+        await clickText('Sounds');
+        const el = await findByXpath('//button[@aria-label="Choose a Sound"]');
+        await driver.actions().mouseMove(el)
+            .perform();
+        await driver.sleep(500); // Wait for thermometer menu to come up
+        const input = await findByXpath('//input[@type="file"]');
+        await input.sendKeys(files.join('\n'));
+
+        await findByText('movie', scope.soundsTab);
+        await findByText('sneaker', scope.soundsTab);
+
+        const logs = await getLogs();
+        await expect(logs).toEqual([]);
+    });
 });
diff --git a/test/integration/sprites.test.js b/test/integration/sprites.test.js
index a3dd48cf4a5e319fd8660276ed22330910eeca53..12ab36a5fb7bfd172585e4c4670e929a5b1ff7e4 100644
--- a/test/integration/sprites.test.js
+++ b/test/integration/sprites.test.js
@@ -159,4 +159,25 @@ describe('Working with sprites', () => {
         await expect(logs).toEqual([]);
     });
 
+    test.only('Adding multiple sprites at the same time', async () => {
+        const files = [
+            path.resolve(__dirname, '../fixtures/gh-3582-png.png'),
+            path.resolve(__dirname, '../fixtures/100-100.svg')
+        ];
+        await loadUri(uri);
+        await clickXpath('//button[@title="Try It"]');
+        const el = await findByXpath('//button[@aria-label="Choose a Sprite"]');
+        await driver.actions().mouseMove(el)
+            .perform();
+        await driver.sleep(500); // Wait for thermometer menu to come up
+        const input = await findByXpath('//input[@type="file"]');
+        await input.sendKeys(files.join('\n'));
+
+        await findByText('gh-3582-png', scope.spriteTile);
+        await findByText('100-100', scope.spriteTile);
+
+        const logs = await getLogs();
+        await expect(logs).toEqual([]);
+    });
+
 });