From 8c4138d049077e0d047a29b4355bd320d00caac0 Mon Sep 17 00:00:00 2001 From: Andrea Fercia Date: Tue, 29 Nov 2022 16:35:40 +0100 Subject: [PATCH 1/9] Add navigate regions visual regression tests first pass. --- ...how-the-outline-focus-style-1-chromium.png | Bin 0 -> 5005 bytes ...how-the-outline-focus-style-2-chromium.png | Bin 0 -> 15635 bytes ...how-the-outline-focus-style-3-chromium.png | Bin 0 -> 21604 bytes ...how-the-outline-focus-style-4-chromium.png | Bin 0 -> 2832 bytes ...how-the-outline-focus-style-5-chromium.png | Bin 0 -> 2187 bytes ...how-the-outline-focus-style-6-chromium.png | Bin 0 -> 6476 bytes .../editor/various/navigate-regions.spec.js | 113 ++++++++++++++++++ 7 files changed, 113 insertions(+) create mode 100644 test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-1-chromium.png create mode 100644 test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-2-chromium.png create mode 100644 test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-3-chromium.png create mode 100644 test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-4-chromium.png create mode 100644 test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-5-chromium.png create mode 100644 test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-6-chromium.png create mode 100644 test/e2e/specs/editor/various/navigate-regions.spec.js diff --git a/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-1-chromium.png b/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-1-chromium.png new file mode 100644 index 0000000000000000000000000000000000000000..2a6711d7c1923a431bf114e666019ec868bd454a GIT binary patch literal 5005 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 L3+B{wuJ`{1=T30t literal 0 HcmV?d00001 diff --git a/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-2-chromium.png b/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-2-chromium.png new file mode 100644 index 0000000000000000000000000000000000000000..1a386b1de4b7ccf10bc82da525edc7986d7f1891 GIT binary patch literal 15635 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 =b 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 h1a15`nmg%x}gfGd|Bfg{|9jH^>Y9K literal 0 HcmV?d00001 diff --git a/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-4-chromium.png b/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-4-chromium.png new file mode 100644 index 0000000000000000000000000000000000000000..194ac80c5ba651c059a7001b773f68fd8601e76e GIT binary patch literal 2832 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 H&awXjL&0Sb literal 0 HcmV?d00001 diff --git a/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-5-chromium.png b/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-5-chromium.png new file mode 100644 index 0000000000000000000000000000000000000000..57edf4ff78e8f2f43c939553945d7ea12bfd25c4 GIT binary patch literal 2187 zcmZ`*X*io{7k-UW+J^2VX)Uel_o<+Yq}Vs@60k)-;%Ece1KR@t z00eW{$^`&+`G9Mvf;{+*$GTSofPxFg>VjJ=b!m)fKPXb^Se+}}n-bGluKcNmE_4Q)&Mc-$sU`^^_?_r634x2aFKX5r$6#ZPA1nZ-#Dq}EwRF&dZq z=JiCvTEDIB5fC3MscBO-1?XMgMEv;=`wx6I$~pV{57P;}LuXG&E#F>NRr)g*Q!YdL z7C{SMCmV!_6AfNp6N%0dC4`z`&H$)NC_hj3BPVMm^5T!GTl%f&bcnw}*#ES$X-x zGs^Zi=>xRN%B-TIqItdleLZfb3h@hFgVo-C_UnB`-_<_$HGNJKUL(a-BH z{bsXmM8v0hyqI9oTZ(qV;q=17!lt|B@_CigI>zG4!*-KKutA~^gSwtI57gtuG6`p{ zS3M$=)5meav)zSm*RFls5D;bm;PdT#eKn&SkEgdWL+Q=dL?YTde)CjnYN~iUp6Yly zUFkT?6?Lt$FfC0!iK)@h&>$wf#Vpm<)g7%E!1(!{0E?+%Fl7G_2yzDI%ig?!RSbk6 zF$ONkR-QMJQ_Z!o12@4J>Y!hy{dU=uBCR=fg zd@w!U0wjY@r*}-=nYd#bJDqK!3WFh*O$-gKFqn+hnDYejO3IVMuXT3X8`A7zWfOt% z@$q&x8)0bJzE{5~fjc)n!AveFDspjkZEF<1-D~OK0HM)n$IS34vb&Y;d=dYsq;Ao3 z$O(Dj!UdV5S#soetjr^4*j`+bCW*Ij%G~_^#q_f#>-XOGK>aV{*Zy{1ZWLPhSJ<9a zEo*EnX0xrkySrm&3$I&e?`+PMc6D_z=Ogip!{@+wFMj=XDhDkAB+$PjBO~uj{x0XG zrvimS37_XH>c?@nLqj)b@|{*?VTdN)mMEH^`AXMZN|0?#t5@^ALaxOY$)h@Gb*_}yKRm3^>gt5L6dZgS zy}fowkDN6;><-x4+CHzUdOu6{E@v>vmKq7Xg}~J*7S$qdwDW#k!&0)cg{fxLPxjhL z%!ztDX{eGD^fQf?{q(8kmv}UY(cz;<)5ao%e>Ef5hy4L9EiIDj4#!0B>Q>*0=*3|f zOFSNdV-z!)%t!aY3wh4+?xiYb=&ARK&rFVKFf#iIxdXO~|SnjcfxhGMVK!*)Uf!J$T)lb-UKlJ7*x-(}wzs#dmfB>sM9v>HF8+Szt#NVozto>$ zEVQX4s1v{Bf^U(43qVFj274}buS);;c-X$Esp;wL(1^KSIfc8IFj5t`=r9jx zYipjhDpGJ0l;l||TEVvG@YwyEc%G9hqd(&Nw?@ytvB3=Uu2 zB)HSA$;-=|MtwM}sHk}I{TUq{#5&W;#^%$|58-{Iqp*V!^Zlo$rltU~i07S=m30z{ zBC0b{sgDH%Qz zV|oBK)_5A(x#lBmv@msKLSEi%hJiu}vW^s59R%57 zKwm^l=ZMT9mV+igD4C8nyHTt9`SWK`qgt_QlC%PW@H7%h1zlerh?at~a!Y8M42bqf zb+Dj@`$M*HadD34|$*n2NMs?(B^k`6@3C1041qQkkB4Gk300&ie& zFcA6Q2rg=a)Qpiz!j8s3$+V`Rf}kj*Jx1MMf54M8>#kdyz`Mt~a53B-&QzE&d}(P3 zoH==UdB1~UJzn|9fWiVdB6kH${dHe>+(;XN_*nPhko3gj#*@3x;upZ-7ZnvnHII1+ z;sbL2HGhd6PvzIfuKK}XFztHVZwb`-(ls)qv!}EDjepTfrqt_k`#)29WCw8HFyu}g T)7t?b835*zqgB;KpQL{PLqR`r literal 0 HcmV?d00001 diff --git a/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-6-chromium.png b/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-6-chromium.png new file mode 100644 index 0000000000000000000000000000000000000000..3325fa78c5263c2bc101af4892d0b966f5d3e03a GIT binary patch literal 6476 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 literal 0 HcmV?d00001 diff --git a/test/e2e/specs/editor/various/navigate-regions.spec.js b/test/e2e/specs/editor/various/navigate-regions.spec.js new file mode 100644 index 00000000000000..5250828fe808c3 --- /dev/null +++ b/test/e2e/specs/editor/various/navigate-regions.spec.js @@ -0,0 +1,113 @@ +/** + * WordPress dependencies + */ +const { test, expect } = require( '@wordpress/e2e-test-utils-playwright' ); + +test.describe( 'Navigate regions', () => { + test.beforeEach( async ( { admin } ) => { + await admin.createNewPost(); + } ); + + test( 'should navigate the editor regions and show the outline focus style', async ( { + editor, + page, + pageUtils, + } ) => { + // Add a paragraph block. + await editor.insertBlock( { + name: 'core/paragraph', + attributes: { content: 'Dummy text' }, + } ); + + await page.keyboard.press( 'Control+`' ); + + await expect( + page.locator( '.interface-interface-skeleton' ) + ).toHaveClass( /is-focusing-regions/ ); + + // Check the Navigate regions focus style on the editor top bar region. + const editorTopBar = page.locator( + 'role=region[name="Editor top bar"i]' + ); + + await expect( editorTopBar ).toBeFocused(); + await expect( editorTopBar ).toHaveCSS( 'outline-style', 'solid' ); + await expect( editorTopBar ).toHaveCSS( 'outline-width', '4px' ); + await expect( editorTopBar ).toHaveScreenshot(); + + await page.keyboard.press( 'Control+`' ); + + // Check the Navigate regions focus style on the editor content region. + const editorContent = page.locator( + 'role=region[name="Editor content"i]' + ); + + await expect( editorContent ).toBeFocused(); + await expect( editorContent ).toHaveCSS( 'outline-style', 'solid' ); + await expect( editorContent ).toHaveCSS( 'outline-width', '4px' ); + await expect( editorContent ).toHaveScreenshot(); + + await page.keyboard.press( 'Control+`' ); + + // Check the Navigate regions focus style on the editor settings region. + const editorSettings = page.locator( + 'role=region[name="Editor settings"i]' + ); + + await expect( editorSettings ).toBeFocused(); + await expect( editorSettings ).toHaveCSS( 'outline-style', 'solid' ); + await expect( editorSettings ).toHaveCSS( 'outline-width', '4px' ); + await expect( editorSettings ).toHaveScreenshot(); + + await page.keyboard.press( 'Control+`' ); + + // Check the Navigate regions focus style on the editor publish region. + const editorPublish = page.locator( + 'role=region[name="Editor publish"i]' + ); + const editorPublishPanel = page.locator( + 'role=region[name="Editor publish"i] >> .edit-post-layout__toggle-publish-panel' + ); + + await expect( editorPublish ).toBeFocused(); + await expect( editorPublishPanel ).toHaveCSS( + 'outline-style', + 'solid' + ); + await expect( editorPublishPanel ).toHaveCSS( 'outline-width', '4px' ); + await expect( editorPublishPanel ).toHaveScreenshot(); + + await page.keyboard.press( 'Control+`' ); + + // Check the Navigate regions focus style on the editor footer region. + const editorFooter = page.locator( + 'role=region[name="Editor footer"i]' + ); + + await expect( editorFooter ).toBeFocused(); + await expect( editorFooter ).toHaveCSS( 'outline-style', 'solid' ); + await expect( editorFooter ).toHaveCSS( 'outline-width', '4px' ); + await expect( editorFooter ).toHaveScreenshot(); + + // Check the Navigate regions focus style on the editor document overview region. + // Open List view toggle + await page.locator( 'role=button[name="Document Overview"i]' ).click(); + + await pageUtils.pressKeyTimes( 'Control+`', 2 ); + + const editorDocumentOverview = page.locator( + 'role=region[name="Document Overview"i]' + ); + + await expect( editorDocumentOverview ).toBeFocused(); + await expect( editorDocumentOverview ).toHaveCSS( + 'outline-style', + 'solid' + ); + await expect( editorDocumentOverview ).toHaveCSS( + 'outline-width', + '4px' + ); + await expect( editorDocumentOverview ).toHaveScreenshot(); + } ); +} ); From 55a4ade64cef06915e4487d571e6f2d8c7e4b907 Mon Sep 17 00:00:00 2001 From: Andrea Fercia Date: Wed, 30 Nov 2022 15:24:39 +0100 Subject: [PATCH 2/9] Add test for the closed settings sidebar. --- ...how-the-outline-focus-style-7-chromium.png | Bin 0 -> 3261 bytes .../editor/various/navigate-regions.spec.js | 46 +++++++++++++++--- 2 files changed, 39 insertions(+), 7 deletions(-) create mode 100644 test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-7-chromium.png diff --git a/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-7-chromium.png b/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-7-chromium.png new file mode 100644 index 0000000000000000000000000000000000000000..29354ee2f6d57a16c4640b99740dae5af1d0df34 GIT binary patch literal 3261 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 literal 0 HcmV?d00001 diff --git a/test/e2e/specs/editor/various/navigate-regions.spec.js b/test/e2e/specs/editor/various/navigate-regions.spec.js index 5250828fe808c3..5f9f62143eb0d6 100644 --- a/test/e2e/specs/editor/various/navigate-regions.spec.js +++ b/test/e2e/specs/editor/various/navigate-regions.spec.js @@ -19,13 +19,16 @@ test.describe( 'Navigate regions', () => { attributes: { content: 'Dummy text' }, } ); + // Make sure the Settings sidebar is opened. + await editor.openDocumentSettingsSidebar(); + + // Navigate to the top bar region. await page.keyboard.press( 'Control+`' ); await expect( page.locator( '.interface-interface-skeleton' ) ).toHaveClass( /is-focusing-regions/ ); - // Check the Navigate regions focus style on the editor top bar region. const editorTopBar = page.locator( 'role=region[name="Editor top bar"i]' ); @@ -35,9 +38,9 @@ test.describe( 'Navigate regions', () => { await expect( editorTopBar ).toHaveCSS( 'outline-width', '4px' ); await expect( editorTopBar ).toHaveScreenshot(); + // Navigate to the content region. await page.keyboard.press( 'Control+`' ); - // Check the Navigate regions focus style on the editor content region. const editorContent = page.locator( 'role=region[name="Editor content"i]' ); @@ -47,9 +50,9 @@ test.describe( 'Navigate regions', () => { await expect( editorContent ).toHaveCSS( 'outline-width', '4px' ); await expect( editorContent ).toHaveScreenshot(); + // Navigate to the settings region when it's opened. await page.keyboard.press( 'Control+`' ); - // Check the Navigate regions focus style on the editor settings region. const editorSettings = page.locator( 'role=region[name="Editor settings"i]' ); @@ -59,9 +62,9 @@ test.describe( 'Navigate regions', () => { await expect( editorSettings ).toHaveCSS( 'outline-width', '4px' ); await expect( editorSettings ).toHaveScreenshot(); + // Navigate to the publish region. await page.keyboard.press( 'Control+`' ); - // Check the Navigate regions focus style on the editor publish region. const editorPublish = page.locator( 'role=region[name="Editor publish"i]' ); @@ -77,9 +80,9 @@ test.describe( 'Navigate regions', () => { await expect( editorPublishPanel ).toHaveCSS( 'outline-width', '4px' ); await expect( editorPublishPanel ).toHaveScreenshot(); + // Navigate to the footer region. await page.keyboard.press( 'Control+`' ); - // Check the Navigate regions focus style on the editor footer region. const editorFooter = page.locator( 'role=region[name="Editor footer"i]' ); @@ -89,8 +92,8 @@ test.describe( 'Navigate regions', () => { await expect( editorFooter ).toHaveCSS( 'outline-width', '4px' ); await expect( editorFooter ).toHaveScreenshot(); - // Check the Navigate regions focus style on the editor document overview region. - // Open List view toggle + // Navigate to the Document overview region. + // Open the Document overview. await page.locator( 'role=button[name="Document Overview"i]' ).click(); await pageUtils.pressKeyTimes( 'Control+`', 2 ); @@ -109,5 +112,34 @@ test.describe( 'Navigate regions', () => { '4px' ); await expect( editorDocumentOverview ).toHaveScreenshot(); + + // Close the Document overview. + await page.locator( 'role=button[name="Document Overview"i]' ).click(); + + // Close the settings region. + await page + .locator( + 'role=region[name="Editor top bar"i] >> role=button[name="Settings"i]' + ) + .click(); + + // Navigate to the settings region whene it's closed. + await pageUtils.pressKeyTimes( 'Control+`', 3 ); + + const editorSettingsPanel = page.locator( + 'role=region[name="Editor settings"i] >> .edit-post-layout__toggle-sidebar-panel' + ); + + await expect( editorSettings ).toBeFocused(); + await expect( editorSettingsPanel ).toHaveCSS( + 'outline-style', + 'solid' + ); + await expect( editorSettingsPanel ).toHaveCSS( 'outline-width', '4px' ); + + await expect( editorSettingsPanel ).toHaveScreenshot(); + + // Make sure to leave the Settings sidebar opened. + await editor.openDocumentSettingsSidebar(); } ); } ); From aef977d08a90813826e35c386b60562c5402ab80 Mon Sep 17 00:00:00 2001 From: Andrea Fercia Date: Fri, 2 Dec 2022 12:31:40 +0100 Subject: [PATCH 3/9] POC: hide elements and make text transparent. --- ...how-the-outline-focus-style-1-chromium.png | Bin 5005 -> 621 bytes ...how-the-outline-focus-style-2-chromium.png | Bin 15635 -> 3509 bytes ...how-the-outline-focus-style-3-chromium.png | Bin 21604 -> 4010 bytes ...how-the-outline-focus-style-4-chromium.png | Bin 2832 -> 542 bytes ...how-the-outline-focus-style-5-chromium.png | Bin 2187 -> 280 bytes ...how-the-outline-focus-style-6-chromium.png | Bin 6476 -> 2276 bytes ...how-the-outline-focus-style-7-chromium.png | Bin 3261 -> 552 bytes .../editor/various/navigate-regions.spec.js | 35 +++++++++++++++--- 8 files changed, 29 insertions(+), 6 deletions(-) diff --git a/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-1-chromium.png b/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-1-chromium.png index 2a6711d7c1923a431bf114e666019ec868bd454a..85c04c546b505e361a6506679b18aa4c033d9dbb 100644 GIT binary patch literal 621 zcmeAS@N?(olHy`uVBq!ia0y~yU`YV7Z8_M0krT&S>W?O9(_UoD)g*_>1~L)(#G!$N`%_9QqqHKzg9={QN;w z1-Djgo;mYa!j{3o8R8-&Yp|(>2No{3;nlSK50`r#$g>SAZ^8p$^X7%XSom!5f6ou; z^Oo1=98XTOUw`xY?!#=zVN0yLK#}am4~mWrMo0k)ch){ee@V$_Uu{(<0hKU#y85}S Ib4q9e0P9ne;Q#;t literal 5005 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 L3+B{wuJ`{1=T30t diff --git a/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-2-chromium.png b/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-2-chromium.png index 1a386b1de4b7ccf10bc82da525edc7986d7f1891..53437eb09ce836c2fb8abf9e156c471ec6612352 100644 GIT binary patch delta 489 zcmbPSwN-k8ay@U2r;B4q#hkad4ZE%s$h18SKY7dFlzoGM%Z=>F<==RM-$(9gRcJaY zrx04T{lYEX_6`4io>lJh{2JOg{r;2K`}_X$GB7+iw^!blfq@}`|A-(1gTo^Z28IQz zUVd$skGJo;!N|byVVT_gdH;XEEn;C{m|(%gz_0?WPPLC=^F3=8#>o$?1Jyz=zhKOH zTw~cgkAb0J`?N|~+eY4w#ms^p3=H}H60+_4uL2EH*}T!(5TyP`M3$6oL$1!}TSn^_ zr!z1dI9p^1G}l80s3-(%|EIGT6X)nJKR5mI3rU9Xk9SoVsvi`U2<)%_CuPg{AnRTt z!<$A6tB&dR`is>WV$NFgG}sEb1N|^r(B>l00wI$Z26A>bJ@Xg}Oy3(Yd~=YIJ+fSX zzPmrej#=dr4Alm`atF+&Rp!pTe$f~h0BJixHmgkDXl*Kg)uf8ywne<(T>a%Bxp(J` z*6V(@s$!Ea06TH=LF?6GtCn44zHtmH!N71wXSy;2L&Ic7n}?epSTiwVBY=)NYn)Z} v_rb@Pl}Gr1su#xe0o^MEa`aSipuUoCRWOfc*t|LdD8%6D>gTe~DWM4fE-t@y literal 15635 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 =b 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 H5BlzJ;p@tC literal 21604 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 h1a15`nmg%x}gfGd|Bfg{|9jH^>Y9K diff --git a/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-4-chromium.png b/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-4-chromium.png index 194ac80c5ba651c059a7001b773f68fd8601e76e..8908c2d25ff1cc9dfcc72eb9b023254a16b6b672 100644 GIT binary patch literal 542 zcmeAS@N?(olHy`uVBq!ia0y~yV3Yu|!#LQ0q{!+{6(Ge}9OUlAuXhA7V%e|+{}Yk{1#@$*&iZ*xwmW5yUsaA#F(*5OKw&yF_m1tHFn-1ub+|ca{Db#tFU`t{ RUk;3L22WQ%mvv4FO#l+u#{vKV literal 2832 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 H&awXjL&0Sb diff --git a/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-5-chromium.png b/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-5-chromium.png index 57edf4ff78e8f2f43c939553945d7ea12bfd25c4..65bc0f61d1b597afc0a621acb9f3b35f639d9bfb 100644 GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0y~yU`YV7B{|rDWL-|gW*~Ln)5S5QV$R!J8+n-wMOY6S zFEZU_wdnOLjdMpPtk;P&o+-Px;_LCkd!K=785BN8*n;SUawZ-i<>1r62&6h}|Jy(N z8nuxbBqRO!@6XEJ5OGcepa_E@Bgi@hwF5ws;RuTakZhR208%U+Yq}Vs@60k)-;%Ece1KR@t z00eW{$^`&+`G9Mvf;{+*$GTSofPxFg>VjJ=b!m)fKPXb^Se+}}n-bGluKcNmE_4Q)&Mc-$sU`^^_?_r634x2aFKX5r$6#ZPA1nZ-#Dq}EwRF&dZq z=JiCvTEDIB5fC3MscBO-1?XMgMEv;=`wx6I$~pV{57P;}LuXG&E#F>NRr)g*Q!YdL z7C{SMCmV!_6AfNp6N%0dC4`z`&H$)NC_hj3BPVMm^5T!GTl%f&bcnw}*#ES$X-x zGs^Zi=>xRN%B-TIqItdleLZfb3h@hFgVo-C_UnB`-_<_$HGNJKUL(a-BH z{bsXmM8v0hyqI9oTZ(qV;q=17!lt|B@_CigI>zG4!*-KKutA~^gSwtI57gtuG6`p{ zS3M$=)5meav)zSm*RFls5D;bm;PdT#eKn&SkEgdWL+Q=dL?YTde)CjnYN~iUp6Yly zUFkT?6?Lt$FfC0!iK)@h&>$wf#Vpm<)g7%E!1(!{0E?+%Fl7G_2yzDI%ig?!RSbk6 zF$ONkR-QMJQ_Z!o12@4J>Y!hy{dU=uBCR=fg zd@w!U0wjY@r*}-=nYd#bJDqK!3WFh*O$-gKFqn+hnDYejO3IVMuXT3X8`A7zWfOt% z@$q&x8)0bJzE{5~fjc)n!AveFDspjkZEF<1-D~OK0HM)n$IS34vb&Y;d=dYsq;Ao3 z$O(Dj!UdV5S#soetjr^4*j`+bCW*Ij%G~_^#q_f#>-XOGK>aV{*Zy{1ZWLPhSJ<9a zEo*EnX0xrkySrm&3$I&e?`+PMc6D_z=Ogip!{@+wFMj=XDhDkAB+$PjBO~uj{x0XG zrvimS37_XH>c?@nLqj)b@|{*?VTdN)mMEH^`AXMZN|0?#t5@^ALaxOY$)h@Gb*_}yKRm3^>gt5L6dZgS zy}fowkDN6;><-x4+CHzUdOu6{E@v>vmKq7Xg}~J*7S$qdwDW#k!&0)cg{fxLPxjhL z%!ztDX{eGD^fQf?{q(8kmv}UY(cz;<)5ao%e>Ef5hy4L9EiIDj4#!0B>Q>*0=*3|f zOFSNdV-z!)%t!aY3wh4+?xiYb=&ARK&rFVKFf#iIxdXO~|SnjcfxhGMVK!*)Uf!J$T)lb-UKlJ7*x-(}wzs#dmfB>sM9v>HF8+Szt#NVozto>$ zEVQX4s1v{Bf^U(43qVFj274}buS);;c-X$Esp;wL(1^KSIfc8IFj5t`=r9jx zYipjhDpGJ0l;l||TEVvG@YwyEc%G9hqd(&Nw?@ytvB3=Uu2 zB)HSA$;-=|MtwM}sHk}I{TUq{#5&W;#^%$|58-{Iqp*V!^Zlo$rltU~i07S=m30z{ zBC0b{sgDH%Qz zV|oBK)_5A(x#lBmv@msKLSEi%hJiu}vW^s59R%57 zKwm^l=ZMT9mV+igD4C8nyHTt9`SWK`qgt_QlC%PW@H7%h1zlerh?at~a!Y8M42bqf zb+Dj@`$M*HadD34|$*n2NMs?(B^k`6@3C1041qQkkB4Gk300&ie& zFcA6Q2rg=a)Qpiz!j8s3$+V`Rf}kj*Jx1MMf54M8>#kdyz`Mt~a53B-&QzE&d}(P3 zoH==UdB1~UJzn|9fWiVdB6kH${dHe>+(;XN_*nPhko3gj#*@3x;upZ-7ZnvnHII1+ z;sbL2HGhd6PvzIfuKK}XFztHVZwb`-(ls)qv!}EDjepTfrqt_k`#)29WCw8HFyu}g T)7t?b835*zqgB;KpQL{PLqR`r diff --git a/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-6-chromium.png b/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-6-chromium.png index 3325fa78c5263c2bc101af4892d0b966f5d3e03a..4a729b49033480679e1cf215aacf3b4297ef601f 100644 GIT binary patch literal 2276 zcmeAS@N?(olHy`uVBq!ia0y~yV2o#AV2a{k1B!G^a9Pj5z_HrX#WAE}&f8lXeIF+< zv?V^DGL13gFw;!NPRAR~m+yA2b!ZZeXxPGYfMFjWr%*u4f%O~aFYliGDErg1>2t3Z zlp6Cf_`C|YWk~2eBCepYkD>AFZSKckT{ki(TnpQuAHTQk6DvoDzJo&zBhw>p0fG32 zh968U5T%SC=_|G7e%z1p?-6ej*#6C#e^vOw@f+Rm@Bfb7*eod!Z*ecKMqaB$2087M*WY2@ zz@h(E=KlXP2Pdx=)<5vwO5*<8l|V-Mrvtp80HVFG4;=hqXJhNXmpLJj?^toTqB;*qBlaY`rjey85}Sb4q9e0I_D!;s5{u literal 6476 zcmeHMYgkh0zPH@jOcy;f?sBZuX>zi5DU+C_sLX6DBQMlA<(Mgz7c>=2R8&y9Oj%=T zVreSMbWtl)%Nr^vnk8QGmbXyQ6cABRP!Lc!i#gA8zMMVJ+2_Og)~EG6YpwTvf9wDM zUEb$icTRb^ZQZnElb)X5R``jdKkMnOL+a_RKlgsSuE)GX+`)XTrOx4lHsZTVgq^liUzCL!qf3wG%u7O3;NfV!}JJs}yz5$s}%@Dko zfmCl5_|%li?4i>a@4TD5pPRe)oAs*AnA?~1zt|#E-+2G-izoZRm?~zV_4Y0TL)H)> zcT%8S)HH?N^cc71Z&wWmU#Rr-G+*5T{kU#%!@geLLrSP}X!kbex`mpdD9(JOi@kKi zzHb}#HoPiSQcPyI+(x9RqOjrpGsCp?)r)sj#-K+#k+2mAQPp1HNf zloZ^V)$k&zD+g@lUF6Z;31W=#Wu4ieo(KEAr6Ymq!5^!_OpioeFefZDL#jcu-4qyX zikaS1Jsgn7G{+ybw#JAd{%fjX25XUNLCMO>I(V*X-;Iq%ED%xI=^0Z+A3W$=Vd)c) zz$>v~eER)BMNm5_4weQn<7OgU9EQ(hyA84<8Ef*f|*Q&zqw9MYF<$g^0)M96sINL$Wjph`*TTIQx9LW}w8U{O&i0z5}KU z%}@NbCc<~G7x~eibSGP9yu1sb2smQowT>z9ipzs9&nF5CO>Kit7#Nw8D_M>QJUu<( zq`s$a0y35rHm)g#tqBPl83nVp^1&O??TgAEbb)LtpY>s=&KPXn@j%9cf|68A?e^@5 z%mFW`HPGcyG<~u4)vs^9+iYUf_4;BC8y^n;2pLmYwzoA)NR?()0swuXYCkIkP-zK3vD!G^n_CRg7bV`)fy0lx|@$ zrQn+W#*meTNoBK9a_>6o-{vF7YOh4Dr=#PU_jV5NX7-jXCTWxcS=*j;OJDG@sKxgt zg4(IH&gEew0X%e!N2#jhIhawl#1=7(<~<1yZ6%LDSQC)4g{vwNG2}VkQO+Q%yi# z6?_(hjiv>^{q0NOi}4iz-vxUtlqX0*6HV7l9b;w;7|Ct-cMC@=QRq5emSuR+w~6w( z93$dNi>Q=6Hb$nbPFv|zc?*z>5n)2#0RRO~kWSN=`rU!?p@5KWQ7p0t#l;yv_r?uy ztxQ1B(~nckPm;Exv*nc+ny*{7(>Tjz%USbu87p#V^pU=i(+@hH0v&(kYUp6;2P_?) z+#P_Qf2iXcU{(>w)6I2N2x-2)L039iud5MHN6v}n8{p{awkY`^lf%_ zb}=&=dyU7)-k6oi6ckXFx|t`b(S65E3W-{c!`jjS_|m)E!^_L#^|76&-OL{DMAz;P zWTtiNI*3S?X6_`|N?sHfoFsXWj~p_#@`|X8;LsCHo#LZN(;U2{yDDrz+LxYer(^p# zj+>v4<2dLPq2?$WAqlOk&O@4Kiz`#<*c zIWzXh?|zd}R8(|6ZZtUT^5x6<(eZ_5aU;9owjo`Qx+pM4HwADf=r|4615`dYY@mo& zMiY1RK6cd^fk%Op1309s%?+mNGbH|f)or*KL9w&9=MOV9v3dJ%>a?N~l_N-WfwKfI zVC838B4BGVB1aJ?Whk*SyZC!zsuTb{OtV-Vl6N?8d|2ynzj=PmO_1?<5QfrIL;*M! z*$`XSsG8lf>&Oqfd@_X2-EVDewG4kk@3v=K!uNXSKHzFKit>7jf}vdti-_pzNtRav zFhVFv^3jPz|N5Br+h6UG-mqBxmO2*gZXQ2z?XJ1Aqy9$2hz5TA$m@$ac40r0f_ne> zX_Tm4tBjg_>ycwy7`x-QwAkhiCP6H+gK`c9%ge(wI#9>s{9F`uJ;6FIOq1OE3*EDa zHV%cCH`r%dA<%1hAP1K_@0x<61^KuTrId$RiI3wZDRgM&M&9Hc3OrtfpcG8DqzK*_ zBM9CCcqx!Fmu_I`B7>FR50r%}rba9W48bUt&TRc)Vn9FU$t#ogPnm&f4to_GJVwXh zpzafb-0-rn{LGy|$k{MfrR3<2{dK@&NG-)H-!b^Z^V4;+FH54k4lyHQVgQ@Y=68X6 zx=b1uZd$h6(B?=$k}!pURgKmS@*!xyjr5ZLmZ%xhyRfcqTXw(wzUi4PZb5|p0 zJ0QD*8x;)_UMh0+66vrOV{$&~CzmxL!V2z)6O$#$3Yvp@t`gf1w+c>ombYEoX#Pm& zHE6+fCW2+cSb0y5|8yq@$nCtOR}DR{@Z8Z}#?Bo(`k%U`pU2NvD}hYNMI_C7!%0TT z3peT(-fm`3&I$Kf<;VO?idcxQxH8qs%a;&PBFFg`y9Jt>?jDpi*YTM@t~Q$2anQfM zDz=JN#^>{^s;cPxR9lUC$=TAA-rfTS3MO9!7?e8}ixr(vJj~6@s|0o*OX6`LR{hSM z>mM7Vw~O7~vu!*{!^?j&k2uki5Q#iGbP-WoI#?Y(?6Y<9qmu6V0(jxAdiw_|hI`LO zGFB%mxdrhBM~^=+`t+o;h<`6u@2~ecD+~5fnxFJv8m;5l4y8&U z;#}I}<%z?0K=fqMdqt0x%HY#IUxniNx}DSjf?6R#UfHFG!A2IxI8Pe+JdMO<@y^^#O`_5bv z-yNH>7Js(Lsj*f+ZPSH;k%Lp}fjx?@#qxMxPLEja&Tn|_1drCd*5o*1u7pPktOGcc z%rEE-rHvE!E#bv)sMJn5gtk&%-7oY8?F8YzIiA_6lW;Vy)WuTh_O+cYATy*6g` z3?h`Eh!}6chJeoHKJ2!xTkA>XY?tukPHE?*si*OU+*(>?MO~pPYQnm>;W#}!GH!7k z#S8#Of|3^e;iPTdB?Hyo#pj0>3c8ZfVRDs1h!KX)(_21NCkq?y-r<-uo&+^P!N*t@Z@tz+_`lSSeb+Hf+L;sva&|Hjd zvSIV@>Z@XB=D)<8DFGdMw)}gF{Izcy0YP6(SGH&1+MBCU zLzz09akGQYR91ow#f**xrVe^14nJPLaWyK0ZxbMMp-6<4!D*v-raiM#YlI4!bO%|% zHA@i#C1_0Po@8ap*z$@DP8wIEa}eUeIJ{ecBBhHUeSeoYBfR@jW@g%tVG~g2pkw!& zxWSdF7%8>0qfz?UKY9Y)0DhiN`HfxXHoS`=@$wz-C%F|wc8oyHJI7@vs1kHOnD=bW zw)Tq1&hFVVbD1T2hZ%=>aKckcqt#zZdeZ!2-QC?Q;;L`m3QC{H?}dlQXHI9J@`j*U z)sso3^QDJlIoyErwlb}CJIv^E*V%DLYO?rRu_lh!O3KdjbNkrTTCEr~%$vu3qMKy# z4p5zP%g3alG%;%47~KG(A4syvC25nEi2?@y;7Jns%8v{>vA9$=nx}bWBS5fhvbha? zk^b0sO-r07?k-C$IYK+RoD5aI84AwS(nDhE#gdpE)dE9IJU)CYM~E@{*TSzrY8tA|lgjoFcqxm|hOh#V}%78O(>lM}f}=|ewrPl4CggcWy-%lY5c5=Xmdc3lXvJ*#V-Plmheo6o;E%;1JFlAz6Q5ETWuYvf;DU}8 zPWI*$2GqGe?qu<;TjT`x9Hgotwqc|h4zWLL<^NqP*KU#3?5x=vdMj>$ h)BpWX;hNT{6ty^0eG?)C{*vgyk9i#}`{#x0{|TQoLx=zX diff --git a/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-7-chromium.png b/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-7-chromium.png index 29354ee2f6d57a16c4640b99740dae5af1d0df34..40d4d811b4d8e6294f356e5b9a49cfb86d854e5a 100644 GIT binary patch literal 552 zcmeAS@N?(olHy`uVBq!ia0y~yV3Yu|!#LQ0q{!+{6(Ge}9OUlAuPKJLyO(^{m0u4r){6B8zMR5{`A*x1QRA-o4c0h%>CQ@ zZz>;9TWcLHDUl$r#k_gVX_y?(27ZX`!ICpdBh&jCW^Z|ylbR4!Z?HK0^|>%Mwj1rI z4s3}te|dG+=BbU0-y9PfBpMl$SlBuQB^2Be64?LnKkM647g><6#mxMs8R$*oJrlzA z?DN7;TQ#l$jn4o2^&`|#wrAuN9)2m2d7Sx8C&cZm=WSi{c2PIBAm4 mpO=0Ua8Ne~xf`q{j`6ph_R+&0Peg!G&*16m=d#Wzp$PzO*vNDM literal 3261 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 diff --git a/test/e2e/specs/editor/various/navigate-regions.spec.js b/test/e2e/specs/editor/various/navigate-regions.spec.js index 5f9f62143eb0d6..78a413b2ab72cc 100644 --- a/test/e2e/specs/editor/various/navigate-regions.spec.js +++ b/test/e2e/specs/editor/various/navigate-regions.spec.js @@ -4,8 +4,12 @@ const { test, expect } = require( '@wordpress/e2e-test-utils-playwright' ); test.describe( 'Navigate regions', () => { - test.beforeEach( async ( { admin } ) => { + test.beforeEach( async ( { admin, page } ) => { await admin.createNewPost(); + // POC: Make all text transparent to ignore different font rendering on CI Ubuntu. + await page.addStyleTag( { + content: '* { color: rgba(0,0,0,0) !important; }', + } ); } ); test( 'should navigate the editor regions and show the outline focus style', async ( { @@ -36,7 +40,10 @@ test.describe( 'Navigate regions', () => { await expect( editorTopBar ).toBeFocused(); await expect( editorTopBar ).toHaveCSS( 'outline-style', 'solid' ); await expect( editorTopBar ).toHaveCSS( 'outline-width', '4px' ); - await expect( editorTopBar ).toHaveScreenshot(); + await expect( editorTopBar ).toHaveScreenshot( { + // POC: Hide some elements we're not interested to test for. + mask: [ editorTopBar.locator( 'role=button' ) ], + } ); // Navigate to the content region. await page.keyboard.press( 'Control+`' ); @@ -48,7 +55,14 @@ test.describe( 'Navigate regions', () => { await expect( editorContent ).toBeFocused(); await expect( editorContent ).toHaveCSS( 'outline-style', 'solid' ); await expect( editorContent ).toHaveCSS( 'outline-width', '4px' ); - await expect( editorContent ).toHaveScreenshot(); + await expect( editorContent ).toHaveScreenshot( { + // POC: Hide some elements we're not interested to test for. + mask: [ + editorContent.locator( 'role=textbox' ), + editorContent.locator( 'role=document' ), + editorContent.locator( 'role=toolbar' ), + ], + } ); // Navigate to the settings region when it's opened. await page.keyboard.press( 'Control+`' ); @@ -78,7 +92,10 @@ test.describe( 'Navigate regions', () => { 'solid' ); await expect( editorPublishPanel ).toHaveCSS( 'outline-width', '4px' ); - await expect( editorPublishPanel ).toHaveScreenshot(); + await expect( editorPublishPanel ).toHaveScreenshot( { + // POC: Hide some elements we're not interested to test for. + mask: [ editorPublishPanel.locator( 'role=button' ) ], + } ); // Navigate to the footer region. await page.keyboard.press( 'Control+`' ); @@ -111,7 +128,10 @@ test.describe( 'Navigate regions', () => { 'outline-width', '4px' ); - await expect( editorDocumentOverview ).toHaveScreenshot(); + await expect( editorDocumentOverview ).toHaveScreenshot( { + // POC: Hide some elements we're not interested to test for. + mask: [ editorDocumentOverview.locator( 'role=treegrid' ) ], + } ); // Close the Document overview. await page.locator( 'role=button[name="Document Overview"i]' ).click(); @@ -137,7 +157,10 @@ test.describe( 'Navigate regions', () => { ); await expect( editorSettingsPanel ).toHaveCSS( 'outline-width', '4px' ); - await expect( editorSettingsPanel ).toHaveScreenshot(); + await expect( editorSettingsPanel ).toHaveScreenshot( { + // POC: Hide some elements we're not interested to test for. + mask: [ editorSettingsPanel.locator( 'role=button' ) ], + } ); // Make sure to leave the Settings sidebar opened. await editor.openDocumentSettingsSidebar(); From 6941bfb83268b24cdff312e7b1fbe8955d3921a8 Mon Sep 17 00:00:00 2001 From: Andrea Fercia Date: Tue, 6 Dec 2022 16:11:04 +0100 Subject: [PATCH 4/9] POC: add utiliy to mask elements with some offset. --- ...how-the-outline-focus-style-1-chromium.png | Bin 621 -> 536 bytes ...how-the-outline-focus-style-2-chromium.png | Bin 3509 -> 3386 bytes ...how-the-outline-focus-style-3-chromium.png | Bin 4010 -> 2190 bytes ...how-the-outline-focus-style-4-chromium.png | Bin 542 -> 414 bytes ...how-the-outline-focus-style-5-chromium.png | Bin 280 -> 281 bytes ...how-the-outline-focus-style-6-chromium.png | Bin 2276 -> 2266 bytes ...how-the-outline-focus-style-7-chromium.png | Bin 552 -> 414 bytes .../editor/various/navigate-regions.spec.js | 86 ++++++++++++------ 8 files changed, 57 insertions(+), 29 deletions(-) diff --git a/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-1-chromium.png b/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-1-chromium.png index 85c04c546b505e361a6506679b18aa4c033d9dbb..87f30191cc89123afeb87c86816fb70dfee6b6c5 100644 GIT binary patch delta 230 zcmaFMGJ|D;ay{dHPZ!6KiaBrZ8uB#-h`2f$6VU}!j6lXJUF&i07#kGFPT_S-(U=s#|AyYlWi>)$oyHyRj$ znmfKq8!SFOg_jk`PB4%*02ye=$i~1hqn)=bA#k!hqlEH|<1gw1Svxp@k_T-5aOiK) z04ZQlP&)u5KYtKa0jtwtKl50^mchY!;>TqD<$t)`>p*5Uth@=gXY=NTKtFu8_`m0e z^m)tcbB-sc*{{F(eD`6t$qI}nW*|Si@q-+-!3fDAP|^wolzjHpR&^3k34^Dr KpUXO@geCwoZF(F4 diff --git a/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-2-chromium.png b/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-2-chromium.png index 53437eb09ce836c2fb8abf9e156c471ec6612352..1d58f60a1b2426aee5988102ecd1fe81a137fc4a 100644 GIT binary patch delta 217 zcmdlgy-R9>N{=&;Y)fpHX>fhylVPs%nsBg4jVqox)0kT6(ZS8C7YkPJuGcY8Ce=hp@ zHP;d-myv8)^}}Z0`$~2Oh68%nZkK+(Tg1Y^Fae}*#l~5&jGF`4jo3CTupeP@x%%bR z@v7bLz)AzADFf{>o3^-eC&WmN(}D~P4v#n(7#0Y*1Fa6d%XmdWP;<4I{8k{3!PC{x JWt~$(69Cf!P@Mn( delta 448 zcmdlbwN-k8N_~x|i(^Q|oVT|PyRH<-v^@+zdCT9FeS?6@jqJ$f-*|%GNA77=XgVsV z5L&hU!Y$qQ4gYevp!P@qgv?Y7mPWNYb<-` zF)$QtpH?Yr+sNCom|4(+fg#^tLbiSXRiG&2l}j*G z8}!N@Fq>AHJM;QQW1z3oc7kkGnS7APOwOc=;kHG*-(3CWAgOofjMnRZwyI*2E&#i3 zvLMrHu~o}1GT%4`m0)1FqcdHZfuUh@Akz*uy><~f_XH<=G75EAqG!ZKbLh*2~7ap7^)Ef diff --git a/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-3-chromium.png b/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-3-chromium.png index 2800d881cd47b601e8aeefbdfe877775b3fa8971..1f079c5c20c9d15b14c2fb3d73525d1b49a75692 100644 GIT binary patch literal 2190 zcmeAS@N?(olHy`uVBq!ia0y~yV3cHFV2a{k1BytS7<(`^?TJQe-^Y`IqRpuq_c_ zzt%B2zIX@2_22jV?B(zMjbRF+hdYLm9elUjOJmd1(q^W9Pj0wfnss~{B+55M7##Sj zxApKO#?cTRn8Z${M7Hwqx5U`%GiOGo-TW)@plt4~jj1OYR&G|^tRu!#u-E(T2D;{8 zDtQW2YK;)1WVi9Z-gWNG8Kcwhjx%h3eWgzqSpLq{ote5Zq2YCGRy#1e(!AUyA*in; z{{Haoo0+lk_u~D~GWs;I3`zHX_U~R3OOhd)c_&YamES!U0+BX)UN z&Ro}L4|fA=l-*bO?5ESSaw8#-DXDV##P?U;|H$>=^rn=CD|c<|Zt6H3gBS9DStpyD WHwW~o&jhwJ7(8A5T-G@yGywoa9<~Yq literal 4010 zcmeHKX;4#H8U>NyD2OdR$SStbV2^`@Kv-0QttdJ|5Fv($iMbdDT$JFcdtZm6cV2D=Uh-Wc249adA*y?Dg!Yv1VGlfr7k z&5?@cfw-x42Gmq7xC6Sw?{0pbR{WD3;U(CB_UrrDQ^9yrQRKSWul83zeG>H}#yjy3 z!rMD&oaW$hz7g)3Z1ZQO=%eA*v&3n6sTaxysFA@80wtRw# zZ{?UeszA9SraHLnA6m&56hVQ!kSVLkZ3u-_h!0LnACxFf#p21*8myFGEiEf(?)Mtr z7rHB;qO-xotZ|CitcbccJw5ISYyP{(Zm>UZHr)27|4%+L1}dZ&Xy;^WI2F7LjenrA zhZe{bG?>)dp0)a<2>A_I^0zi_uOBFV%4Xx8Owxj#gS2luUA$*$WyRo!n_i%MYtPJ% z@p?p}t&PWPv)}afJuLLf+Zsd9co!;{%g5^yH{|=TH_)@QvtvDe963xn^f+@G`MYRi zElPrlHvbGFqt@2w{Mio+Gd)6Kaaj8u{>(@_1A>GE!5FWQ!5j0fbRnB-$lwmjV1-;B z4maowfcn1Z;4t#DD(cErTQ1Yf2AM)ODV zsDV5lkNBaltIN;j%6zGVqa&U|si_c3-S2!pe=OB3(@+~mQm!nIlPgIJ@87av1yFcw zY{f2I&1oTlE$u7!VK5kG7mxR+e`Am6?d_eL8mPx&vCzW8!U1JpGM(Gglf&Sg;UbM_ z6b`Petc)b#(hexO)o}_43Xh2?KNl9p5X%aiG!ET;)bfzY6i6iJtgWq07sCSAN?zYT ziovj+Jn_xV&1KcpY^8nXRME7(jK#u$fVj+#;B>hgz^E8p882Ze=#Y%=?(QORAGj*N zkWd8W(CNi=I(_w9e#Y44-LmDr$~8V1{@7(VSd)K9M$F2G7*7w6su?@k1`iCsp`oG8 z?pne$?{Mh#`ZM&sF^}a6g?N!xzZSSnrHZ>b@Ft@q4+dWq;V!9EYAkj=9|S?du$i_KZg@TrRhBs5u=MGkHM62QxQ6J(NSE8IGN= z9kn;25!g%b%Xd*N;5&Ej)HWr|Dm)Ls28Tkw&Q2&XS1d{f0<5&%0S5{c0@Lp=o6VEz50 zWy_(IrAc;0^z`6g+YMkjyy#Gf!m;n~Eb>7bXpi5*QHn;|^Ei=VRn^ti0L~@k$^ek- z*y=#~ZW1(5lu&Pw+~SK-O;l$AxB&O@QBjJwv??DT9})n?IEb{%Q3C^;5Ix!!fIk44 zo^qQA4|~dzXMeQbuWRL@NQ4N$@B)F57W`FEO3L8H1LobWw_T|<*Xsv%{AEp3Lxj^q zKmxN>N|DKA)aa4#YYWeuJ$qjwk)%Dj9`c(71xZ%S3&mpB2=i&+3?1E^+AyGJ?~t)D zC&1wWa~2mD6Ws5eClUqu?&*6sYofjm`HTj_6+1t5h7LH6T6$NeK=oa?bg4{VUw?0( z4odxJYUJeRGTLt0aAv%B04}LmqI$C@O4@l%OBXfxW3Ab%Z$g2&;Up4k*Xd`+K=y8| zl)rfKVt17EG(ax@$z0$dUcI)DG+I|40#l6GFCT$ir7Hx53#Rc~lp;4H%(AgHn+CG;q!VrL3bDfFHSM z&z>JntzBc7>UPe_q)Q|UB<-dvDDnV67?3y?o9*~|A^z337Kma$22d_hoLsu3T4!tf z1p*kbRMAObt`5cB&;fjsN(r85blPQy zpvy+7+@_|c1c9rCYRM1V5bzq{%IxfAmzej%Spt+j9E0(?vo~hs{yloNhK_jMuMORo*vm=I`R~#HTY~wRm`X z^85Nu&n+#3WzMthV4&J6F)lOQTgndKOJ2NcyrUAuw!3OA7NS5V2*>MjT~celN!Q*)3bL|ubo_7aiCH-6zzwR-Y6HK~ zO=5$aT^(KtSo4c+_R~l9KWjlaAE!i}k6qV4|1*xpmFf|_Z&M%dJ>?Ak!PSl&M7x#j H5BlzJ;p@tC diff --git a/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-4-chromium.png b/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-4-chromium.png index 8908c2d25ff1cc9dfcc72eb9b023254a16b6b672..5d46c60cfc3170ba6a8939810767fc3bfa519458 100644 GIT binary patch delta 182 zcmbQoGLLzJVPu4-i(^Q|oVPa(`I-VmTpjl%X20{&E^qBVe9ndUX`@G))q={aCw(O@ z=SHeG9C-SIx#6>rgo3hxL)yQ(jdttY?=a3eu*2Sdp00$#=gkTCj`f8z{Lg(HzlC-3 zLq?Iwd5m%s_X|wUVpPILaT`86tN$9PV|mI!hM9(U#iCg~A`Bed5*m6AFw7Lc&&efK Tb?T}N0}yz+`njxgN@xNA+9ygb delta 345 zcmbQoJdb69VbTpx7srr_Id5+{W{Eh8G(60bEitof*d251cSXaFPfV8ndwR6>C$zeB zJU-SNrO^Cy<;#b^7l_%ecK`fCv+droyN5FwSmM^oG34_6;>L1wK*x9a^d$@@6%#rE*_mACZd;I6~9hvz4jel=R{!=m#j+dVw z)_>sKjhU8>Gk^U1ll+zAP0!q!!V(I~2Ew;9qivb2lhdC8jpyK*AP5#*{&q_hOWCn= zXE@Ka*uSxu4pY2t_ngx}L8vkZw}ghC0}OnUjg8_DtY-iX-=OosXyOM09pjJB9&9a; zvo?Od)@RS|%H0sdWW)FiI`iK5C*N5=ugP|&?D4D0F)HSh1sH8LXXf6qofF2-7^7|u dasbHWGycK*w3lY(#4l$60#8>zmvv4FO#sN=oYDXQ diff --git a/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-5-chromium.png b/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-5-chromium.png index 65bc0f61d1b597afc0a621acb9f3b35f639d9bfb..cd58b7bcac8960eedbe702c2da7b72c2f58aa227 100644 GIT binary patch delta 154 zcmbQiG?Qt9O4tKW7srr_Id5-mA?v1B>awo(;#WKBIRxHWZA$w4z~b3= zI|d*)u_sI(L~pQWWCKzPY6pNM!;y2(AN|`Ceuojr-q35fe*aDOi7TxpuG2SrUTpYm r>mxp(cth^b29SIQrvZ>;Fofv;#=OgtZE@wD17JZmdKI;Vst054}VLjV8( diff --git a/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-6-chromium.png b/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-6-chromium.png index 4a729b49033480679e1cf215aacf3b4297ef601f..87ada1886d0efa5d7e682d4cda15ef9a0dc33428 100644 GIT binary patch delta 323 zcmV-J0lfa?5!w-uB!8hvL_t(|obB4dO&dV~hS724D+O>h4bTLIqz|G5K~+QwEzp2{ zr2qRG8IWnK*eebs8%YXVbTJL7uJ{|`EQ+=xk0IZSt0tCbtAh7*-aJ;`Mb^x5U z&5z&jp51%_0w*`$|27j>0Gz8&z9)0@1qg^QKtOx}0^$o05R)DQbwIHFcyRY;KgJm2 z=eU|a24F2t;`{6AFvbvHfUk5C-~IQ0(S4Xb1>pP~4u{3_llbm-yDuLDuoiDk-M>5c zhZ~d80T~x8#`pQ3lP|h+edd?fXUo^0RrL+5D;I0z+X~s VAJ5IP&a40c002ovPDHLkV1hJ&mel|N delta 329 zcmV-P0k;0y5#$k&Bx0*cL_t(|obB4NP2*qyhGFNFmH}wP0+|7cLD+-S-HEM0f)!YR zv<$!iz77czP=vs*u%D-klj3Xg=9it-aCI{d08HvvJpf>d#1|kSz5s#s+Y96MMX>{5 z)>gl7U%htnlW_uxf2`kL_;>eM>|h4|oS)Sb;K$gD@8A1fv4a^9UpU@gd>=1;f%u%= z&JQ;nYcIZ=&8FA^FmtbO>3ZM>5D;I0fcOFg#1|kSz5oI71qgf?--oB?sdfO >O z`=9TN)i7*_lds$Zum~^h9N+)U!IQ5OFTnRY7~k!w6EDDb1M8`?S#`&1ymA)swywmvbZ48xA~u!QAj!NJ2r` zz#;8l-A220?spjH9N1xRKTlUe;q&H%d&m018UE)!j^Dz{oWjC(f`ey*AXv3qLPO61 z2FXT7Bc|aa@$9VrYoLFZryOLMX?RyGn$;u1zyadZnd0|3xumL2U6la_ID@CFpUXO@ GgeCx^S9#U| literal 552 zcmeAS@N?(olHy`uVBq!ia0y~yV3Yu|!#LQ0q{!+{6(Ge}9OUlAuPKJLyO(^{m0u4r){6B8zMR5{`A*x1QRA-o4c0h%>CQ@ zZz>;9TWcLHDUl$r#k_gVX_y?(27ZX`!ICpdBh&jCW^Z|ylbR4!Z?HK0^|>%Mwj1rI z4s3}te|dG+=BbU0-y9PfBpMl$SlBuQB^2Be64?LnKkM647g><6#mxMs8R$*oJrlzA z?DN7;TQ#l$jn4o2^&`|#wrAuN9)2m2d7Sx8C&cZm=WSi{c2PIBAm4 mpO=0Ua8Ne~xf`q{j`6ph_R+&0Peg!G&*16m=d#Wzp$PzO*vNDM diff --git a/test/e2e/specs/editor/various/navigate-regions.spec.js b/test/e2e/specs/editor/various/navigate-regions.spec.js index 78a413b2ab72cc..c94312b1521af3 100644 --- a/test/e2e/specs/editor/various/navigate-regions.spec.js +++ b/test/e2e/specs/editor/various/navigate-regions.spec.js @@ -4,12 +4,8 @@ const { test, expect } = require( '@wordpress/e2e-test-utils-playwright' ); test.describe( 'Navigate regions', () => { - test.beforeEach( async ( { admin, page } ) => { + test.beforeEach( async ( { admin } ) => { await admin.createNewPost(); - // POC: Make all text transparent to ignore different font rendering on CI Ubuntu. - await page.addStyleTag( { - content: '* { color: rgba(0,0,0,0) !important; }', - } ); } ); test( 'should navigate the editor regions and show the outline focus style', async ( { @@ -37,13 +33,43 @@ test.describe( 'Navigate regions', () => { 'role=region[name="Editor top bar"i]' ); + async function createMaskElement( locator, offset = 10 ) { + const boxData = await locator.boundingBox(); + boxData.offset = offset; + + await page.evaluate( ( maskData ) => { + const maskElement = document.createElement( 'div' ); + + document.body.appendChild( maskElement ); + + maskElement.id = 'x-gu-mask'; + maskElement.style.position = 'absolute'; + maskElement.style.backgroundColor = '#f0f'; + + maskElement.style.top = maskData.y + maskData.offset + 'px'; + maskElement.style.left = maskData.x + maskData.offset + 'px'; + maskElement.style.width = + maskData.width - maskData.offset * 2 + 'px'; + maskElement.style.height = + maskData.height - maskData.offset * 2 + 'px'; + maskElement.style.display = 'block'; + maskElement.style.boxSizing = 'border-box'; + }, boxData ); + } + + async function removeMaskElement() { + await page.evaluate( () => + document.getElementById( 'x-gu-mask' ).remove() + ); + } + + createMaskElement( editorTopBar, 6 ); + await expect( editorTopBar ).toBeFocused(); await expect( editorTopBar ).toHaveCSS( 'outline-style', 'solid' ); await expect( editorTopBar ).toHaveCSS( 'outline-width', '4px' ); - await expect( editorTopBar ).toHaveScreenshot( { - // POC: Hide some elements we're not interested to test for. - mask: [ editorTopBar.locator( 'role=button' ) ], - } ); + await expect( editorTopBar ).toHaveScreenshot(); + removeMaskElement(); // Navigate to the content region. await page.keyboard.press( 'Control+`' ); @@ -52,17 +78,13 @@ test.describe( 'Navigate regions', () => { 'role=region[name="Editor content"i]' ); + createMaskElement( editorContent, 6 ); + await expect( editorContent ).toBeFocused(); await expect( editorContent ).toHaveCSS( 'outline-style', 'solid' ); await expect( editorContent ).toHaveCSS( 'outline-width', '4px' ); - await expect( editorContent ).toHaveScreenshot( { - // POC: Hide some elements we're not interested to test for. - mask: [ - editorContent.locator( 'role=textbox' ), - editorContent.locator( 'role=document' ), - editorContent.locator( 'role=toolbar' ), - ], - } ); + await expect( editorContent ).toHaveScreenshot(); + removeMaskElement(); // Navigate to the settings region when it's opened. await page.keyboard.press( 'Control+`' ); @@ -71,10 +93,13 @@ test.describe( 'Navigate regions', () => { 'role=region[name="Editor settings"i]' ); + createMaskElement( editorSettings, 6 ); + await expect( editorSettings ).toBeFocused(); await expect( editorSettings ).toHaveCSS( 'outline-style', 'solid' ); await expect( editorSettings ).toHaveCSS( 'outline-width', '4px' ); await expect( editorSettings ).toHaveScreenshot(); + removeMaskElement(); // Navigate to the publish region. await page.keyboard.press( 'Control+`' ); @@ -86,16 +111,16 @@ test.describe( 'Navigate regions', () => { 'role=region[name="Editor publish"i] >> .edit-post-layout__toggle-publish-panel' ); + createMaskElement( editorPublishPanel, 6 ); + await expect( editorPublish ).toBeFocused(); await expect( editorPublishPanel ).toHaveCSS( 'outline-style', 'solid' ); await expect( editorPublishPanel ).toHaveCSS( 'outline-width', '4px' ); - await expect( editorPublishPanel ).toHaveScreenshot( { - // POC: Hide some elements we're not interested to test for. - mask: [ editorPublishPanel.locator( 'role=button' ) ], - } ); + await expect( editorPublishPanel ).toHaveScreenshot(); + removeMaskElement(); // Navigate to the footer region. await page.keyboard.press( 'Control+`' ); @@ -104,10 +129,13 @@ test.describe( 'Navigate regions', () => { 'role=region[name="Editor footer"i]' ); + createMaskElement( editorFooter, 4 ); + await expect( editorFooter ).toBeFocused(); await expect( editorFooter ).toHaveCSS( 'outline-style', 'solid' ); await expect( editorFooter ).toHaveCSS( 'outline-width', '4px' ); await expect( editorFooter ).toHaveScreenshot(); + removeMaskElement(); // Navigate to the Document overview region. // Open the Document overview. @@ -119,6 +147,8 @@ test.describe( 'Navigate regions', () => { 'role=region[name="Document Overview"i]' ); + createMaskElement( editorDocumentOverview, 6 ); + await expect( editorDocumentOverview ).toBeFocused(); await expect( editorDocumentOverview ).toHaveCSS( 'outline-style', @@ -128,10 +158,8 @@ test.describe( 'Navigate regions', () => { 'outline-width', '4px' ); - await expect( editorDocumentOverview ).toHaveScreenshot( { - // POC: Hide some elements we're not interested to test for. - mask: [ editorDocumentOverview.locator( 'role=treegrid' ) ], - } ); + await expect( editorDocumentOverview ).toHaveScreenshot(); + removeMaskElement(); // Close the Document overview. await page.locator( 'role=button[name="Document Overview"i]' ).click(); @@ -150,6 +178,8 @@ test.describe( 'Navigate regions', () => { 'role=region[name="Editor settings"i] >> .edit-post-layout__toggle-sidebar-panel' ); + createMaskElement( editorSettingsPanel, 6 ); + await expect( editorSettings ).toBeFocused(); await expect( editorSettingsPanel ).toHaveCSS( 'outline-style', @@ -157,10 +187,8 @@ test.describe( 'Navigate regions', () => { ); await expect( editorSettingsPanel ).toHaveCSS( 'outline-width', '4px' ); - await expect( editorSettingsPanel ).toHaveScreenshot( { - // POC: Hide some elements we're not interested to test for. - mask: [ editorSettingsPanel.locator( 'role=button' ) ], - } ); + await expect( editorSettingsPanel ).toHaveScreenshot(); + removeMaskElement(); // Make sure to leave the Settings sidebar opened. await editor.openDocumentSettingsSidebar(); From 5df670ae81f09cf996ea11f3bda88143103d05bf Mon Sep 17 00:00:00 2001 From: Andrea Fercia Date: Wed, 7 Dec 2022 12:57:03 +0100 Subject: [PATCH 5/9] Make sure regions are focused before taking screenshots. --- .../editor/various/navigate-regions.spec.js | 85 +++++++++++-------- 1 file changed, 50 insertions(+), 35 deletions(-) diff --git a/test/e2e/specs/editor/various/navigate-regions.spec.js b/test/e2e/specs/editor/various/navigate-regions.spec.js index c94312b1521af3..0ee9d92c6b320d 100644 --- a/test/e2e/specs/editor/various/navigate-regions.spec.js +++ b/test/e2e/specs/editor/various/navigate-regions.spec.js @@ -13,26 +13,12 @@ test.describe( 'Navigate regions', () => { page, pageUtils, } ) => { - // Add a paragraph block. - await editor.insertBlock( { - name: 'core/paragraph', - attributes: { content: 'Dummy text' }, - } ); - - // Make sure the Settings sidebar is opened. - await editor.openDocumentSettingsSidebar(); - - // Navigate to the top bar region. - await page.keyboard.press( 'Control+`' ); - - await expect( - page.locator( '.interface-interface-skeleton' ) - ).toHaveClass( /is-focusing-regions/ ); - - const editorTopBar = page.locator( - 'role=region[name="Editor top bar"i]' - ); - + /** + * Masks an element with a pink overlay with an optional offset. + * + * @param {Object} locator Playwright element locator. + * @param {number} offset The offset to apply to the mask. + */ async function createMaskElement( locator, offset = 10 ) { const boxData = await locator.boundingBox(); boxData.offset = offset; @@ -57,17 +43,41 @@ test.describe( 'Navigate regions', () => { }, boxData ); } + /** + * Removes the mask overlay. + */ async function removeMaskElement() { await page.evaluate( () => document.getElementById( 'x-gu-mask' ).remove() ); } - createMaskElement( editorTopBar, 6 ); + // Add a paragraph block. + await editor.insertBlock( { + name: 'core/paragraph', + attributes: { content: 'Dummy text' }, + } ); + + // Make sure the Settings sidebar is opened. + await editor.openDocumentSettingsSidebar(); + + // Navigate to the top bar region. + await page.keyboard.press( 'Control+`' ); + + await expect( + page.locator( '.interface-interface-skeleton' ) + ).toHaveClass( /is-focusing-regions/ ); + const editorTopBar = page.locator( + 'role=region[name="Editor top bar"i]' + ); + + // Make sure the top bar region is focused and shows the focus style. await expect( editorTopBar ).toBeFocused(); await expect( editorTopBar ).toHaveCSS( 'outline-style', 'solid' ); await expect( editorTopBar ).toHaveCSS( 'outline-width', '4px' ); + // Add a mask overlay and take a screenshot. + createMaskElement( editorTopBar, 6 ); await expect( editorTopBar ).toHaveScreenshot(); removeMaskElement(); @@ -78,11 +88,12 @@ test.describe( 'Navigate regions', () => { 'role=region[name="Editor content"i]' ); - createMaskElement( editorContent, 6 ); - + // Make sure the content region is focused and shows the focus style. await expect( editorContent ).toBeFocused(); await expect( editorContent ).toHaveCSS( 'outline-style', 'solid' ); await expect( editorContent ).toHaveCSS( 'outline-width', '4px' ); + // Add a mask overlay and take a screenshot. + createMaskElement( editorContent, 6 ); await expect( editorContent ).toHaveScreenshot(); removeMaskElement(); @@ -93,11 +104,12 @@ test.describe( 'Navigate regions', () => { 'role=region[name="Editor settings"i]' ); - createMaskElement( editorSettings, 6 ); - + // Make sure the settings region is focused and shows the focus style. await expect( editorSettings ).toBeFocused(); await expect( editorSettings ).toHaveCSS( 'outline-style', 'solid' ); await expect( editorSettings ).toHaveCSS( 'outline-width', '4px' ); + // Add a mask overlay and take a screenshot. + createMaskElement( editorSettings, 6 ); await expect( editorSettings ).toHaveScreenshot(); removeMaskElement(); @@ -111,14 +123,15 @@ test.describe( 'Navigate regions', () => { 'role=region[name="Editor publish"i] >> .edit-post-layout__toggle-publish-panel' ); - createMaskElement( editorPublishPanel, 6 ); - + // Make sure the publish region is focused and shows the focus style. await expect( editorPublish ).toBeFocused(); await expect( editorPublishPanel ).toHaveCSS( 'outline-style', 'solid' ); await expect( editorPublishPanel ).toHaveCSS( 'outline-width', '4px' ); + // Add a mask overlay and take a screenshot. + createMaskElement( editorPublishPanel, 6 ); await expect( editorPublishPanel ).toHaveScreenshot(); removeMaskElement(); @@ -129,11 +142,12 @@ test.describe( 'Navigate regions', () => { 'role=region[name="Editor footer"i]' ); - createMaskElement( editorFooter, 4 ); - + // Make sure the footer region is focused and shows the focus style. await expect( editorFooter ).toBeFocused(); await expect( editorFooter ).toHaveCSS( 'outline-style', 'solid' ); await expect( editorFooter ).toHaveCSS( 'outline-width', '4px' ); + // Add a mask overlay and take a screenshot. + createMaskElement( editorFooter, 4 ); await expect( editorFooter ).toHaveScreenshot(); removeMaskElement(); @@ -147,8 +161,7 @@ test.describe( 'Navigate regions', () => { 'role=region[name="Document Overview"i]' ); - createMaskElement( editorDocumentOverview, 6 ); - + // Make sure the Document overview region is focused and shows the focus style. await expect( editorDocumentOverview ).toBeFocused(); await expect( editorDocumentOverview ).toHaveCSS( 'outline-style', @@ -158,6 +171,8 @@ test.describe( 'Navigate regions', () => { 'outline-width', '4px' ); + // Add a mask overlay and take a screenshot. + createMaskElement( editorDocumentOverview, 6 ); await expect( editorDocumentOverview ).toHaveScreenshot(); removeMaskElement(); @@ -171,22 +186,22 @@ test.describe( 'Navigate regions', () => { ) .click(); - // Navigate to the settings region whene it's closed. + // Navigate to the settings region when it's closed. await pageUtils.pressKeyTimes( 'Control+`', 3 ); const editorSettingsPanel = page.locator( 'role=region[name="Editor settings"i] >> .edit-post-layout__toggle-sidebar-panel' ); - createMaskElement( editorSettingsPanel, 6 ); - + // Make sure the settings region is focused and shows the focus style. await expect( editorSettings ).toBeFocused(); await expect( editorSettingsPanel ).toHaveCSS( 'outline-style', 'solid' ); await expect( editorSettingsPanel ).toHaveCSS( 'outline-width', '4px' ); - + // Add a mask overlay and take a screenshot. + createMaskElement( editorSettingsPanel, 6 ); await expect( editorSettingsPanel ).toHaveScreenshot(); removeMaskElement(); From 4d5fa4e55c1470f1c202a5a9fa90e8c618b7576b Mon Sep 17 00:00:00 2001 From: Andrea Fercia Date: Wed, 7 Dec 2022 17:02:35 +0100 Subject: [PATCH 6/9] Ensure the mouse pointer doesn't make some button tooltips appear. --- .../editor/various/navigate-regions.spec.js | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/test/e2e/specs/editor/various/navigate-regions.spec.js b/test/e2e/specs/editor/various/navigate-regions.spec.js index 0ee9d92c6b320d..b69beb1999a58a 100644 --- a/test/e2e/specs/editor/various/navigate-regions.spec.js +++ b/test/e2e/specs/editor/various/navigate-regions.spec.js @@ -52,15 +52,19 @@ test.describe( 'Navigate regions', () => { ); } + // Make sure the Settings sidebar is opened. + // Note: this also moves the mouse pointer over the Settings button. + await editor.openDocumentSettingsSidebar(); + + // Move the mouse pointer away from the Settings button. + await page.mouse.move( 0, 0 ); + // Add a paragraph block. await editor.insertBlock( { name: 'core/paragraph', attributes: { content: 'Dummy text' }, } ); - // Make sure the Settings sidebar is opened. - await editor.openDocumentSettingsSidebar(); - // Navigate to the top bar region. await page.keyboard.press( 'Control+`' ); @@ -125,6 +129,7 @@ test.describe( 'Navigate regions', () => { // Make sure the publish region is focused and shows the focus style. await expect( editorPublish ).toBeFocused(); + await expect( editorPublishPanel ).toHaveCSS( 'outline-style', 'solid' @@ -132,6 +137,7 @@ test.describe( 'Navigate regions', () => { await expect( editorPublishPanel ).toHaveCSS( 'outline-width', '4px' ); // Add a mask overlay and take a screenshot. createMaskElement( editorPublishPanel, 6 ); + await expect( editorPublishPanel ).toHaveScreenshot(); removeMaskElement(); @@ -155,6 +161,9 @@ test.describe( 'Navigate regions', () => { // Open the Document overview. await page.locator( 'role=button[name="Document Overview"i]' ).click(); + // Move the mouse pointer away from the Document Overview button. + await page.mouse.move( 0, 0 ); + await pageUtils.pressKeyTimes( 'Control+`', 2 ); const editorDocumentOverview = page.locator( @@ -179,6 +188,9 @@ test.describe( 'Navigate regions', () => { // Close the Document overview. await page.locator( 'role=button[name="Document Overview"i]' ).click(); + // Move the mouse pointer away from the Document Overview button. + await page.mouse.move( 0, 0 ); + // Close the settings region. await page .locator( @@ -186,6 +198,9 @@ test.describe( 'Navigate regions', () => { ) .click(); + // Move the mouse pointer away from the Settings button. + await page.mouse.move( 0, 0 ); + // Navigate to the settings region when it's closed. await pageUtils.pressKeyTimes( 'Control+`', 3 ); @@ -207,5 +222,8 @@ test.describe( 'Navigate regions', () => { // Make sure to leave the Settings sidebar opened. await editor.openDocumentSettingsSidebar(); + + // Move the mouse pointer away from the Settings button. + await page.mouse.move( 0, 0 ); } ); } ); From eb0188f0b5df436fcbd2697343d0b4970a126f1a Mon Sep 17 00:00:00 2001 From: Andrea Fercia Date: Fri, 9 Dec 2022 13:02:28 +0100 Subject: [PATCH 7/9] More specific CSS selector to fix failing e2e test in Ubuntu Chromium. --- .../higher-order/navigate-regions/style.scss | 4 ++-- ...how-the-outline-focus-style-1-chromium.png | Bin 536 -> 611 bytes ...how-the-outline-focus-style-2-chromium.png | Bin 3386 -> 3458 bytes ...how-the-outline-focus-style-6-chromium.png | Bin 2266 -> 2359 bytes 4 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/components/src/higher-order/navigate-regions/style.scss b/packages/components/src/higher-order/navigate-regions/style.scss index 86f089b68ba3d9..476d2779a677d3 100644 --- a/packages/components/src/higher-order/navigate-regions/style.scss +++ b/packages/components/src/higher-order/navigate-regions/style.scss @@ -42,8 +42,8 @@ } } - // Publish sidebar toggle button shown when navigating regions. - .interface-interface-skeleton__actions { + // Publish sidebar toggle button shown when navigating regions and sidebar is closed. + &:not(.is-sidebar-opened) .interface-interface-skeleton__actions { .interface-navigable-region__stacker, .edit-post-layout__toggle-publish-panel { outline: inherit; diff --git a/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-1-chromium.png b/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-1-chromium.png index 87f30191cc89123afeb87c86816fb70dfee6b6c5..84163138a4053bb90f52628c207b6d26def3e61f 100644 GIT binary patch literal 611 zcmeAS@N?(olHy`uVBq!ia0y~yU`YV7Z8_M0Agf7KUPjovCH2dFq*=@Pgf-SS7b>TjT}a=E{;}GyqYl>+N>v9e3$dEd}vBUHx3vIVCg!0Gq{+ A;{X5v literal 536 zcmeAS@N?(olHy`uVBq!ia0y~yU`YV7Z8_M0a2 zXpnO@Hu34Yg2Ed!S1h!d@aIg4!{=9%XB+sx-sTU~#gLL0E)Sv&tQbM2D5xC(k_<nr&f_!t^iSNyHm|Km;(P|<|V zicEVM>sJ-a^ltoU2voT()sl&UVMSW<+r@@D9t;cz^3Dc}oP8zY=Bxm;*4kutd#R~b zBT(m?t2yT`7n#J^1C@WvHoNw8#pf!Z@CJMD;=TD>+9rm-Vqj>nopoPaIT57#vWOed z^sOCAK+#X)r9gJ4GLY#d12i>ca}JX~ms{4)x9!*azh}<_dMqJ$8c14C#~tX2=s5_H jBZ3SJ4yqtOt@_2pt}d9D?;<=8$Ybzy^>bP0l+XkKr~QK3 delta 213 zcmZpY-X%3brJm8##WAE}&fA+Ca}NbbxLx#qVz^?GU7WVFK}ULG_m1{1TPIh+l&Jk4 zmdigEf8HK`f8phy>I@7G_3v`OFfuSO)Hhl%F)(<@0NEj?w)QpkwLLqS85k16KNtP{ znrjJ^%Sg7Y`eC#0eI+{s!vVc(w@W|YEn;C{m;lnZV)HeYG>**;EN_`zu6}uSylVG5 zu(E(@%0N5JrY)}A2{BINv>*e6!y^s`h6O_IKx;$qGG0*-)LbnlzZJ-1@O1TaS?83{ F1OTaMPyYY_ diff --git a/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-6-chromium.png b/test/e2e/specs/editor/various/__snapshots__/Navigate-regions-should-navigate-the-editor-regions-and-show-the-outline-focus-style-6-chromium.png index 87ada1886d0efa5d7e682d4cda15ef9a0dc33428..26ad0bafe5a6a93fa1c319c1e5e034a154a802b7 100644 GIT binary patch delta 448 zcmV;x0YCoQ5w{YMB!B)%L_t(|obB4NjT=`KK+*SSsZa%MO1J~wC9KJqy`|iW6S@X;MP|O2x6VBrM>${ILYs44eiq7Ku*N?|pYt8&tj05m}d3boZ zczzb&Wt(;C?^0Q=Zx+nzSx<;4epy==2ioA3Oy{Q_`phuKc|y{GWHasar#?fJ$lya0RH zgco3c2hj!CpI00J0^$o05MO|R_yPpP7a+4=14ae2umdasHi5%`{_?ov6aY8I<_i#5 q^Yb5eT!5X~d;tRD3lI=rfWY6h4bTLIqz|G5K~+QwEzp2{ zr2qRG8IWnK*eebs8%YXVbTJL7uJ{|`EQ+=xk0IZSt0tCbtAh7*-aJ;`Mb^x5U z&5z&jp51%_0w*`$|27j>0Gz8&z9)0@1qg^QKtOx}0^$o05R+a5bwIHFcyRY;KgJm2 z=eU|a24F2t;`{6AFvbvHfUk5C-~IQ0(S4Xb1>pP~4u{3_llbm-yDuLDuoiDk-M>5c zhZ~c@0~r@A#`pQJIxtz@T>t<8 From 972df570fb451c6ec7eb1962130b82896e7fb4f8 Mon Sep 17 00:00:00 2001 From: Andrea Fercia Date: Fri, 9 Dec 2022 14:06:13 +0100 Subject: [PATCH 8/9] Fix the right selector. --- .../src/higher-order/navigate-regions/style.scss | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/components/src/higher-order/navigate-regions/style.scss b/packages/components/src/higher-order/navigate-regions/style.scss index 476d2779a677d3..5337ea78b9df51 100644 --- a/packages/components/src/higher-order/navigate-regions/style.scss +++ b/packages/components/src/higher-order/navigate-regions/style.scss @@ -33,8 +33,8 @@ } } - // Sidebar toggle button shown when navigating regions. - .interface-interface-skeleton__sidebar { + // Sidebar toggle button shown when navigating regions and the sidebar is closed. + &:not(.is-sidebar-opened) .interface-interface-skeleton__sidebar { .interface-navigable-region__stacker, .edit-post-layout__toggle-sidebar-panel { outline: inherit; @@ -42,8 +42,8 @@ } } - // Publish sidebar toggle button shown when navigating regions and sidebar is closed. - &:not(.is-sidebar-opened) .interface-interface-skeleton__actions { + // Publish sidebar toggle button shown when navigating regions. + .interface-interface-skeleton__actions { .interface-navigable-region__stacker, .edit-post-layout__toggle-publish-panel { outline: inherit; From cfc592df1bb6ebe4671d41d607f1dd4504316adf Mon Sep 17 00:00:00 2001 From: Andrea Fercia Date: Fri, 9 Dec 2022 15:16:24 +0100 Subject: [PATCH 9/9] Set maxDiffPixels inline. --- test/e2e/specs/editor/various/navigate-regions.spec.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/e2e/specs/editor/various/navigate-regions.spec.js b/test/e2e/specs/editor/various/navigate-regions.spec.js index b69beb1999a58a..d37bf8a0f291cb 100644 --- a/test/e2e/specs/editor/various/navigate-regions.spec.js +++ b/test/e2e/specs/editor/various/navigate-regions.spec.js @@ -182,7 +182,9 @@ test.describe( 'Navigate regions', () => { ); // Add a mask overlay and take a screenshot. createMaskElement( editorDocumentOverview, 6 ); - await expect( editorDocumentOverview ).toHaveScreenshot(); + await expect( editorDocumentOverview ).toHaveScreenshot( { + maxDiffPixels: 10, + } ); removeMaskElement(); // Close the Document overview.