@wordpress/e2e-tests 4.2.0 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/config/flaky-tests-reporter.js +3 -3
  2. package/package.json +6 -6
  3. package/specs/editor/blocks/__snapshots__/buttons.test.js.snap +4 -4
  4. package/specs/editor/blocks/__snapshots__/heading.test.js.snap +0 -6
  5. package/specs/editor/blocks/cover.test.js +10 -14
  6. package/specs/editor/blocks/heading.test.js +7 -7
  7. package/specs/editor/blocks/navigation.test.js +69 -16
  8. package/specs/editor/blocks/table.test.js +16 -4
  9. package/specs/editor/fixtures/menu-items-response-fixture.json +48 -144
  10. package/specs/editor/plugins/cpt-locking.test.js +2 -3
  11. package/specs/editor/plugins/iframed-inline-styles.test.js +1 -0
  12. package/specs/editor/plugins/inner-blocks-allowed-blocks.test.js +3 -1
  13. package/specs/editor/various/__snapshots__/inserting-blocks.test.js.snap +1 -1
  14. package/specs/editor/various/block-switcher.test.js +3 -0
  15. package/specs/editor/various/datepicker.test.js +21 -7
  16. package/specs/editor/various/embedding.test.js +2 -4
  17. package/specs/editor/various/inserting-blocks.test.js +1 -1
  18. package/specs/editor/various/keyboard-navigable-blocks.test.js +0 -3
  19. package/specs/editor/various/links.test.js +2 -3
  20. package/specs/editor/various/navigable-toolbar.test.js +2 -3
  21. package/specs/editor/various/post-visibility.test.js +1 -1
  22. package/specs/editor/various/publishing.test.js +4 -2
  23. package/specs/editor/various/scheduling.test.js +2 -2
  24. package/specs/editor/various/switch-to-draft.test.js +1 -1
  25. package/specs/editor/various/taxonomies.test.js +8 -7
  26. package/specs/editor/various/writing-flow.test.js +19 -16
  27. package/specs/experiments/navigation-editor.test.js +4 -6
  28. package/specs/performance/post-editor.test.js +10 -14
  29. package/specs/performance/site-editor.test.js +2 -5
  30. package/specs/widgets/editing-widgets.test.js +12 -8
  31. package/specs/editor/blocks/__snapshots__/code.test.js.snap +0 -14
  32. package/specs/editor/blocks/__snapshots__/html.test.js.snap +0 -8
  33. package/specs/editor/blocks/__snapshots__/image.test.js.snap +0 -25
  34. package/specs/editor/blocks/__snapshots__/preformatted.test.js.snap +0 -24
  35. package/specs/editor/blocks/__snapshots__/separator.test.js.snap +0 -7
  36. package/specs/editor/blocks/code.test.js +0 -48
  37. package/specs/editor/blocks/html.test.js +0 -31
  38. package/specs/editor/blocks/image.test.js +0 -373
  39. package/specs/editor/blocks/preformatted.test.js +0 -62
  40. package/specs/editor/blocks/separator.test.js +0 -22
  41. package/specs/editor/various/block-locking.test.js +0 -120
  42. package/specs/editor/various/popovers.test.js +0 -27
  43. package/specs/site-editor/template-part.test.js +0 -346
  44. package/specs/site-editor/template-revert.test.js +0 -209
@@ -36,7 +36,9 @@ describe( 'Allowed Blocks Setting on InnerBlocks', () => {
36
36
  await page.click( childParagraphSelector );
37
37
  await openGlobalBlockInserter();
38
38
  await expect(
39
- ( await getAllBlockInserterItemTitles() ).length
39
+ (
40
+ await getAllBlockInserterItemTitles()
41
+ ).length
40
42
  ).toBeGreaterThan( 20 );
41
43
  } );
42
44
 
@@ -108,7 +108,7 @@ exports[`Inserting blocks inserts a block in proper place after having clicked \
108
108
  exports[`Inserting blocks inserts blocks at root level when using the root appender while selection is in an inner block 1`] = `
109
109
  "<!-- wp:buttons -->
110
110
  <div class=\\"wp-block-buttons\\"><!-- wp:button -->
111
- <div class=\\"wp-block-button\\"><a class=\\"wp-block-button__link\\">1.1</a></div>
111
+ <div class=\\"wp-block-button\\"><a class=\\"wp-block-button__link wp-element-button\\">1.1</a></div>
112
112
  <!-- /wp:button --></div>
113
113
  <!-- /wp:buttons -->
114
114
 
@@ -32,6 +32,7 @@ describe( 'Block Switcher', () => {
32
32
  'Heading',
33
33
  'Pullquote',
34
34
  'Columns',
35
+ 'Table of Contents',
35
36
  ] )
36
37
  );
37
38
  } );
@@ -57,6 +58,7 @@ describe( 'Block Switcher', () => {
57
58
  'Paragraph',
58
59
  'Pullquote',
59
60
  'Heading',
61
+ 'Table of Contents',
60
62
  ] )
61
63
  );
62
64
  } );
@@ -71,6 +73,7 @@ describe( 'Block Switcher', () => {
71
73
  'core/group',
72
74
  'core/heading',
73
75
  'core/columns',
76
+ 'core/table-of-contents',
74
77
  ].map( ( block ) => wp.blocks.unregisterBlockType( block ) );
75
78
  } );
76
79
 
@@ -15,12 +15,24 @@ async function getSelectedOptionLabel( selector ) {
15
15
  }
16
16
 
17
17
  async function getDatePickerValues() {
18
- const year = await getInputValue( '[aria-label="Year"]' );
19
- const month = await getInputValue( '[aria-label="Month"]' );
20
- const monthLabel = await getSelectedOptionLabel( '[aria-label="Month"]' );
21
- const day = await getInputValue( '[aria-label="Day"]' );
22
- const hours = await getInputValue( '[aria-label="Hours"]' );
23
- const minutes = await getInputValue( '[aria-label="Minutes"]' );
18
+ const year = await getInputValue(
19
+ '.components-datetime__time-field-year input'
20
+ );
21
+ const month = await getInputValue(
22
+ '.components-datetime__time-field-month select'
23
+ );
24
+ const monthLabel = await getSelectedOptionLabel(
25
+ '.components-datetime__time-field-month select'
26
+ );
27
+ const day = await getInputValue(
28
+ '.components-datetime__time-field-day input'
29
+ );
30
+ const hours = await getInputValue(
31
+ '.components-datetime__time-field-hours-input input'
32
+ );
33
+ const minutes = await getInputValue(
34
+ '.components-datetime__time-field-minutes-input input'
35
+ );
24
36
  const amOrPm = await page.$eval(
25
37
  '.components-datetime__time-field-am-pm .is-primary',
26
38
  ( element ) => element.innerText.toLowerCase()
@@ -126,7 +138,9 @@ describe.each( [ [ 'UTC-10' ], [ 'UTC' ], [ 'UTC+10' ] ] )(
126
138
  await page.click( '.edit-post-post-schedule__toggle' );
127
139
 
128
140
  // Clear the date.
129
- await page.click( '.components-datetime__date-reset-button' );
141
+ await page.click(
142
+ '.block-editor-publish-date-time-picker button[aria-label="Now"]'
143
+ );
130
144
 
131
145
  const publishingDate = await getPublishingDate();
132
146
 
@@ -16,8 +16,7 @@ import {
16
16
 
17
17
  const MOCK_EMBED_WORDPRESS_SUCCESS_RESPONSE = {
18
18
  url: 'https://wordpress.org/gutenberg/handbook/block-api/attributes/',
19
- html:
20
- '<div class="wp-embedded-content" data-secret="shhhh it is a secret"></div>',
19
+ html: '<div class="wp-embedded-content" data-secret="shhhh it is a secret"></div>',
21
20
  type: 'rich',
22
21
  provider_name: 'WordPress',
23
22
  provider_url: 'https://wordpress.org',
@@ -78,8 +77,7 @@ const MOCK_BAD_EMBED_PROVIDER_RESPONSE = {
78
77
 
79
78
  const MOCK_CANT_EMBED_RESPONSE = {
80
79
  provider_name: 'Embed Handler',
81
- html:
82
- '<a href="https://twitter.com/wooyaygutenberg123454312">https://twitter.com/wooyaygutenberg123454312</a>',
80
+ html: '<a href="https://twitter.com/wooyaygutenberg123454312">https://twitter.com/wooyaygutenberg123454312</a>',
83
81
  };
84
82
 
85
83
  const MOCK_BAD_WORDPRESS_RESPONSE = {
@@ -299,7 +299,7 @@ describe( 'Inserting blocks', () => {
299
299
  await page.waitForSelector( INSERTER_SEARCH_SELECTOR );
300
300
  await page.focus( INSERTER_SEARCH_SELECTOR );
301
301
  await pressKeyWithModifier( 'primary', 'a' );
302
- const searchTerm = 'Heading';
302
+ const searchTerm = 'Verse';
303
303
  await page.keyboard.type( searchTerm );
304
304
  const browseAll = await page.waitForXPath(
305
305
  '//button[text()="Browse all"]'
@@ -26,9 +26,6 @@ const navigateToContentEditorTop = async () => {
26
26
  };
27
27
 
28
28
  const tabThroughParagraphBlock = async ( paragraphText ) => {
29
- await page.keyboard.press( 'Tab' );
30
- await expect( await getActiveLabel() ).toBe( 'Add block' );
31
-
32
29
  await tabThroughBlockToolbar();
33
30
 
34
31
  await page.keyboard.press( 'Tab' );
@@ -271,9 +271,8 @@ describe( 'Links', () => {
271
271
  const toggleFixedToolbar = async ( isFixed ) => {
272
272
  await page.evaluate( ( _isFixed ) => {
273
273
  const { select, dispatch } = wp.data;
274
- const isCurrentlyFixed = select( 'core/edit-post' ).isFeatureActive(
275
- 'fixedToolbar'
276
- );
274
+ const isCurrentlyFixed =
275
+ select( 'core/edit-post' ).isFeatureActive( 'fixedToolbar' );
277
276
  if ( isCurrentlyFixed !== _isFixed ) {
278
277
  dispatch( 'core/edit-post' ).toggleFeature( 'fixedToolbar' );
279
278
  }
@@ -20,9 +20,8 @@ describe.each( [
20
20
 
21
21
  await page.evaluate( ( _isUnifiedToolbar ) => {
22
22
  const { select, dispatch } = wp.data;
23
- const isCurrentlyUnified = select(
24
- 'core/edit-post'
25
- ).isFeatureActive( 'fixedToolbar' );
23
+ const isCurrentlyUnified =
24
+ select( 'core/edit-post' ).isFeatureActive( 'fixedToolbar' );
26
25
  if ( isCurrentlyUnified !== _isUnifiedToolbar ) {
27
26
  dispatch( 'core/edit-post' ).toggleFeature( 'fixedToolbar' );
28
27
  }
@@ -92,7 +92,7 @@ describe( 'Post visibility', () => {
92
92
  // Set a publish date for the next month.
93
93
  await page.click( '.edit-post-post-schedule__toggle' );
94
94
  await page.click(
95
- 'div[aria-label="Move forward to switch to the next month."]'
95
+ '*[aria-label="Move forward to switch to the next month."]'
96
96
  );
97
97
  await (
98
98
  await page.$x(
@@ -103,7 +103,8 @@ describe( 'Publishing', () => {
103
103
 
104
104
  beforeEach( async () => {
105
105
  await createNewPost( postType );
106
- werePrePublishChecksEnabled = await arePrePublishChecksEnabled();
106
+ werePrePublishChecksEnabled =
107
+ await arePrePublishChecksEnabled();
107
108
  if ( werePrePublishChecksEnabled ) {
108
109
  await disablePrePublishChecks();
109
110
  }
@@ -143,7 +144,8 @@ describe( 'Publishing', () => {
143
144
 
144
145
  beforeEach( async () => {
145
146
  await createNewPost( postType );
146
- werePrePublishChecksEnabled = await arePrePublishChecksEnabled();
147
+ werePrePublishChecksEnabled =
148
+ await arePrePublishChecksEnabled();
147
149
  if ( werePrePublishChecksEnabled ) {
148
150
  await disablePrePublishChecks();
149
151
  }
@@ -58,11 +58,11 @@ describe( 'Scheduling', () => {
58
58
 
59
59
  await page.click( '.edit-post-post-schedule__toggle' );
60
60
  await page.click(
61
- 'div[aria-label="Move backward to switch to the previous month."]'
61
+ '*[aria-label="Move backward to switch to the previous month."]'
62
62
  );
63
63
  expect( await isDateTimeComponentFocused() ).toBe( true );
64
64
  await page.click(
65
- 'div[aria-label="Move forward to switch to the next month."]'
65
+ '*[aria-label="Move forward to switch to the next month."]'
66
66
  );
67
67
  expect( await isDateTimeComponentFocused() ).toBe( true );
68
68
  } );
@@ -63,7 +63,7 @@ async function scheduleTestPost( postType, viewport ) {
63
63
  // Set a publish date for the next month.
64
64
  await page.click( '.edit-post-post-schedule__toggle' );
65
65
  await page.click(
66
- 'div[aria-label="Move forward to switch to the next month."]'
66
+ '*[aria-label="Move forward to switch to the next month."]'
67
67
  );
68
68
 
69
69
  await (
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { random } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -19,6 +14,12 @@ import {
19
14
  const TAG_TOKEN_SELECTOR =
20
15
  '.components-form-token-field__token-text span:not(.components-visually-hidden)';
21
16
 
17
+ function generateRandomNumber() {
18
+ // Using `Math.random()` directly is fine in this testing context.
19
+ // eslint-disable-next-line no-restricted-syntax
20
+ return Math.round( 1 + Math.random() * ( Number.MAX_SAFE_INTEGER - 1 ) );
21
+ }
22
+
22
23
  describe( 'Taxonomies', () => {
23
24
  const canCreatTermInTaxonomy = ( taxonomy ) => {
24
25
  return page.evaluate( ( _taxonomy ) => {
@@ -152,7 +153,7 @@ describe( 'Taxonomies', () => {
152
153
  // Click the tag input field.
153
154
  await tagInput.click();
154
155
 
155
- const tagName = "tag'-" + random( 1, Number.MAX_SAFE_INTEGER );
156
+ const tagName = "tag'-" + generateRandomNumber();
156
157
 
157
158
  // Type the category name in the field.
158
159
  await tagInput.type( tagName );
@@ -211,7 +212,7 @@ describe( 'Taxonomies', () => {
211
212
  // Click the tag input field.
212
213
  await tagInput.click();
213
214
 
214
- const tagName = 'tag-' + random( 1, Number.MAX_SAFE_INTEGER );
215
+ const tagName = 'tag-' + generateRandomNumber();
215
216
 
216
217
  // Type the category name in the field.
217
218
  await tagInput.type( tagName );
@@ -679,27 +679,11 @@ describe( 'Writing Flow', () => {
679
679
  await page.keyboard.press( 'Tab' );
680
680
  // Create the table.
681
681
  await page.keyboard.press( 'Space' );
682
- // Return focus after focus loss. This should be fixed.
683
- await page.keyboard.press( 'Tab' );
684
682
  // Navigate to the second cell.
685
683
  await page.keyboard.press( 'ArrowRight' );
686
684
  await page.keyboard.type( '2' );
687
685
  // Confirm correct setup.
688
686
  expect( await getEditedPostContent() ).toMatchSnapshot();
689
- // The content should only have one tab stop.
690
- await page.keyboard.press( 'Tab' );
691
- expect(
692
- await page.evaluate( () =>
693
- document.activeElement.getAttribute( 'aria-label' )
694
- )
695
- ).toBe( 'Post' );
696
- await pressKeyWithModifier( 'shift', 'Tab' );
697
- await pressKeyWithModifier( 'shift', 'Tab' );
698
- expect(
699
- await page.evaluate( () =>
700
- document.activeElement.getAttribute( 'aria-label' )
701
- )
702
- ).toBe( 'Table' );
703
687
  } );
704
688
 
705
689
  it( 'should unselect all blocks when hitting double escape', async () => {
@@ -750,4 +734,23 @@ describe( 'Writing Flow', () => {
750
734
  );
751
735
  expect( selectedParagraph ).toBeDefined();
752
736
  } );
737
+ it( 'should prevent browser default formatting on multi selection', async () => {
738
+ await page.keyboard.press( 'Enter' );
739
+ await page.keyboard.type( 'first' );
740
+ await page.keyboard.press( 'Enter' );
741
+ await page.keyboard.type( 'second' );
742
+
743
+ // Multi select both paragraphs.
744
+ await pressKeyTimes( 'ArrowLeft', 2 );
745
+ await page.keyboard.down( 'Shift' );
746
+ await pressKeyTimes( 'ArrowLeft', 2 );
747
+ await page.keyboard.press( 'ArrowUp' );
748
+ await page.keyboard.up( 'Shift' );
749
+ await pressKeyWithModifier( 'primary', 'b' );
750
+ const paragraphs = await page.$$eval(
751
+ '[data-type="core/paragraph"]',
752
+ ( nodes ) => Array.from( nodes ).map( ( node ) => node.innerHTML )
753
+ );
754
+ expect( paragraphs ).toEqual( [ 'first', 'second' ] );
755
+ } );
753
756
  } );
@@ -681,17 +681,15 @@ describe.skip( 'Navigation editor', () => {
681
681
 
682
682
  // Get the title/label of the last Nav item inside the Nav block.
683
683
  const lastItemAttributes = await page.evaluate( () => {
684
- const { getBlockOrder, getBlocks } = wp.data.select(
685
- 'core/block-editor'
686
- );
684
+ const { getBlockOrder, getBlocks } =
685
+ wp.data.select( 'core/block-editor' );
687
686
 
688
687
  const lockedNavigationBlock = getBlockOrder()[ 0 ];
689
688
 
690
689
  const navItemBlocks = getBlocks( lockedNavigationBlock );
691
690
 
692
- const { attributes } = navItemBlocks[
693
- navItemBlocks.length - 1
694
- ];
691
+ const { attributes } =
692
+ navItemBlocks[ navItemBlocks.length - 1 ];
695
693
 
696
694
  return attributes;
697
695
  } );
@@ -3,7 +3,6 @@
3
3
  */
4
4
  import { basename, join } from 'path';
5
5
  import { writeFileSync } from 'fs';
6
- import { sum } from 'lodash';
7
6
 
8
7
  /**
9
8
  * WordPress dependencies
@@ -136,11 +135,8 @@ describe( 'Post Editor Performance', () => {
136
135
  }
137
136
  await page.tracing.stop();
138
137
  traceResults = JSON.parse( readFile( traceFile ) );
139
- const [
140
- keyDownEvents,
141
- keyPressEvents,
142
- keyUpEvents,
143
- ] = getTypingEventDurations( traceResults );
138
+ const [ keyDownEvents, keyPressEvents, keyUpEvents ] =
139
+ getTypingEventDurations( traceResults );
144
140
  if (
145
141
  keyDownEvents.length === keyPressEvents.length &&
146
142
  keyPressEvents.length === keyUpEvents.length
@@ -226,6 +222,10 @@ describe( 'Post Editor Performance', () => {
226
222
  } );
227
223
 
228
224
  it( 'Searching the inserter', async () => {
225
+ function sum( arr ) {
226
+ return arr.reduce( ( a, b ) => a + b, 0 );
227
+ }
228
+
229
229
  // Measure time to search the inserter and get results.
230
230
  await openGlobalBlockInserter();
231
231
  for ( let j = 0; j < 10; j++ ) {
@@ -240,11 +240,8 @@ describe( 'Post Editor Performance', () => {
240
240
  await page.keyboard.type( 'p' );
241
241
  await page.tracing.stop();
242
242
  traceResults = JSON.parse( readFile( traceFile ) );
243
- const [
244
- keyDownEvents,
245
- keyPressEvents,
246
- keyUpEvents,
247
- ] = getTypingEventDurations( traceResults );
243
+ const [ keyDownEvents, keyPressEvents, keyUpEvents ] =
244
+ getTypingEventDurations( traceResults );
248
245
  if (
249
246
  keyDownEvents.length === keyPressEvents.length &&
250
247
  keyPressEvents.length === keyUpEvents.length
@@ -284,9 +281,8 @@ describe( 'Post Editor Performance', () => {
284
281
  await page.tracing.stop();
285
282
 
286
283
  traceResults = JSON.parse( readFile( traceFile ) );
287
- const [ mouseOverEvents, mouseOutEvents ] = getHoverEventDurations(
288
- traceResults
289
- );
284
+ const [ mouseOverEvents, mouseOutEvents ] =
285
+ getHoverEventDurations( traceResults );
290
286
  for ( let k = 0; k < mouseOverEvents.length; k++ ) {
291
287
  results.inserterHover.push(
292
288
  mouseOverEvents[ k ] + mouseOutEvents[ k ]
@@ -130,11 +130,8 @@ describe( 'Site Editor Performance', () => {
130
130
  }
131
131
  await page.tracing.stop();
132
132
  const traceResults = JSON.parse( readFile( traceFile ) );
133
- const [
134
- keyDownEvents,
135
- keyPressEvents,
136
- keyUpEvents,
137
- ] = getTypingEventDurations( traceResults );
133
+ const [ keyDownEvents, keyPressEvents, keyUpEvents ] =
134
+ getTypingEventDurations( traceResults );
138
135
 
139
136
  for ( let j = 0; j < keyDownEvents.length; j++ ) {
140
137
  results.type.push(
@@ -113,7 +113,8 @@ describe( 'Widgets screen', () => {
113
113
  const insertionPointIndicator = await page.$(
114
114
  '.block-editor-block-list__insertion-point-indicator'
115
115
  );
116
- const insertionPointIndicatorBoundingBox = await insertionPointIndicator.boundingBox();
116
+ const insertionPointIndicatorBoundingBox =
117
+ await insertionPointIndicator.boundingBox();
117
118
 
118
119
  expect(
119
120
  insertionPointIndicatorBoundingBox.y > lastBlockBoundingBox.y
@@ -298,7 +299,8 @@ describe( 'Widgets screen', () => {
298
299
  firstParagraphBlock
299
300
  );
300
301
 
301
- const secondParagraphBlockBoundingBox = await secondParagraphBlock.boundingBox();
302
+ const secondParagraphBlockBoundingBox =
303
+ await secondParagraphBlock.boundingBox();
302
304
 
303
305
  // Click outside the block to move the focus back to the widget area.
304
306
  await page.mouse.click(
@@ -560,16 +562,18 @@ describe( 'Widgets screen', () => {
560
562
  {},
561
563
  firstParagraphBlock
562
564
  );
563
- const duplicatedParagraphBlock = await firstParagraphBlock.evaluateHandle(
564
- ( paragraph ) => paragraph.nextSibling
565
- );
565
+ const duplicatedParagraphBlock =
566
+ await firstParagraphBlock.evaluateHandle(
567
+ ( paragraph ) => paragraph.nextSibling
568
+ );
566
569
 
567
570
  const firstParagraphBlockClientId = await firstParagraphBlock.evaluate(
568
571
  ( node ) => node.dataset.block
569
572
  );
570
- const duplicatedParagraphBlockClientId = await duplicatedParagraphBlock.evaluate(
571
- ( node ) => node.dataset.block
572
- );
573
+ const duplicatedParagraphBlockClientId =
574
+ await duplicatedParagraphBlock.evaluate(
575
+ ( node ) => node.dataset.block
576
+ );
573
577
 
574
578
  expect( firstParagraphBlockClientId ).not.toBe(
575
579
  duplicatedParagraphBlockClientId
@@ -1,14 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`Code can be created by three backticks and enter 1`] = `
4
- "<!-- wp:code -->
5
- <pre class=\\"wp-block-code\\"><code>&lt;?php</code></pre>
6
- <!-- /wp:code -->"
7
- `;
8
-
9
- exports[`Code should paste plain text 1`] = `
10
- "<!-- wp:code -->
11
- <pre class=\\"wp-block-code\\"><code>&lt;img />
12
- &lt;br></code></pre>
13
- <!-- /wp:code -->"
14
- `;
@@ -1,8 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`HTML block can be created by typing "/html" 1`] = `
4
- "<!-- wp:html -->
5
- <p>Pythagorean theorem:
6
- <var>a</var><sup>2</sup> + <var>b</var><sup>2</sup> = <var>c</var><sup>2</sup> </p>
7
- <!-- /wp:html -->"
8
- `;
@@ -1,25 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`Image allows changing aspect ratio using the crop tools 1`] = `"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAAHRyWFlaAAABZAAAABRnWFlaAAABeAAAABRiWFlaAAABjAAAABRyVFJDAAABoAAAAChnVFJDAAABoAAAAChiVFJDAAABoAAAACh3dHB0AAAByAAAABRjcHJ0AAAB3AAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAFgAAAAcAHMAUgBHAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z3BhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABYWVogAAAAAAAA9tYAAQAAAADTLW1sdWMAAAAAAAAAAQAAAAxlblVTAAAAIAAAABwARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAMgAwADEANv/bAEMAAwICAgICAwICAgMDAwMEBgQEBAQECAYGBQYJCAoKCQgJCQoMDwwKCw4LCQkNEQ0ODxAQERAKDBITEhATDxAQEP/bAEMBAwMDBAMECAQECBALCQsQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEP/AABEIAAoACgMBIgACEQEDEQH/xAAVAAEBAAAAAAAAAAAAAAAAAAAJB//EACAQAAADCQEAAAAAAAAAAAAAAAAEBQEDBgk1OHR3srX/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AlMlS6eKdfnvRTgrytVTuQ86aChkqXTxTr896KcFeVqqdyHnTQH//2Q=="`;
4
-
5
- exports[`Image allows changing aspect ratio using the crop tools 2`] = `"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAAHRyWFlaAAABZAAAABRnWFlaAAABeAAAABRiWFlaAAABjAAAABRyVFJDAAABoAAAAChnVFJDAAABoAAAAChiVFJDAAABoAAAACh3dHB0AAAByAAAABRjcHJ0AAAB3AAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAFgAAAAcAHMAUgBHAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z3BhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABYWVogAAAAAAAA9tYAAQAAAADTLW1sdWMAAAAAAAAAAQAAAAxlblVTAAAAIAAAABwARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAMgAwADEANv/bAEMAAwICAgICAwICAgMDAwMEBgQEBAQECAYGBQYJCAoKCQgJCQoMDwwKCw4LCQkNEQ0ODxAQERAKDBITEhATDxAQEP/bAEMBAwMDBAMECAQECBALCQsQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEP/AABEIAAYACgMBIgACEQEDEQH/xAAWAAEBAQAAAAAAAAAAAAAAAAAABwn/xAAgEAABAgUFAAAAAAAAAAAAAAAABAUBAwYJNTh0d7K1/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AJTZU1T1Tx+u9FuNXnbKrdxM7RAA/9k="`;
6
-
7
- exports[`Image allows rotating using the crop tools 1`] = `"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAAHRyWFlaAAABZAAAABRnWFlaAAABeAAAABRiWFlaAAABjAAAABRyVFJDAAABoAAAAChnVFJDAAABoAAAAChiVFJDAAABoAAAACh3dHB0AAAByAAAABRjcHJ0AAAB3AAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAFgAAAAcAHMAUgBHAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z3BhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABYWVogAAAAAAAA9tYAAQAAAADTLW1sdWMAAAAAAAAAAQAAAAxlblVTAAAAIAAAABwARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAMgAwADEANv/bAEMAAwICAgICAwICAgMDAwMEBgQEBAQECAYGBQYJCAoKCQgJCQoMDwwKCw4LCQkNEQ0ODxAQERAKDBITEhATDxAQEP/bAEMBAwMDBAMECAQECBALCQsQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEP/AABEIAAoACgMBIgACEQEDEQH/xAAVAAEBAAAAAAAAAAAAAAAAAAAJB//EACAQAAADCQEAAAAAAAAAAAAAAAAEBQEDBgk1OHR3srX/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AlMlS6eKdfnvRTgrytVTuQ86aChkqXTxTr896KcFeVqqdyHnTQH//2Q=="`;
8
-
9
- exports[`Image allows rotating using the crop tools 2`] = `"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAAHRyWFlaAAABZAAAABRnWFlaAAABeAAAABRiWFlaAAABjAAAABRyVFJDAAABoAAAAChnVFJDAAABoAAAAChiVFJDAAABoAAAACh3dHB0AAAByAAAABRjcHJ0AAAB3AAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAFgAAAAcAHMAUgBHAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z3BhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABYWVogAAAAAAAA9tYAAQAAAADTLW1sdWMAAAAAAAAAAQAAAAxlblVTAAAAIAAAABwARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAMgAwADEANv/bAEMAAwICAgICAwICAgMDAwMEBgQEBAQECAYGBQYJCAoKCQgJCQoMDwwKCw4LCQkNEQ0ODxAQERAKDBITEhATDxAQEP/bAEMBAwMDBAMECAQECBALCQsQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEP/AABEIAAoACgMBIgACEQEDEQH/xAAWAAEBAQAAAAAAAAAAAAAAAAAABwn/xAAhEAAAAgsBAAAAAAAAAAAAAAAABQIEBwgVGVVWk5XR1P/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCUyVHp7+ZVtTHwhJUenv5lW1MfCNXosa1NbzJdCLGtTW8yXQH/2Q=="`;
10
-
11
- exports[`Image allows zooming using the crop tools 1`] = `"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAAHRyWFlaAAABZAAAABRnWFlaAAABeAAAABRiWFlaAAABjAAAABRyVFJDAAABoAAAAChnVFJDAAABoAAAAChiVFJDAAABoAAAACh3dHB0AAAByAAAABRjcHJ0AAAB3AAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAFgAAAAcAHMAUgBHAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z3BhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABYWVogAAAAAAAA9tYAAQAAAADTLW1sdWMAAAAAAAAAAQAAAAxlblVTAAAAIAAAABwARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAMgAwADEANv/bAEMAAwICAgICAwICAgMDAwMEBgQEBAQECAYGBQYJCAoKCQgJCQoMDwwKCw4LCQkNEQ0ODxAQERAKDBITEhATDxAQEP/bAEMBAwMDBAMECAQECBALCQsQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEP/AABEIAAoACgMBIgACEQEDEQH/xAAVAAEBAAAAAAAAAAAAAAAAAAAJB//EACAQAAADCQEAAAAAAAAAAAAAAAAEBQEDBgk1OHR3srX/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AlMlS6eKdfnvRTgrytVTuQ86aChkqXTxTr896KcFeVqqdyHnTQH//2Q=="`;
12
-
13
- exports[`Image allows zooming using the crop tools 2`] = `"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAAHRyWFlaAAABZAAAABRnWFlaAAABeAAAABRiWFlaAAABjAAAABRyVFJDAAABoAAAAChnVFJDAAABoAAAAChiVFJDAAABoAAAACh3dHB0AAAByAAAABRjcHJ0AAAB3AAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAFgAAAAcAHMAUgBHAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z3BhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABYWVogAAAAAAAA9tYAAQAAAADTLW1sdWMAAAAAAAAAAQAAAAxlblVTAAAAIAAAABwARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAMgAwADEANv/bAEMAAwICAgICAwICAgMDAwMEBgQEBAQECAYGBQYJCAoKCQgJCQoMDwwKCw4LCQkNEQ0ODxAQERAKDBITEhATDxAQEP/bAEMBAwMDBAMECAQECBALCQsQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEP/AABEIAAUABQMBIgACEQEDEQH/xAAVAAEBAAAAAAAAAAAAAAAAAAAACP/EABoQAQABBQAAAAAAAAAAAAAAAAAEBwk4hbX/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8Aqm1xgnTLddiaAD//2Q=="`;
14
-
15
- exports[`Image should drag and drop files into media placeholder 1`] = `
16
- "<!-- wp:image -->
17
- <figure class=\\"wp-block-image\\"><img alt=\\"\\"/></figure>
18
- <!-- /wp:image -->"
19
- `;
20
-
21
- exports[`Image should undo without broken temporary state 1`] = `
22
- "<!-- wp:image -->
23
- <figure class=\\"wp-block-image\\"><img alt=\\"\\"/></figure>
24
- <!-- /wp:image -->"
25
- `;
@@ -1,24 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`Preformatted should preserve character newlines 1`] = `
4
- "<!-- wp:html -->
5
- <pre>1
6
- 2</pre>
7
- <!-- /wp:html -->"
8
- `;
9
-
10
- exports[`Preformatted should preserve character newlines 2`] = `
11
- "<!-- wp:preformatted -->
12
- <pre class=\\"wp-block-preformatted\\">0
13
- 1
14
- 2</pre>
15
- <!-- /wp:preformatted -->"
16
- `;
17
-
18
- exports[`Preformatted should preserve white space when merging 1`] = `
19
- "<!-- wp:preformatted -->
20
- <pre class=\\"wp-block-preformatted\\">1
21
- 2
22
- 3</pre>
23
- <!-- /wp:preformatted -->"
24
- `;
@@ -1,7 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`Separator can be created by three dashes and enter 1`] = `
4
- "<!-- wp:separator -->
5
- <hr class=\\"wp-block-separator has-alpha-channel-opacity\\"/>
6
- <!-- /wp:separator -->"
7
- `;
@@ -1,48 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import {
5
- insertBlock,
6
- clickBlockAppender,
7
- getEditedPostContent,
8
- createNewPost,
9
- setClipboardData,
10
- pressKeyWithModifier,
11
- } from '@wordpress/e2e-test-utils';
12
-
13
- describe( 'Code', () => {
14
- beforeEach( async () => {
15
- await createNewPost();
16
- } );
17
-
18
- it( 'can be created by three backticks and enter', async () => {
19
- await clickBlockAppender();
20
- await page.keyboard.type( '```' );
21
- await page.keyboard.press( 'Enter' );
22
- await page.keyboard.type( '<?php' );
23
-
24
- expect( await getEditedPostContent() ).toMatchSnapshot();
25
- } );
26
-
27
- it( 'should delete block when backspace in an empty code', async () => {
28
- await insertBlock( 'Code' );
29
- await page.keyboard.type( 'a' );
30
-
31
- await page.keyboard.press( 'Backspace' );
32
- await page.keyboard.press( 'Backspace' );
33
-
34
- // Expect code block to be deleted.
35
- expect( await getEditedPostContent() ).toBe( '' );
36
- } );
37
-
38
- it( 'should paste plain text', async () => {
39
- await insertBlock( 'Code' );
40
-
41
- // Test to see if HTML and white space is kept.
42
- await setClipboardData( { plainText: '<img />\n\t<br>' } );
43
-
44
- await pressKeyWithModifier( 'primary', 'v' );
45
-
46
- expect( await getEditedPostContent() ).toMatchSnapshot();
47
- } );
48
- } );
@@ -1,31 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import {
5
- clickBlockAppender,
6
- getEditedPostContent,
7
- createNewPost,
8
- } from '@wordpress/e2e-test-utils';
9
-
10
- describe( 'HTML block', () => {
11
- beforeEach( async () => {
12
- await createNewPost();
13
- } );
14
-
15
- it( 'can be created by typing "/html"', async () => {
16
- // Create a Custom HTML block with the slash shortcut.
17
- await clickBlockAppender();
18
- await page.keyboard.type( '/html' );
19
- await page.waitForXPath(
20
- `//*[contains(@class, "components-autocomplete__result") and contains(@class, "is-selected") and contains(text(), 'Custom HTML')]`
21
- );
22
- await page.keyboard.press( 'Enter' );
23
- await page.keyboard.type( '<p>Pythagorean theorem: ' );
24
- await page.keyboard.press( 'Enter' );
25
- await page.keyboard.type(
26
- '<var>a</var><sup>2</sup> + <var>b</var><sup>2</sup> = <var>c</var><sup>2</sup> </p>'
27
- );
28
-
29
- expect( await getEditedPostContent() ).toMatchSnapshot();
30
- } );
31
- } );