From b739493c5f915235b820978accc9986ef56fe228 Mon Sep 17 00:00:00 2001
From: Ray Schamp <ray@scratch.mit.edu>
Date: Tue, 10 Jul 2018 16:41:11 -0400
Subject: [PATCH] Test that the expected project URI is requested

---
 test/helpers/selenium-helper.js   |  3 +++
 test/integration/examples.test.js | 16 ++++++++++++++++
 2 files changed, 19 insertions(+)

diff --git a/test/helpers/selenium-helper.js b/test/helpers/selenium-helper.js
index ce2d6a533..2d979e448 100644
--- a/test/helpers/selenium-helper.js
+++ b/test/helpers/selenium-helper.js
@@ -44,6 +44,9 @@ class SeleniumHelper {
             args.push('--headless');
         }
         chromeCapabilities.set('chromeOptions', {args});
+        chromeCapabilities.setLoggingPrefs({
+            performance: 'ALL'
+        });
         this.driver = new webdriver.Builder()
             .forBrowser('chrome')
             .withCapabilities(chromeCapabilities)
diff --git a/test/integration/examples.test.js b/test/integration/examples.test.js
index f745dc24d..ecaeb56f2 100644
--- a/test/integration/examples.test.js
+++ b/test/integration/examples.test.js
@@ -35,6 +35,14 @@ describe('player example', () => {
         await clickXpath('//img[@title="Stop"]');
         const logs = await getLogs();
         await expect(logs).toEqual([]);
+        const projectRequests = await driver.manage().logs()
+            .get('performance')
+            .then(pLogs => pLogs.map(log => JSON.parse(log.message).message)
+                .filter(m => m.method === 'Network.requestWillBeSent')
+                .map(m => m.params.request.url)
+                .filter(url => url === 'https://projects.scratch.mit.edu/internalapi/project/96708228/get/')
+            );
+        await expect(projectRequests).toEqual(['https://projects.scratch.mit.edu/internalapi/project/96708228/get/']);
     });
 });
 
@@ -58,6 +66,14 @@ describe('blocks example', () => {
         await clickXpath('//img[@title="Stop"]');
         const logs = await getLogs();
         await expect(logs).toEqual([]);
+        const projectRequests = await driver.manage().logs()
+            .get('performance')
+            .then(pLogs => pLogs.map(log => JSON.parse(log.message).message)
+                .filter(m => m.method === 'Network.requestWillBeSent')
+                .map(m => m.params.request.url)
+                .filter(url => url === 'https://projects.scratch.mit.edu/internalapi/project/96708228/get/')
+            );
+        await expect(projectRequests).toEqual(['https://projects.scratch.mit.edu/internalapi/project/96708228/get/']);
     });
 
     test('Change categories', async () => {
-- 
GitLab