From b4b96f94c88e68525e514075ffb3899c53e0f623 Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Fri, 19 Jul 2024 10:37:08 +0200 Subject: [PATCH 01/11] Add Playwright webserver with COOP/COEP headers --- ui-tests/package.json | 3 ++- ui-tests/playwright.config.js | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ui-tests/package.json b/ui-tests/package.json index dc00b9a..7835261 100644 --- a/ui-tests/package.json +++ b/ui-tests/package.json @@ -6,7 +6,8 @@ "scripts": { "build": "yarn run clean && python build.py", "clean": "rimraf dist", - "start": "cd dist && python -m http.server -b 127.0.0.1 8000", + "start": "python -m http.server -b 127.0.0.1 8000 --directory dist", + "start:crossoriginisolated": "npx static-handler --cors --coop --coep --corp ./dist", "start:detached": "yarn run start&", "test": "playwright test", "test:debug": "PWDEBUG=1 playwright test", diff --git a/ui-tests/playwright.config.js b/ui-tests/playwright.config.js index f5f3a6c..52452c9 100644 --- a/ui-tests/playwright.config.js +++ b/ui-tests/playwright.config.js @@ -18,6 +18,12 @@ module.exports = { port: 8000, timeout: 120 * 1000, reuseExistingServer: true + }, + { + command: 'yarn start:crossoriginisolated', + port: 8080, + timeout: 120 * 1000, + reuseExistingServer: true } ] }; From d9ed1826a201fedd3e8ab23f4ba9e766e7f1acf1 Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Fri, 19 Jul 2024 11:12:48 +0200 Subject: [PATCH 02/11] Test on cross origin isolated --- ui-tests/playwright.config.js | 14 ++++++++++++++ ...-xeus-execute-crossoriginisolated-linux.png} | Bin .../jupyter-xeus-execute-default-linux.png | Bin 0 -> 566 bytes ...xeus-launcher-crossoriginisolated-linux.png} | Bin .../jupyter-xeus-launcher-default-linux.png | Bin 0 -> 39556 bytes 5 files changed, 14 insertions(+) rename ui-tests/tests/jupyterlite_xeus.spec.ts-snapshots/{jupyter-xeus-execute-linux.png => jupyter-xeus-execute-crossoriginisolated-linux.png} (100%) create mode 100644 ui-tests/tests/jupyterlite_xeus.spec.ts-snapshots/jupyter-xeus-execute-default-linux.png rename ui-tests/tests/jupyterlite_xeus.spec.ts-snapshots/{jupyter-xeus-launcher-linux.png => jupyter-xeus-launcher-crossoriginisolated-linux.png} (100%) create mode 100644 ui-tests/tests/jupyterlite_xeus.spec.ts-snapshots/jupyter-xeus-launcher-default-linux.png diff --git a/ui-tests/playwright.config.js b/ui-tests/playwright.config.js index 52452c9..182a659 100644 --- a/ui-tests/playwright.config.js +++ b/ui-tests/playwright.config.js @@ -11,6 +11,20 @@ module.exports = { trace: 'on-first-retry', video: 'retain-on-failure' }, + projects: [ + { + name: 'default', + use: { + baseURL: 'http://localhost:8000' + } + }, + { + name: 'crossoriginisolated', + use: { + baseURL: 'http://localhost:8080' + } + } + ], retries: 1, webServer: [ { diff --git a/ui-tests/tests/jupyterlite_xeus.spec.ts-snapshots/jupyter-xeus-execute-linux.png b/ui-tests/tests/jupyterlite_xeus.spec.ts-snapshots/jupyter-xeus-execute-crossoriginisolated-linux.png similarity index 100% rename from ui-tests/tests/jupyterlite_xeus.spec.ts-snapshots/jupyter-xeus-execute-linux.png rename to ui-tests/tests/jupyterlite_xeus.spec.ts-snapshots/jupyter-xeus-execute-crossoriginisolated-linux.png diff --git a/ui-tests/tests/jupyterlite_xeus.spec.ts-snapshots/jupyter-xeus-execute-default-linux.png b/ui-tests/tests/jupyterlite_xeus.spec.ts-snapshots/jupyter-xeus-execute-default-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..1b084d90c095a73a00148f7d4503a9e0465239ae GIT binary patch literal 566 zcmeAS@N?(olHy`uVBq!ia0y~yV4eVEi*T?3$=|J)%7GMPage(c!@6@aFM;e2o-U3d z6?5L+)b~zFlxcgIeqDA;mc`u^Avc#bheTGpN^X!~nW=X9$a@8~z-HI(vq`g+W-RaE zP@=*AKX_^U}Rue;o|U* z@obv$@#DuA&ja!eLYRaY7#h4-RDf!xa-86L_wL=MZQG_*?Vabgc;e^JpYPwZv$09Z z%+yRzPmkXv$iR?rqpqjw!2Ne$znadTJv%Zs_Uy}-nR$76oA&LS_wwaS9UYx7ckkW5 zpPrno{I<+mTU%TCHV@Dqo;n5g7iGIEtEx_2yB3zUHR{>3XO}WeiYhB_mX}vo&raJs zGi8V35#b zv~&m*sjRCzcl-A3=h2bVG`kkPUw1X@>4OIf`uh4eZ{L1H+x@b{Dl#ta-EL`V>C;D!xP1Hmy|}1o((Bi+C*}epNP>;g^1zQD6@7hu zMWv-vfByWr<@Vb*@7|>q7Ji)m-PqXp=FOWYzkMr{lb7FL0}SN@8){yEt=b#d4+`k_ u&)JcK)B`A{B?yZ95G7~~FflL$ob)$XRQfx0YVSdy41=eupUXO@geCwo%=m=> literal 0 HcmV?d00001 diff --git a/ui-tests/tests/jupyterlite_xeus.spec.ts-snapshots/jupyter-xeus-launcher-linux.png b/ui-tests/tests/jupyterlite_xeus.spec.ts-snapshots/jupyter-xeus-launcher-crossoriginisolated-linux.png similarity index 100% rename from ui-tests/tests/jupyterlite_xeus.spec.ts-snapshots/jupyter-xeus-launcher-linux.png rename to ui-tests/tests/jupyterlite_xeus.spec.ts-snapshots/jupyter-xeus-launcher-crossoriginisolated-linux.png diff --git a/ui-tests/tests/jupyterlite_xeus.spec.ts-snapshots/jupyter-xeus-launcher-default-linux.png b/ui-tests/tests/jupyterlite_xeus.spec.ts-snapshots/jupyter-xeus-launcher-default-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..f9278b5979abf24b858af56f1e3c99fb00945103 GIT binary patch literal 39556 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
j8ur}AIwL6eSIGQ`v)CK zdW;ap;yE2b8uiTE<%CEgeygx?<5Nk|ql93e+$}Cn$X^)P_5JUK&NR1Xw+GzvZWdsO zrT~i&eGrK>!RLLRn!|gr`So~Fu)=yS@e(h01eQBBSb#deekB&oP=YWJ$Gnq5SfvYO zo?itng_ffS&LDIn!WYu=2LsO_Ri1ixgr?!w|pCf z801`w3xY#{NmmC@J|+fC>uGLgQHgcy8kSilro5g)%@I++YXR(bp$n zCX#Zhh{x5f*qD575@DUi9}wL@h(3g+o?7N~_SZH>e`yc#dF|ns`ChYmh>d@~&kldu zr&00azi+dipRTXikOd|QA7=>y3x_|YtG2l`TC=){mrNE;T*SK;vo3-3!c!rN3md6s z-f0%5*Bxhs;gTxy8lpNOb8~a`a9JH7G$#%nx{gEO0~lr#NEPq@Kd#npPzP~0y5JoU z{tmJTj*nQY5{RcSq;QaYV6az0TgMMO!}V?uR1o`Zgx1^9W(Nm8>kLdwH?mp*a1Q08 zX?-CbY;tpxFn@#MKzsLK2!H-r_6O7JTPS{u9Kdl3D7olwaYa3%m(HOf3iMM+=H(H1 zjijm8`SOS~43f+4?gY}uWnW6o7Swo}2>D(zU|J%v0B;4w3ta1-q3Ctl&CLq>LO9Im z9zJ{n2lIu#I)*^15WTGD=1zxkb*&}Raz61}GJogFFZrrQk$}$wUzbqwe8(}#S8hv5v+)!Ul{9g2{wY+maC z^pnnn@JB+30)e<9n(N7pC@f~GSWS|fs|3g|`GD7-s~zGTV$wx8G01Cb#XOty7BPJaJY~I`+P2RqO_wyQBd_Ap z_ZXy(E^M}GZ%j@rC4EsqNg$Z;VyxNH*W_?aujHUH*Kx<1^-QPi*q?kp@7@~zx+AmE zCeM4m0I$Y*VvuYpy@PbxyFYXWq%KWybF*A@a0t42^JWX3j_rCYj#IQXSCymFMVNnG ziljL}u5X7kBsbynHlIMOpMqP!{`k&8&Yd-|RR+-viYhXX+=3RL>uY-PKU~8SBR027 z2frY#;_|WJGN)#FF|#T)=ZS;K24~w%i793=>35TI8Oxb=?etB%E!LHG&N6+m(7%5O z+ZA>ulaot~m=6d=1}1ni9Wst&CGRH1Y}@-qOuslRrsIxotz6`NGersg+aLWFU8@EB vZi7MUg!s?@#PRz7{{neHyZ+Z7)Ex5*_ljro0z<0gFRC2UIGBFml<$87cRez# literal 0 HcmV?d00001 From c570eff490bbb1c4001abd25bc6bb6ffc72fda59 Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Fri, 19 Jul 2024 11:41:51 +0200 Subject: [PATCH 03/11] try -U with --pre --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f87f523..14b5e3e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -207,7 +207,7 @@ jobs: fail-fast: false matrix: # try the latest stable and potential pre-releases - jupyterlite_version: ["jupyterlite-core -U", "jupyterlite-core --pre"] + jupyterlite_version: ["jupyterlite-core -U", "jupyterlite-core -U --pre"] steps: - name: Checkout From 02a360afd53eb85f4bc34ee0ea165c874aa1a058 Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Fri, 19 Jul 2024 12:17:55 +0200 Subject: [PATCH 04/11] use project on the CI matrix --- .github/workflows/build.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 14b5e3e..72286f1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -208,6 +208,14 @@ jobs: matrix: # try the latest stable and potential pre-releases jupyterlite_version: ["jupyterlite-core -U", "jupyterlite-core -U --pre"] + project: ["default", "crossoriginisolated"] + include: + - jupyterlite_version: "jupyterlite-core -U --pre" + project: "default" + - jupyterlite_version: "jupyterlite-core -U --pre" + project: "crossorigin" + - jupyterlite_version: "jupyterlite-core -U" + project: "default" steps: - name: Checkout @@ -250,7 +258,7 @@ jobs: - name: Execute integration tests working-directory: ui-tests run: | - jlpm playwright test + jlpm playwright test --project ${{ matrix.project }} - name: Upload Playwright Test report if: always() From c6dc71680db24b66b20d4bb4649b4d125e136668 Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Fri, 19 Jul 2024 12:25:10 +0200 Subject: [PATCH 05/11] fix typo --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 72286f1..2215190 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -213,7 +213,7 @@ jobs: - jupyterlite_version: "jupyterlite-core -U --pre" project: "default" - jupyterlite_version: "jupyterlite-core -U --pre" - project: "crossorigin" + project: "crossoriginisolated" - jupyterlite_version: "jupyterlite-core -U" project: "default" From e193cbe267d01e326e623ea04a0dcd3501345e3b Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Fri, 19 Jul 2024 12:34:13 +0200 Subject: [PATCH 06/11] add exclude --- .github/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2215190..88de6f5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -216,6 +216,9 @@ jobs: project: "crossoriginisolated" - jupyterlite_version: "jupyterlite-core -U" project: "default" + exclude: + - jupyterlite_version: "jupyterlite-core -U" + project: "crossoriginisolated" steps: - name: Checkout From adb897568f8e3f8b80c4d56e070643a199f231df Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Fri, 19 Jul 2024 12:35:49 +0200 Subject: [PATCH 07/11] only exclude --- .github/workflows/build.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 88de6f5..007d6a7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -209,13 +209,7 @@ jobs: # try the latest stable and potential pre-releases jupyterlite_version: ["jupyterlite-core -U", "jupyterlite-core -U --pre"] project: ["default", "crossoriginisolated"] - include: - - jupyterlite_version: "jupyterlite-core -U --pre" - project: "default" - - jupyterlite_version: "jupyterlite-core -U --pre" - project: "crossoriginisolated" - - jupyterlite_version: "jupyterlite-core -U" - project: "default" + # the latest stable release is not compatible for now exclude: - jupyterlite_version: "jupyterlite-core -U" project: "crossoriginisolated" From 3384129656d8dd750a11a9de63f777710d842b8f Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Sat, 20 Jul 2024 08:49:57 +0200 Subject: [PATCH 08/11] Add file system test --- ui-tests/tests/jupyterlite_xeus.spec.ts | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/ui-tests/tests/jupyterlite_xeus.spec.ts b/ui-tests/tests/jupyterlite_xeus.spec.ts index 1b1a9aa..6322432 100644 --- a/ui-tests/tests/jupyterlite_xeus.spec.ts +++ b/ui-tests/tests/jupyterlite_xeus.spec.ts @@ -25,9 +25,6 @@ test.describe('General Tests', () => { test('xeus-python should execute some code', async ({ page }) => { await page.goto('lab/index.html'); - // Launch a Python notebook - const xpython = page.locator('[title="Python 3.11 (XPython)"]').first(); - await xpython.click(); // Wait for kernel to be idle await page.locator('#jp-main-statusbar').getByText('Idle').waitFor(); @@ -44,4 +41,25 @@ test.describe('General Tests', () => { 'jupyter-xeus-execute.png' ); }); + + test('the kernel should have access to the file system', async ({ page }) => { + await page.goto('lab/index.html'); + + // Create a Python notebook + const xpython = page.locator('[title="Python 3.11 (XPython)"]').first(); + await xpython.click(); + + await page.notebook.save(); + + await page.notebook.setCell(0, 'code', 'import os; os.listdir()'); + await page.notebook.runCell(0); + + // Wait for kernel to be idle + await page.locator('#jp-main-statusbar').getByText('Idle').waitFor(); + + const cell = await page.notebook.getCellOutput(0); + const cellContent = await cell?.textContent(); + const name = 'Untitled.ipynb'; + expect(cellContent).toContain(name); + }); }); From e19f881de8c3329a499f3b47e8f18a7739b44e2c Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Sat, 20 Jul 2024 08:50:50 +0200 Subject: [PATCH 09/11] lint --- ui-tests/tests/jupyterlite_xeus.spec.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/ui-tests/tests/jupyterlite_xeus.spec.ts b/ui-tests/tests/jupyterlite_xeus.spec.ts index 6322432..a30d54a 100644 --- a/ui-tests/tests/jupyterlite_xeus.spec.ts +++ b/ui-tests/tests/jupyterlite_xeus.spec.ts @@ -25,7 +25,6 @@ test.describe('General Tests', () => { test('xeus-python should execute some code', async ({ page }) => { await page.goto('lab/index.html'); - // Wait for kernel to be idle await page.locator('#jp-main-statusbar').getByText('Idle').waitFor(); From 8c614e50499a1887370fa7c70bb55e864610d34b Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Sat, 20 Jul 2024 09:04:25 +0200 Subject: [PATCH 10/11] update tests --- ui-tests/tests/jupyterlite_xeus.spec.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/ui-tests/tests/jupyterlite_xeus.spec.ts b/ui-tests/tests/jupyterlite_xeus.spec.ts index a30d54a..4b25a4f 100644 --- a/ui-tests/tests/jupyterlite_xeus.spec.ts +++ b/ui-tests/tests/jupyterlite_xeus.spec.ts @@ -53,9 +53,6 @@ test.describe('General Tests', () => { await page.notebook.setCell(0, 'code', 'import os; os.listdir()'); await page.notebook.runCell(0); - // Wait for kernel to be idle - await page.locator('#jp-main-statusbar').getByText('Idle').waitFor(); - const cell = await page.notebook.getCellOutput(0); const cellContent = await cell?.textContent(); const name = 'Untitled.ipynb'; From 0d5b2e71313d08b1c4452e22ea1c4cababd9a68a Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Sun, 21 Jul 2024 10:08:11 +0200 Subject: [PATCH 11/11] fix tests --- ui-tests/tests/jupyterlite_xeus.spec.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ui-tests/tests/jupyterlite_xeus.spec.ts b/ui-tests/tests/jupyterlite_xeus.spec.ts index 4b25a4f..2a6596d 100644 --- a/ui-tests/tests/jupyterlite_xeus.spec.ts +++ b/ui-tests/tests/jupyterlite_xeus.spec.ts @@ -25,6 +25,9 @@ test.describe('General Tests', () => { test('xeus-python should execute some code', async ({ page }) => { await page.goto('lab/index.html'); + const xpython = page.locator('[title="Python 3.11 (XPython)"]').first(); + await xpython.click(); + // Wait for kernel to be idle await page.locator('#jp-main-statusbar').getByText('Idle').waitFor();