@wordpress/block-library 9.48.0 → 9.48.1
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.
- package/CHANGELOG.md +7 -1
- package/build/columns/transforms.cjs +65 -0
- package/build/columns/transforms.cjs.map +2 -2
- package/build/gallery/edit.cjs +212 -331
- package/build/gallery/edit.cjs.map +2 -2
- package/build/gallery/transforms.cjs +43 -0
- package/build/gallery/transforms.cjs.map +2 -2
- package/build/heading/edit.cjs +0 -1
- package/build/heading/edit.cjs.map +2 -2
- package/build/list/edit.cjs +1 -8
- package/build/list/edit.cjs.map +2 -2
- package/build/list/ordered-list-settings.cjs +1 -44
- package/build/list/ordered-list-settings.cjs.map +2 -2
- package/build/list-item/hooks/use-merge.cjs +47 -24
- package/build/list-item/hooks/use-merge.cjs.map +2 -2
- package/build/navigation/edit/index.cjs +15 -26
- package/build/navigation/edit/index.cjs.map +2 -2
- package/build/navigation-link/edit.cjs +0 -1
- package/build/navigation-link/edit.cjs.map +2 -2
- package/build/navigation-submenu/edit.cjs +2 -1
- package/build/navigation-submenu/edit.cjs.map +2 -2
- package/build/paragraph/deprecated.cjs +1 -0
- package/build/paragraph/deprecated.cjs.map +2 -2
- package/build/paragraph/edit.cjs +10 -1
- package/build/paragraph/edit.cjs.map +3 -3
- package/build/playlist/block.json +12 -0
- package/build/playlist/edit.cjs +27 -1
- package/build/playlist/edit.cjs.map +2 -2
- package/build/playlist/save.cjs +8 -1
- package/build/playlist/save.cjs.map +2 -2
- package/build/playlist/view.cjs +1 -0
- package/build/playlist/view.cjs.map +2 -2
- package/build/post-time-to-read/index.cjs +1 -1
- package/build/post-time-to-read/index.cjs.map +2 -2
- package/build/post-time-to-read/variations.cjs +1 -1
- package/build/post-time-to-read/variations.cjs.map +2 -2
- package/build/pullquote/edit.cjs +2 -7
- package/build/pullquote/edit.cjs.map +2 -2
- package/build/quote/edit.cjs +4 -9
- package/build/quote/edit.cjs.map +2 -2
- package/build/shortcode/transforms.cjs +2 -2
- package/build/shortcode/transforms.cjs.map +2 -2
- package/build/utils/waveform-player.cjs +42 -9
- package/build/utils/waveform-player.cjs.map +2 -2
- package/build/utils/waveform-utils.cjs +6 -4
- package/build/utils/waveform-utils.cjs.map +2 -2
- package/build/video/edit-common-settings.cjs +3 -6
- package/build/video/edit-common-settings.cjs.map +2 -2
- package/build-module/columns/transforms.mjs +65 -0
- package/build-module/columns/transforms.mjs.map +2 -2
- package/build-module/gallery/edit.mjs +214 -334
- package/build-module/gallery/edit.mjs.map +2 -2
- package/build-module/gallery/transforms.mjs +43 -0
- package/build-module/gallery/transforms.mjs.map +2 -2
- package/build-module/heading/edit.mjs +1 -2
- package/build-module/heading/edit.mjs.map +2 -2
- package/build-module/list/edit.mjs +2 -9
- package/build-module/list/edit.mjs.map +2 -2
- package/build-module/list/ordered-list-settings.mjs +1 -45
- package/build-module/list/ordered-list-settings.mjs.map +2 -2
- package/build-module/list-item/hooks/use-merge.mjs +48 -25
- package/build-module/list-item/hooks/use-merge.mjs.map +2 -2
- package/build-module/navigation/edit/index.mjs +16 -33
- package/build-module/navigation/edit/index.mjs.map +2 -2
- package/build-module/navigation-link/edit.mjs +0 -1
- package/build-module/navigation-link/edit.mjs.map +2 -2
- package/build-module/navigation-submenu/edit.mjs +2 -1
- package/build-module/navigation-submenu/edit.mjs.map +2 -2
- package/build-module/paragraph/deprecated.mjs +1 -0
- package/build-module/paragraph/deprecated.mjs.map +2 -2
- package/build-module/paragraph/edit.mjs +12 -2
- package/build-module/paragraph/edit.mjs.map +2 -2
- package/build-module/playlist/block.json +12 -0
- package/build-module/playlist/edit.mjs +27 -1
- package/build-module/playlist/edit.mjs.map +2 -2
- package/build-module/playlist/save.mjs +8 -1
- package/build-module/playlist/save.mjs.map +2 -2
- package/build-module/playlist/view.mjs +1 -0
- package/build-module/playlist/view.mjs.map +2 -2
- package/build-module/post-time-to-read/index.mjs +1 -1
- package/build-module/post-time-to-read/index.mjs.map +2 -2
- package/build-module/post-time-to-read/variations.mjs +2 -2
- package/build-module/post-time-to-read/variations.mjs.map +2 -2
- package/build-module/pullquote/edit.mjs +2 -7
- package/build-module/pullquote/edit.mjs.map +2 -2
- package/build-module/quote/edit.mjs +5 -10
- package/build-module/quote/edit.mjs.map +2 -2
- package/build-module/shortcode/transforms.mjs +2 -2
- package/build-module/shortcode/transforms.mjs.map +2 -2
- package/build-module/utils/waveform-player.mjs +44 -11
- package/build-module/utils/waveform-player.mjs.map +2 -2
- package/build-module/utils/waveform-utils.mjs +6 -4
- package/build-module/utils/waveform-utils.mjs.map +2 -2
- package/build-module/video/edit-common-settings.mjs +4 -7
- package/build-module/video/edit-common-settings.mjs.map +2 -2
- package/build-style/comment-template/style-rtl.css +1 -0
- package/build-style/comment-template/style.css +1 -0
- package/build-style/common-rtl.css +30 -10
- package/build-style/common.css +30 -10
- package/build-style/cover/style-rtl.css +2 -1
- package/build-style/cover/style.css +2 -1
- package/build-style/editor-rtl.css +22 -11
- package/build-style/editor.css +22 -11
- package/build-style/form-input/style-rtl.css +2 -0
- package/build-style/form-input/style.css +2 -0
- package/build-style/gallery/style-rtl.css +4 -2
- package/build-style/gallery/style.css +4 -2
- package/build-style/media-text/style-rtl.css +2 -1
- package/build-style/media-text/style.css +2 -1
- package/build-style/playlist/style-rtl.css +3 -0
- package/build-style/playlist/style.css +3 -0
- package/build-style/query/editor-rtl.css +8 -4
- package/build-style/query/editor.css +8 -4
- package/build-style/read-more/style-rtl.css +1 -0
- package/build-style/read-more/style.css +1 -0
- package/build-style/reset-rtl.css +3 -1
- package/build-style/reset.css +3 -1
- package/build-style/search/style-rtl.css +3 -1
- package/build-style/search/style.css +3 -1
- package/build-style/site-logo/editor-rtl.css +2 -1
- package/build-style/site-logo/editor.css +2 -1
- package/build-style/style-rtl.css +53 -17
- package/build-style/style.css +53 -17
- package/build-style/tab/style-rtl.css +3 -1
- package/build-style/tab/style.css +3 -1
- package/build-style/template-part/editor-rtl.css +8 -4
- package/build-style/template-part/editor.css +8 -4
- package/build-style/video/style-rtl.css +2 -1
- package/build-style/video/style.css +2 -1
- package/package.json +49 -45
- package/src/accordion/README.md +97 -0
- package/src/accordion-heading/README.md +81 -0
- package/src/accordion-item/README.md +85 -0
- package/src/accordion-panel/README.md +74 -0
- package/src/archives/README.md +56 -0
- package/src/audio/README.md +55 -0
- package/src/avatar/README.md +74 -0
- package/src/block/README.md +56 -0
- package/src/breadcrumbs/README.md +67 -0
- package/src/button/README.md +93 -0
- package/src/buttons/README.md +80 -0
- package/src/calendar/README.md +51 -0
- package/src/categories/README.md +69 -0
- package/src/code/README.md +55 -0
- package/src/column/README.md +72 -0
- package/src/columns/README.md +90 -0
- package/src/columns/test/transforms.js +164 -0
- package/src/columns/transforms.js +74 -0
- package/src/comment-author-avatar/README.md +63 -0
- package/src/comment-author-name/README.md +67 -0
- package/src/comment-content/README.md +61 -0
- package/src/comment-date/README.md +67 -0
- package/src/comment-edit-link/README.md +67 -0
- package/src/comment-reply-link/README.md +63 -0
- package/src/comment-template/README.md +60 -0
- package/src/comments/README.md +88 -0
- package/src/comments-pagination/README.md +77 -0
- package/src/comments-pagination-next/README.md +64 -0
- package/src/comments-pagination-numbers/README.md +64 -0
- package/src/comments-pagination-previous/README.md +64 -0
- package/src/comments-title/README.md +70 -0
- package/src/common.scss +63 -10
- package/src/cover/README.md +111 -0
- package/src/details/README.md +65 -0
- package/src/embed/README.md +56 -0
- package/src/file/README.md +60 -0
- package/src/footnotes/README.md +64 -0
- package/src/form/README.md +90 -0
- package/src/form-input/README.md +74 -0
- package/src/form-submission-notification/README.md +50 -0
- package/src/form-submit-button/README.md +54 -0
- package/src/freeform/README.md +49 -0
- package/src/gallery/README.md +115 -0
- package/src/gallery/edit.js +213 -350
- package/src/gallery/test/transforms.js +155 -0
- package/src/gallery/transforms.js +47 -0
- package/src/group/README.md +80 -0
- package/src/heading/README.md +60 -0
- package/src/heading/edit.js +1 -2
- package/src/home-link/README.md +66 -0
- package/src/home-link/index.php +3 -15
- package/src/html/README.md +48 -0
- package/src/icon/README.md +63 -0
- package/src/image/README.md +102 -0
- package/src/image/index.php +4 -4
- package/src/latest-comments/README.md +57 -0
- package/src/latest-posts/README.md +71 -0
- package/src/list/README.md +70 -0
- package/src/list/edit.js +2 -9
- package/src/list/ordered-list-settings.js +46 -92
- package/src/list-item/README.md +71 -0
- package/src/list-item/hooks/use-merge.js +53 -46
- package/src/loginout/README.md +56 -0
- package/src/math/README.md +50 -0
- package/src/media-text/README.md +92 -0
- package/src/missing/README.md +55 -0
- package/src/more/README.md +49 -0
- package/src/navigation/README.md +115 -0
- package/src/navigation/edit/index.js +10 -30
- package/src/navigation-link/README.md +93 -0
- package/src/navigation-link/edit.js +0 -1
- package/src/navigation-link/index.php +1 -15
- package/src/navigation-overlay-close/README.md +48 -0
- package/src/navigation-submenu/README.md +84 -0
- package/src/navigation-submenu/edit.js +1 -0
- package/src/navigation-submenu/index.php +1 -17
- package/src/nextpage/README.md +50 -0
- package/src/page-list/README.md +84 -0
- package/src/page-list/index.php +3 -15
- package/src/page-list-item/README.md +77 -0
- package/src/paragraph/README.md +70 -0
- package/src/paragraph/deprecated.js +1 -0
- package/src/paragraph/edit.js +13 -1
- package/src/pattern/README.md +45 -0
- package/src/playlist/README.md +86 -0
- package/src/playlist/block.json +12 -0
- package/src/playlist/edit.js +27 -0
- package/src/playlist/index.php +10 -3
- package/src/playlist/save.js +9 -1
- package/src/playlist/style.scss +7 -0
- package/src/playlist/view.js +1 -0
- package/src/playlist-track/README.md +69 -0
- package/src/post-author/README.md +78 -0
- package/src/post-author-biography/README.md +59 -0
- package/src/post-author-name/README.md +63 -0
- package/src/post-author-name/index.php +1 -1
- package/src/post-comment/README.md +61 -0
- package/src/post-comments-count/README.md +58 -0
- package/src/post-comments-form/README.md +59 -0
- package/src/post-comments-link/README.md +60 -0
- package/src/post-content/README.md +71 -0
- package/src/post-date/README.md +65 -0
- package/src/post-date/index.php +1 -1
- package/src/post-excerpt/README.md +66 -0
- package/src/post-featured-image/README.md +85 -0
- package/src/post-featured-image/index.php +1 -1
- package/src/post-navigation-link/README.md +63 -0
- package/src/post-template/README.md +71 -0
- package/src/post-terms/README.md +65 -0
- package/src/post-time-to-read/README.md +63 -0
- package/src/post-time-to-read/index.js +1 -1
- package/src/post-time-to-read/variations.js +2 -2
- package/src/post-title/README.md +69 -0
- package/src/preformatted/README.md +50 -0
- package/src/pullquote/README.md +64 -0
- package/src/pullquote/edit.js +1 -7
- package/src/query/README.md +64 -0
- package/src/query-no-results/README.md +65 -0
- package/src/query-pagination/README.md +79 -0
- package/src/query-pagination-next/README.md +67 -0
- package/src/query-pagination-numbers/README.md +65 -0
- package/src/query-pagination-previous/README.md +67 -0
- package/src/query-title/README.md +65 -0
- package/src/query-total/README.md +66 -0
- package/src/quote/README.md +75 -0
- package/src/quote/edit.js +3 -9
- package/src/read-more/README.md +61 -0
- package/src/read-more/index.php +2 -2
- package/src/rss/README.md +62 -0
- package/src/search/README.md +66 -0
- package/src/separator/README.md +62 -0
- package/src/shortcode/README.md +44 -0
- package/src/shortcode/transforms.js +2 -2
- package/src/site-logo/README.md +72 -0
- package/src/site-tagline/README.md +56 -0
- package/src/site-title/README.md +57 -0
- package/src/social-link/README.md +64 -0
- package/src/social-links/README.md +98 -0
- package/src/spacer/README.md +53 -0
- package/src/tab/README.md +69 -0
- package/src/tab-list/README.md +79 -0
- package/src/tab-panel/README.md +75 -0
- package/src/tab-panels/README.md +75 -0
- package/src/table/README.md +71 -0
- package/src/table-of-contents/README.md +61 -0
- package/src/tabs/README.md +83 -0
- package/src/tag-cloud/README.md +62 -0
- package/src/template-part/README.md +48 -0
- package/src/term-count/README.md +59 -0
- package/src/term-description/README.md +60 -0
- package/src/term-name/README.md +65 -0
- package/src/term-template/README.md +65 -0
- package/src/terms-query/README.md +58 -0
- package/src/text-columns/README.md +51 -0
- package/src/utils/test/waveform-player.js +254 -0
- package/src/utils/waveform-player.js +90 -18
- package/src/utils/waveform-utils.js +15 -11
- package/src/verse/README.md +58 -0
- package/src/video/README.md +58 -0
- package/src/video/edit-common-settings.js +4 -7
- package/src/audio/edit.native.js +0 -250
- package/src/audio/style.native.scss +0 -13
- package/src/audio/test/__snapshots__/edit.native.js.snap +0 -546
- package/src/audio/test/__snapshots__/transforms.native.js.snap +0 -25
- package/src/audio/test/edit.native.js +0 -132
- package/src/audio/test/transforms.native.js +0 -43
- package/src/audio/transforms.native.js +0 -12
- package/src/block/edit-title.native.js +0 -67
- package/src/block/edit.native.js +0 -247
- package/src/block/editor.native.scss +0 -125
- package/src/block/test/__snapshots__/transforms.native.js.snap +0 -15
- package/src/block/test/edit.native.js +0 -262
- package/src/block/test/transforms.native.js +0 -40
- package/src/button/color-background.native.js +0 -41
- package/src/button/edit.native.js +0 -567
- package/src/button/editor.native.scss +0 -70
- package/src/button/rich-text.android.scss +0 -6
- package/src/button/rich-text.ios.scss +0 -6
- package/src/buttons/edit.native.js +0 -157
- package/src/buttons/editor.native.scss +0 -11
- package/src/buttons/test/__snapshots__/edit.native.js.snap +0 -99
- package/src/buttons/test/__snapshots__/transforms.native.js.snap +0 -31
- package/src/buttons/test/edit.native.js +0 -485
- package/src/buttons/test/transforms.native.js +0 -48
- package/src/buttons/transforms.native.js +0 -12
- package/src/code/edit.native.js +0 -70
- package/src/code/test/__snapshots__/edit.native.js.snap +0 -13
- package/src/code/test/edit.native.js +0 -65
- package/src/code/theme.native.scss +0 -22
- package/src/code/transforms.native.js +0 -12
- package/src/column/column-preview.native.js +0 -58
- package/src/column/edit.native.js +0 -273
- package/src/column/editor.native.scss +0 -75
- package/src/columns/columnCalculations.native.js +0 -178
- package/src/columns/edit.native.js +0 -507
- package/src/columns/editor.native.scss +0 -17
- package/src/columns/test/__snapshots__/edit.native.js.snap +0 -305
- package/src/columns/test/__snapshots__/transforms.native.js.snap +0 -61
- package/src/columns/test/edit.native.js +0 -496
- package/src/columns/test/transforms.native.js +0 -89
- package/src/columns/transforms.native.js +0 -12
- package/src/cover/controls.native.js +0 -307
- package/src/cover/edit.native.js +0 -708
- package/src/cover/focal-point-settings-button.native.js +0 -53
- package/src/cover/overlay-color-settings.native.js +0 -106
- package/src/cover/style.native.scss +0 -220
- package/src/cover/test/__snapshots__/edit.native.js.snap +0 -105
- package/src/cover/test/__snapshots__/transforms.native.js.snap +0 -73
- package/src/cover/test/edit.native.js +0 -701
- package/src/cover/test/transforms.native.js +0 -116
- package/src/cover/transforms.native.js +0 -12
- package/src/cover/use-cover-is-dark.native.js +0 -51
- package/src/embed/edit.native.js +0 -345
- package/src/embed/embed-controls.native.js +0 -65
- package/src/embed/embed-link-settings.native.js +0 -99
- package/src/embed/embed-loading.native.js +0 -29
- package/src/embed/embed-no-preview.native.js +0 -230
- package/src/embed/embed-placeholder.native.js +0 -178
- package/src/embed/embed-preview.native.js +0 -157
- package/src/embed/styles.native.scss +0 -196
- package/src/embed/test/__snapshots__/index.native.js.snap +0 -191
- package/src/embed/test/__snapshots__/transforms.native.js.snap +0 -23
- package/src/embed/test/index.native.js +0 -1125
- package/src/embed/test/transforms.native.js +0 -44
- package/src/embed/transforms.native.js +0 -12
- package/src/embed/wp-embed-preview.native.js +0 -80
- package/src/file/edit.native.js +0 -605
- package/src/file/style.native.scss +0 -79
- package/src/file/test/__snapshots__/edit.native.js.snap +0 -580
- package/src/file/test/__snapshots__/transforms.native.js.snap +0 -19
- package/src/file/test/edit.native.js +0 -93
- package/src/file/test/transforms.native.js +0 -43
- package/src/file/transforms.native.js +0 -12
- package/src/freeform/edit.native.js +0 -13
- package/src/freeform/test/__snapshots__/index.native.js.snap +0 -7
- package/src/freeform/test/__snapshots__/transforms.native.js.snap +0 -19
- package/src/freeform/test/index.native.js +0 -57
- package/src/freeform/test/transforms.native.js +0 -39
- package/src/gallery/gallery-styles.native.scss +0 -8
- package/src/gallery/gallery.native.js +0 -124
- package/src/gallery/styles.native.scss +0 -7
- package/src/gallery/test/__snapshots__/index.native.js.snap +0 -177
- package/src/gallery/test/__snapshots__/transforms.native.js.snap +0 -53
- package/src/gallery/test/helpers.native.js +0 -106
- package/src/gallery/test/index.native.js +0 -700
- package/src/gallery/test/transforms.native.js +0 -53
- package/src/gallery/test/use-get-media.native.js +0 -24
- package/src/gallery/transforms.native.js +0 -12
- package/src/gallery/use-get-media.native.js +0 -49
- package/src/group/edit.native.js +0 -137
- package/src/group/editor.native.scss +0 -56
- package/src/group/test/__snapshots__/edit.native.js.snap +0 -19
- package/src/group/test/__snapshots__/transforms.native.js.snap +0 -35
- package/src/group/test/edit.native.js +0 -100
- package/src/group/test/transforms.native.js +0 -73
- package/src/heading/edit.native.js +0 -159
- package/src/heading/test/__snapshots__/index.native.js.snap +0 -43
- package/src/heading/test/__snapshots__/transforms.native.js.snap +0 -47
- package/src/heading/test/index.native.js +0 -257
- package/src/heading/test/transforms.native.js +0 -46
- package/src/heading/transforms.native.js +0 -12
- package/src/html/transforms.native.js +0 -11
- package/src/image/edit.native.js +0 -959
- package/src/image/styles.native.scss +0 -70
- package/src/image/test/__snapshots__/transforms.native.js.snap +0 -49
- package/src/image/test/edit.native.js +0 -459
- package/src/image/test/transforms.native.js +0 -49
- package/src/image/transforms.native.js +0 -12
- package/src/index.native.js +0 -274
- package/src/latest-posts/edit.native.js +0 -294
- package/src/latest-posts/style.native.scss +0 -47
- package/src/latest-posts/test/__snapshots__/edit.native.js.snap +0 -3
- package/src/latest-posts/test/__snapshots__/transforms.native.js.snap +0 -15
- package/src/latest-posts/test/edit.native.js +0 -49
- package/src/latest-posts/test/transforms.native.js +0 -61
- package/src/list/tag-name.native.js +0 -12
- package/src/list/test/__snapshots__/edit.native.js.snap +0 -121
- package/src/list/test/__snapshots__/transforms.native.js.snap +0 -85
- package/src/list/test/edit.native.js +0 -602
- package/src/list/test/transforms.native.js +0 -56
- package/src/list/transforms.native.js +0 -12
- package/src/list-item/edit.native.js +0 -175
- package/src/list-item/hooks/use-enter.native.js +0 -81
- package/src/list-item/icons.native.js +0 -34
- package/src/list-item/list-style-type.native.js +0 -146
- package/src/list-item/style.native.scss +0 -57
- package/src/media-text/edit.native.js +0 -417
- package/src/media-text/icon-retry.native.js +0 -11
- package/src/media-text/media-container.native.js +0 -393
- package/src/media-text/style.native.scss +0 -191
- package/src/media-text/test/__snapshots__/transforms.native.js.snap +0 -73
- package/src/media-text/test/edit.native.js +0 -58
- package/src/media-text/test/transforms.native.js +0 -116
- package/src/media-text/transforms.native.js +0 -12
- package/src/missing/edit.native.js +0 -294
- package/src/missing/style.native.scss +0 -79
- package/src/missing/test/__snapshots__/edit.native.js.snap +0 -110
- package/src/missing/test/edit-integration.native.js +0 -168
- package/src/missing/test/edit.native.js +0 -81
- package/src/more/edit.native.js +0 -36
- package/src/more/editor.native.scss +0 -21
- package/src/more/test/__snapshots__/edit.native.js.snap +0 -7
- package/src/more/test/__snapshots__/transforms.native.js.snap +0 -19
- package/src/more/test/edit.native.js +0 -41
- package/src/more/test/transforms.native.js +0 -42
- package/src/more/transforms.native.js +0 -12
- package/src/navigation-link/shared/build-css-font-sizes.php +0 -43
- package/src/nextpage/edit.native.js +0 -58
- package/src/nextpage/editor.native.scss +0 -21
- package/src/nextpage/test/__snapshots__/transforms.native.js.snap +0 -19
- package/src/nextpage/test/transforms.native.js +0 -42
- package/src/nextpage/transforms.native.js +0 -12
- package/src/paragraph/edit.native.js +0 -116
- package/src/paragraph/test/__snapshots__/edit.native.js.snap +0 -88
- package/src/paragraph/test/__snapshots__/transforms.native.js.snap +0 -65
- package/src/paragraph/test/edit.native.js +0 -999
- package/src/paragraph/test/transforms.native.js +0 -51
- package/src/paragraph/transforms.native.js +0 -12
- package/src/preformatted/edit.native.js +0 -48
- package/src/preformatted/styles.native.scss +0 -30
- package/src/preformatted/test/__snapshots__/edit.native.js.snap +0 -95
- package/src/preformatted/test/__snapshots__/transforms.native.js.snap +0 -37
- package/src/preformatted/test/edit.native.js +0 -111
- package/src/preformatted/test/transforms.native.js +0 -47
- package/src/preformatted/transforms.native.js +0 -12
- package/src/pullquote/blockquote.native.js +0 -39
- package/src/pullquote/blockquote.native.scss +0 -8
- package/src/pullquote/edit.native.js +0 -128
- package/src/pullquote/figure.native.js +0 -33
- package/src/pullquote/figure.native.scss +0 -16
- package/src/pullquote/test/__snapshots__/transforms.native.js.snap +0 -47
- package/src/pullquote/test/edit.native.js +0 -73
- package/src/pullquote/test/transforms.native.js +0 -46
- package/src/pullquote/transforms.native.js +0 -12
- package/src/quote/test/__snapshots__/transforms.native.js.snap +0 -49
- package/src/quote/test/edit.native.js +0 -94
- package/src/quote/test/transforms.native.js +0 -69
- package/src/quote/transforms.native.js +0 -12
- package/src/search/edit.native.js +0 -486
- package/src/search/style.native.scss +0 -99
- package/src/search/test/__snapshots__/edit.native.js.snap +0 -827
- package/src/search/test/__snapshots__/transforms.native.js.snap +0 -15
- package/src/search/test/edit.native.js +0 -170
- package/src/search/test/transforms.native.js +0 -40
- package/src/separator/separator-settings.native.js +0 -3
- package/src/separator/test/__snapshots__/edit.native.js.snap +0 -7
- package/src/separator/test/__snapshots__/transforms.native.js.snap +0 -25
- package/src/separator/test/edit.native.js +0 -41
- package/src/separator/test/transforms.native.js +0 -42
- package/src/separator/transforms.native.js +0 -12
- package/src/shortcode/edit.native.js +0 -77
- package/src/shortcode/style.native.scss +0 -44
- package/src/shortcode/test/__snapshots__/edit.native.js.snap +0 -9
- package/src/shortcode/test/__snapshots__/transforms.native.js.snap +0 -19
- package/src/shortcode/test/edit.native.js +0 -70
- package/src/shortcode/test/transforms.native.js +0 -42
- package/src/shortcode/transforms.native.js +0 -12
- package/src/social-link/edit.native.js +0 -219
- package/src/social-link/editor.native.scss +0 -18
- package/src/social-links/edit.native.js +0 -147
- package/src/social-links/editor.native.scss +0 -25
- package/src/social-links/test/__snapshots__/edit.native.js.snap +0 -57
- package/src/social-links/test/__snapshots__/transforms.native.js.snap +0 -31
- package/src/social-links/test/edit.native.js +0 -266
- package/src/social-links/test/transforms.native.js +0 -53
- package/src/spacer/controls.native.js +0 -86
- package/src/spacer/edit.native.js +0 -110
- package/src/spacer/editor.native.scss +0 -18
- package/src/spacer/save.native.js +0 -18
- package/src/spacer/test/__snapshots__/index.native.js.snap +0 -43
- package/src/spacer/test/__snapshots__/transforms.native.js.snap +0 -25
- package/src/spacer/test/index.native.js +0 -257
- package/src/spacer/test/transforms.native.js +0 -42
- package/src/table/transforms.native.js +0 -11
- package/src/text-columns/transforms.native.js +0 -12
- package/src/utils/init-block.native.js +0 -40
- package/src/utils/transformation-categories.native.js +0 -47
- package/src/verse/test/__snapshots__/edit.native.js.snap +0 -13
- package/src/verse/test/__snapshots__/transforms.native.js.snap +0 -31
- package/src/verse/test/edit.native.js +0 -118
- package/src/verse/test/transforms.native.js +0 -46
- package/src/verse/transforms.native.js +0 -12
- package/src/video/edit.native.js +0 -406
- package/src/video/icon-retry.native.js +0 -11
- package/src/video/style.native.scss +0 -81
- package/src/video/test/__snapshots__/transforms.native.js.snap +0 -41
- package/src/video/test/edit.native.js +0 -53
- package/src/video/test/transforms.native.js +0 -49
- package/src/video/transforms.native.js +0 -12
|
@@ -1,700 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import {
|
|
5
|
-
act,
|
|
6
|
-
typeInRichText,
|
|
7
|
-
fireEvent,
|
|
8
|
-
getBlock,
|
|
9
|
-
getEditorHtml,
|
|
10
|
-
initializeEditor,
|
|
11
|
-
openBlockSettings,
|
|
12
|
-
setupCoreBlocks,
|
|
13
|
-
setupMediaPicker,
|
|
14
|
-
setupMediaUpload,
|
|
15
|
-
triggerBlockListLayout,
|
|
16
|
-
within,
|
|
17
|
-
setupPicker,
|
|
18
|
-
} from 'test/helpers';
|
|
19
|
-
import { ActionSheetIOS } from 'react-native';
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* WordPress dependencies
|
|
23
|
-
*/
|
|
24
|
-
import { Platform } from '@wordpress/element';
|
|
25
|
-
import {
|
|
26
|
-
getOtherMediaOptions,
|
|
27
|
-
requestImageFailedRetryDialog,
|
|
28
|
-
requestImageUploadCancelDialog,
|
|
29
|
-
} from '@wordpress/react-native-bridge';
|
|
30
|
-
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
31
|
-
import { select } from '@wordpress/data';
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Internal dependencies
|
|
35
|
-
*/
|
|
36
|
-
import {
|
|
37
|
-
addGalleryBlock,
|
|
38
|
-
initializeWithGalleryBlock,
|
|
39
|
-
getGalleryItem,
|
|
40
|
-
generateGalleryBlock,
|
|
41
|
-
} from './helpers';
|
|
42
|
-
|
|
43
|
-
const MEDIA_OPTIONS = [
|
|
44
|
-
'Choose from device',
|
|
45
|
-
'Take a Photo',
|
|
46
|
-
'WordPress Media Library',
|
|
47
|
-
];
|
|
48
|
-
|
|
49
|
-
const media = [
|
|
50
|
-
{
|
|
51
|
-
localId: 1,
|
|
52
|
-
localUrl: 'file:///local-image-1.jpeg',
|
|
53
|
-
serverId: 2000,
|
|
54
|
-
serverUrl: 'https://test-site.files.wordpress.com/local-image-1.jpeg',
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
localId: 2,
|
|
58
|
-
localUrl: 'file:///local-image-2.jpeg',
|
|
59
|
-
serverId: 2001,
|
|
60
|
-
serverUrl: 'https://test-site.files.wordpress.com/local-image-2.jpeg',
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
localId: 3,
|
|
64
|
-
localUrl: 'file:///local-image-3.jpeg',
|
|
65
|
-
serverId: 2002,
|
|
66
|
-
serverUrl: 'https://test-site.files.wordpress.com/local-image-3.jpeg',
|
|
67
|
-
},
|
|
68
|
-
];
|
|
69
|
-
|
|
70
|
-
setupCoreBlocks();
|
|
71
|
-
|
|
72
|
-
describe( 'Gallery block', () => {
|
|
73
|
-
it( 'inserts block', async () => {
|
|
74
|
-
const screen = await addGalleryBlock();
|
|
75
|
-
|
|
76
|
-
expect( getBlock( screen, 'Gallery' ) ).toBeVisible();
|
|
77
|
-
expect( getEditorHtml() ).toMatchSnapshot();
|
|
78
|
-
} );
|
|
79
|
-
|
|
80
|
-
it( "renders gallery block placeholder correctly if the block doesn't have inner blocks", async () => {
|
|
81
|
-
const getBlockSpy = jest
|
|
82
|
-
.spyOn( select( blockEditorStore ), 'getBlock' )
|
|
83
|
-
.mockReturnValue( {
|
|
84
|
-
innerBlocks: undefined,
|
|
85
|
-
attributes: {
|
|
86
|
-
content: '',
|
|
87
|
-
},
|
|
88
|
-
} );
|
|
89
|
-
|
|
90
|
-
const screen = await addGalleryBlock();
|
|
91
|
-
|
|
92
|
-
expect( getBlock( screen, 'Gallery' ) ).toBeVisible();
|
|
93
|
-
expect( getEditorHtml() ).toMatchSnapshot();
|
|
94
|
-
|
|
95
|
-
getBlockSpy.mockRestore();
|
|
96
|
-
} );
|
|
97
|
-
|
|
98
|
-
it( 'selects a gallery item', async () => {
|
|
99
|
-
const { galleryBlock } = await initializeWithGalleryBlock( {
|
|
100
|
-
numberOfItems: 1,
|
|
101
|
-
media,
|
|
102
|
-
selected: false,
|
|
103
|
-
} );
|
|
104
|
-
|
|
105
|
-
const galleryItem = getGalleryItem( galleryBlock, 1 );
|
|
106
|
-
fireEvent.press( galleryItem );
|
|
107
|
-
|
|
108
|
-
expect( galleryItem ).toBeVisible();
|
|
109
|
-
} );
|
|
110
|
-
|
|
111
|
-
it( 'shows appender button when gallery has images', async () => {
|
|
112
|
-
const { galleryBlock, getByText } = await initializeWithGalleryBlock( {
|
|
113
|
-
numberOfItems: 1,
|
|
114
|
-
media,
|
|
115
|
-
} );
|
|
116
|
-
|
|
117
|
-
const appenderButton = within( galleryBlock ).getByTestId(
|
|
118
|
-
'media-placeholder-appender-icon'
|
|
119
|
-
);
|
|
120
|
-
fireEvent.press( appenderButton );
|
|
121
|
-
|
|
122
|
-
expect( getByText( 'Choose from device' ) ).toBeVisible();
|
|
123
|
-
expect( getByText( 'Take a Photo' ) ).toBeVisible();
|
|
124
|
-
expect( getByText( 'WordPress Media Library' ) ).toBeVisible();
|
|
125
|
-
} );
|
|
126
|
-
|
|
127
|
-
it( 'displays correct media options picker', async () => {
|
|
128
|
-
// Initialize with an empty gallery
|
|
129
|
-
const screen = await initializeEditor( {
|
|
130
|
-
initialHtml: generateGalleryBlock( 0 ),
|
|
131
|
-
} );
|
|
132
|
-
const { getByText } = screen;
|
|
133
|
-
|
|
134
|
-
// Tap on Gallery block
|
|
135
|
-
const block = await getBlock( screen, 'Gallery' );
|
|
136
|
-
fireEvent.press( block );
|
|
137
|
-
fireEvent.press( within( block ).getByText( 'Add media' ) );
|
|
138
|
-
|
|
139
|
-
// Observe that media options picker is displayed
|
|
140
|
-
/* eslint-disable jest/no-conditional-expect */
|
|
141
|
-
if ( Platform.isIOS ) {
|
|
142
|
-
// On iOS the picker is rendered natively, so we have
|
|
143
|
-
// to check the arguments passed to `ActionSheetIOS`.
|
|
144
|
-
expect(
|
|
145
|
-
ActionSheetIOS.showActionSheetWithOptions
|
|
146
|
-
).toHaveBeenCalledWith(
|
|
147
|
-
expect.objectContaining( {
|
|
148
|
-
title: 'Choose images',
|
|
149
|
-
options: [ 'Cancel', ...MEDIA_OPTIONS ],
|
|
150
|
-
} ),
|
|
151
|
-
expect.any( Function )
|
|
152
|
-
);
|
|
153
|
-
} else {
|
|
154
|
-
expect( getByText( 'Choose images' ) ).toBeVisible();
|
|
155
|
-
MEDIA_OPTIONS.forEach( ( option ) =>
|
|
156
|
-
expect( getByText( option ) ).toBeVisible()
|
|
157
|
-
);
|
|
158
|
-
}
|
|
159
|
-
/* eslint-enable jest/no-conditional-expect */
|
|
160
|
-
} );
|
|
161
|
-
|
|
162
|
-
it( 'block remains selected after dismissing the media options picker', async () => {
|
|
163
|
-
// Initialize with an empty gallery
|
|
164
|
-
const { getByLabelText, getByText, getByTestId } =
|
|
165
|
-
await initializeEditor( {
|
|
166
|
-
initialHtml: generateGalleryBlock( 0 ),
|
|
167
|
-
} );
|
|
168
|
-
|
|
169
|
-
// Tap on Gallery block
|
|
170
|
-
fireEvent.press( getByText( 'Add media' ) );
|
|
171
|
-
|
|
172
|
-
// Observe that media options picker is displayed
|
|
173
|
-
expect( getByText( 'Choose images' ) ).toBeVisible();
|
|
174
|
-
expect( getByText( 'WordPress Media Library' ) ).toBeVisible();
|
|
175
|
-
|
|
176
|
-
// Dismiss the picker
|
|
177
|
-
if ( Platform.isIOS ) {
|
|
178
|
-
fireEvent.press( getByText( 'Cancel' ) );
|
|
179
|
-
} else {
|
|
180
|
-
fireEvent( getByTestId( 'media-options-picker' ), 'backdropPress' );
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
// Observe that the block is selected, this is done by checking if the block settings
|
|
184
|
-
// button is visible
|
|
185
|
-
const blockActionsButton = getByLabelText( /Open Block Actions Menu/ );
|
|
186
|
-
expect( blockActionsButton ).toBeVisible();
|
|
187
|
-
} );
|
|
188
|
-
|
|
189
|
-
// Test case related to TC001 - Close/Re-open post with an ongoing image upload
|
|
190
|
-
// Reference: https://github.com/wordpress-mobile/test-cases/blob/trunk/test-cases/gutenberg/gallery.md#tc001
|
|
191
|
-
it( 'finishes pending uploads upon opening the editor', async () => {
|
|
192
|
-
const { notifyUploadingState, notifySucceedState } = setupMediaUpload();
|
|
193
|
-
|
|
194
|
-
// Initialize with a gallery that contains two items that are being uploaded
|
|
195
|
-
const { galleryBlock } = await initializeWithGalleryBlock( {
|
|
196
|
-
numberOfItems: 2,
|
|
197
|
-
media,
|
|
198
|
-
useLocalUrl: true,
|
|
199
|
-
} );
|
|
200
|
-
|
|
201
|
-
// Notify that the media items are uploading
|
|
202
|
-
await notifyUploadingState( media[ 0 ] );
|
|
203
|
-
await notifyUploadingState( media[ 1 ] );
|
|
204
|
-
|
|
205
|
-
// Check that images are showing a loading state
|
|
206
|
-
expect(
|
|
207
|
-
within( getGalleryItem( galleryBlock, 1 ) ).getByTestId( 'spinner' )
|
|
208
|
-
).toBeVisible();
|
|
209
|
-
expect(
|
|
210
|
-
within( getGalleryItem( galleryBlock, 2 ) ).getByTestId( 'spinner' )
|
|
211
|
-
).toBeVisible();
|
|
212
|
-
|
|
213
|
-
// Notify that the media items upload succeeded
|
|
214
|
-
await notifySucceedState( media[ 0 ] );
|
|
215
|
-
await notifySucceedState( media[ 1 ] );
|
|
216
|
-
|
|
217
|
-
expect( getEditorHtml() ).toMatchSnapshot();
|
|
218
|
-
} );
|
|
219
|
-
|
|
220
|
-
// Test case related to TC003 - Add caption to gallery
|
|
221
|
-
// Reference: https://github.com/wordpress-mobile/test-cases/blob/trunk/test-cases/gutenberg/gallery.md#tc003
|
|
222
|
-
it( 'sets caption to gallery', async () => {
|
|
223
|
-
// Initialize with a gallery that contains one item
|
|
224
|
-
const { getByLabelText } = await initializeWithGalleryBlock( {
|
|
225
|
-
numberOfItems: 1,
|
|
226
|
-
media,
|
|
227
|
-
} );
|
|
228
|
-
|
|
229
|
-
// Check gallery item caption is not visible
|
|
230
|
-
const galleryItemCaption = getByLabelText( /Image caption. Empty/, {
|
|
231
|
-
hidden: true,
|
|
232
|
-
} );
|
|
233
|
-
expect( galleryItemCaption ).not.toBeVisible();
|
|
234
|
-
|
|
235
|
-
// Set gallery caption
|
|
236
|
-
const captionField = within(
|
|
237
|
-
getByLabelText( /Gallery caption. Empty/ )
|
|
238
|
-
).getByPlaceholderText( 'Add caption' );
|
|
239
|
-
typeInRichText(
|
|
240
|
-
captionField,
|
|
241
|
-
'<strong>Bold</strong> <em>italic</em> <s>strikethrough</s> gallery caption'
|
|
242
|
-
);
|
|
243
|
-
|
|
244
|
-
expect( getEditorHtml() ).toMatchSnapshot();
|
|
245
|
-
} );
|
|
246
|
-
|
|
247
|
-
// Test case related to TC004 - Add caption to gallery images
|
|
248
|
-
// Reference: https://github.com/wordpress-mobile/test-cases/blob/trunk/test-cases/gutenberg/gallery.md#tc004
|
|
249
|
-
it( 'sets caption to gallery items', async () => {
|
|
250
|
-
// Initialize with a gallery that contains one item
|
|
251
|
-
const { galleryBlock } = await initializeWithGalleryBlock( {
|
|
252
|
-
numberOfItems: 1,
|
|
253
|
-
media,
|
|
254
|
-
} );
|
|
255
|
-
|
|
256
|
-
// Select gallery item
|
|
257
|
-
const galleryItem = getGalleryItem( galleryBlock, 1 );
|
|
258
|
-
fireEvent.press( galleryItem );
|
|
259
|
-
|
|
260
|
-
// Set gallery item caption
|
|
261
|
-
const captionField =
|
|
262
|
-
within( galleryItem ).getByPlaceholderText( 'Add caption' );
|
|
263
|
-
typeInRichText(
|
|
264
|
-
captionField,
|
|
265
|
-
'<strong>Bold</strong> <em>italic</em> <s>strikethrough</s> image caption'
|
|
266
|
-
);
|
|
267
|
-
|
|
268
|
-
expect( getEditorHtml() ).toMatchSnapshot();
|
|
269
|
-
} );
|
|
270
|
-
|
|
271
|
-
// Test case related to TC005 - Choose from device (stay in editor) - Successful upload
|
|
272
|
-
// Reference: https://github.com/wordpress-mobile/test-cases/blob/trunk/test-cases/gutenberg/gallery.md#tc005
|
|
273
|
-
it( 'successfully uploads items', async () => {
|
|
274
|
-
const { notifyUploadingState, notifySucceedState } = setupMediaUpload();
|
|
275
|
-
const { expectMediaPickerCall, mediaPickerCallback } =
|
|
276
|
-
setupMediaPicker();
|
|
277
|
-
|
|
278
|
-
// Initialize with an empty gallery
|
|
279
|
-
const screen = await initializeWithGalleryBlock();
|
|
280
|
-
const { galleryBlock, getByText } = screen;
|
|
281
|
-
const { selectOption } = setupPicker( screen, MEDIA_OPTIONS );
|
|
282
|
-
|
|
283
|
-
// Upload images from device
|
|
284
|
-
fireEvent.press( getByText( 'Add media' ) );
|
|
285
|
-
selectOption( 'Choose from device' );
|
|
286
|
-
expectMediaPickerCall( 'DEVICE_MEDIA_LIBRARY', [ 'image' ], true );
|
|
287
|
-
|
|
288
|
-
// Return media items picked
|
|
289
|
-
await mediaPickerCallback( media[ 0 ], media[ 1 ] );
|
|
290
|
-
|
|
291
|
-
// Check that gallery items are visible
|
|
292
|
-
await triggerBlockListLayout( galleryBlock );
|
|
293
|
-
const galleryItem1 = getGalleryItem( galleryBlock, 1 );
|
|
294
|
-
const galleryItem2 = getGalleryItem( galleryBlock, 2 );
|
|
295
|
-
expect( galleryItem1 ).toBeVisible();
|
|
296
|
-
expect( galleryItem2 ).toBeVisible();
|
|
297
|
-
|
|
298
|
-
// Check that images are showing a loading state
|
|
299
|
-
await notifyUploadingState( media[ 0 ] );
|
|
300
|
-
await notifyUploadingState( media[ 1 ] );
|
|
301
|
-
expect( within( galleryItem1 ).getByTestId( 'spinner' ) ).toBeVisible();
|
|
302
|
-
expect( within( galleryItem2 ).getByTestId( 'spinner' ) ).toBeVisible();
|
|
303
|
-
|
|
304
|
-
// Notify that the media items upload succeeded
|
|
305
|
-
await notifySucceedState( media[ 0 ] );
|
|
306
|
-
await notifySucceedState( media[ 1 ] );
|
|
307
|
-
|
|
308
|
-
expect( getEditorHtml() ).toMatchSnapshot();
|
|
309
|
-
} );
|
|
310
|
-
|
|
311
|
-
// Test case related to TC006 - Choose from device (stay in editor) - Failed upload
|
|
312
|
-
// Reference: https://github.com/wordpress-mobile/test-cases/blob/trunk/test-cases/gutenberg/gallery.md#tc006
|
|
313
|
-
it( 'handles failed uploads', async () => {
|
|
314
|
-
const { notifyUploadingState, notifyFailedState } = setupMediaUpload();
|
|
315
|
-
const { expectMediaPickerCall, mediaPickerCallback } =
|
|
316
|
-
setupMediaPicker();
|
|
317
|
-
|
|
318
|
-
// Initialize with an empty gallery
|
|
319
|
-
const { galleryBlock, getByText } = await initializeWithGalleryBlock();
|
|
320
|
-
|
|
321
|
-
// Upload images from device
|
|
322
|
-
fireEvent.press( getByText( 'Add media' ) );
|
|
323
|
-
fireEvent.press( getByText( 'Choose from device' ) );
|
|
324
|
-
expectMediaPickerCall( 'DEVICE_MEDIA_LIBRARY', [ 'image' ], true );
|
|
325
|
-
|
|
326
|
-
// Return media items picked
|
|
327
|
-
await mediaPickerCallback( media[ 0 ], media[ 1 ] );
|
|
328
|
-
|
|
329
|
-
// Check that gallery items are visible
|
|
330
|
-
await triggerBlockListLayout( galleryBlock );
|
|
331
|
-
const galleryItem1 = getGalleryItem( galleryBlock, 1 );
|
|
332
|
-
const galleryItem2 = getGalleryItem( galleryBlock, 2 );
|
|
333
|
-
expect( galleryItem1 ).toBeVisible();
|
|
334
|
-
expect( galleryItem2 ).toBeVisible();
|
|
335
|
-
|
|
336
|
-
// Check that images are showing a loading state
|
|
337
|
-
await notifyUploadingState( media[ 0 ] );
|
|
338
|
-
await notifyUploadingState( media[ 1 ] );
|
|
339
|
-
expect( within( galleryItem1 ).getByTestId( 'spinner' ) ).toBeVisible();
|
|
340
|
-
expect( within( galleryItem2 ).getByTestId( 'spinner' ) ).toBeVisible();
|
|
341
|
-
|
|
342
|
-
// Notify that the media items uploads failed
|
|
343
|
-
await notifyFailedState( media[ 0 ] );
|
|
344
|
-
await notifyFailedState( media[ 1 ] );
|
|
345
|
-
|
|
346
|
-
// Check that failed images provide the option to retry the upload
|
|
347
|
-
fireEvent.press( galleryItem1 );
|
|
348
|
-
fireEvent.press(
|
|
349
|
-
within( galleryItem1 ).getByText( /Failed to insert media/ )
|
|
350
|
-
);
|
|
351
|
-
expect( requestImageFailedRetryDialog ).toHaveBeenCalledWith(
|
|
352
|
-
media[ 0 ].localId
|
|
353
|
-
);
|
|
354
|
-
fireEvent.press( galleryItem2 );
|
|
355
|
-
fireEvent.press(
|
|
356
|
-
within( galleryItem2 ).getByText( /Failed to insert media/ )
|
|
357
|
-
);
|
|
358
|
-
expect( requestImageFailedRetryDialog ).toHaveBeenCalledWith(
|
|
359
|
-
media[ 1 ].localId
|
|
360
|
-
);
|
|
361
|
-
|
|
362
|
-
expect( getEditorHtml() ).toMatchSnapshot();
|
|
363
|
-
} );
|
|
364
|
-
|
|
365
|
-
// Test case related to TC007 - Take a photo
|
|
366
|
-
// Reference: https://github.com/wordpress-mobile/test-cases/blob/trunk/test-cases/gutenberg/gallery.md#tc007
|
|
367
|
-
it( 'takes a photo', async () => {
|
|
368
|
-
const { notifyUploadingState, notifySucceedState } = setupMediaUpload();
|
|
369
|
-
const { expectMediaPickerCall, mediaPickerCallback } =
|
|
370
|
-
setupMediaPicker();
|
|
371
|
-
|
|
372
|
-
// Initialize with an empty gallery
|
|
373
|
-
const { galleryBlock, getByText } = await initializeWithGalleryBlock();
|
|
374
|
-
|
|
375
|
-
// Take a photo
|
|
376
|
-
fireEvent.press( getByText( 'Add media' ) );
|
|
377
|
-
fireEvent.press( getByText( 'Take a Photo' ) );
|
|
378
|
-
expectMediaPickerCall( 'DEVICE_CAMERA', [ 'image' ], true );
|
|
379
|
-
|
|
380
|
-
// Return media item from photo taken
|
|
381
|
-
await mediaPickerCallback( media[ 0 ] );
|
|
382
|
-
|
|
383
|
-
// Check gallery item is visible
|
|
384
|
-
await triggerBlockListLayout( galleryBlock );
|
|
385
|
-
const galleryItem = getGalleryItem( galleryBlock, 1 );
|
|
386
|
-
expect( galleryItem ).toBeVisible();
|
|
387
|
-
|
|
388
|
-
// Check image is showing a loading state
|
|
389
|
-
await notifyUploadingState( media[ 0 ] );
|
|
390
|
-
expect( within( galleryItem ).getByTestId( 'spinner' ) ).toBeVisible();
|
|
391
|
-
|
|
392
|
-
// Notify that the media item upload succeeded
|
|
393
|
-
await notifySucceedState( media[ 0 ] );
|
|
394
|
-
|
|
395
|
-
expect( getEditorHtml() ).toMatchSnapshot();
|
|
396
|
-
} );
|
|
397
|
-
|
|
398
|
-
// Test case related to TC008 - Choose from the free photo library
|
|
399
|
-
// Reference: https://github.com/wordpress-mobile/test-cases/blob/trunk/test-cases/gutenberg/gallery.md#tc008
|
|
400
|
-
it( 'uploads from free photo library', async () => {
|
|
401
|
-
const freePhotoMedia = [ ...media ].map( ( item, index ) => ( {
|
|
402
|
-
...item,
|
|
403
|
-
localUrl: `https://images.pexels.com/photos/110854/pexels-photo-${
|
|
404
|
-
index + 1
|
|
405
|
-
}.jpeg`,
|
|
406
|
-
} ) );
|
|
407
|
-
const { notifyUploadingState, notifySucceedState } = setupMediaUpload();
|
|
408
|
-
const { expectMediaPickerCall, mediaPickerCallback } =
|
|
409
|
-
setupMediaPicker();
|
|
410
|
-
|
|
411
|
-
let otherMediaOptionsCallback;
|
|
412
|
-
getOtherMediaOptions.mockImplementation( ( filter, callback ) => {
|
|
413
|
-
otherMediaOptionsCallback = callback;
|
|
414
|
-
} );
|
|
415
|
-
|
|
416
|
-
// Initialize with an empty gallery
|
|
417
|
-
const { galleryBlock, getByText } = await initializeWithGalleryBlock();
|
|
418
|
-
|
|
419
|
-
// Notify other media options
|
|
420
|
-
act( () =>
|
|
421
|
-
otherMediaOptionsCallback( [
|
|
422
|
-
{
|
|
423
|
-
label: 'Free Photo Library',
|
|
424
|
-
value: 'stock-photo-library',
|
|
425
|
-
},
|
|
426
|
-
] )
|
|
427
|
-
);
|
|
428
|
-
|
|
429
|
-
// Upload images from free photo library
|
|
430
|
-
fireEvent.press( getByText( 'Add media' ) );
|
|
431
|
-
fireEvent.press( getByText( 'Free Photo Library' ) );
|
|
432
|
-
expectMediaPickerCall( 'stock-photo-library', [ 'image' ], true );
|
|
433
|
-
|
|
434
|
-
// Return media items picked
|
|
435
|
-
await act( async () =>
|
|
436
|
-
mediaPickerCallback( freePhotoMedia[ 0 ], freePhotoMedia[ 1 ] )
|
|
437
|
-
);
|
|
438
|
-
|
|
439
|
-
// Check that gallery items are visible
|
|
440
|
-
await triggerBlockListLayout( galleryBlock );
|
|
441
|
-
const galleryItem1 = getGalleryItem( galleryBlock, 1 );
|
|
442
|
-
const galleryItem2 = getGalleryItem( galleryBlock, 2 );
|
|
443
|
-
expect( galleryItem1 ).toBeVisible();
|
|
444
|
-
expect( galleryItem2 ).toBeVisible();
|
|
445
|
-
|
|
446
|
-
// Check that images are showing a loading state
|
|
447
|
-
await notifyUploadingState( freePhotoMedia[ 0 ] );
|
|
448
|
-
await notifyUploadingState( freePhotoMedia[ 1 ] );
|
|
449
|
-
expect( within( galleryItem1 ).getByTestId( 'spinner' ) ).toBeVisible();
|
|
450
|
-
expect( within( galleryItem2 ).getByTestId( 'spinner' ) ).toBeVisible();
|
|
451
|
-
|
|
452
|
-
// Notify that the media items upload succeeded
|
|
453
|
-
await notifySucceedState( freePhotoMedia[ 0 ] );
|
|
454
|
-
await notifySucceedState( freePhotoMedia[ 1 ] );
|
|
455
|
-
|
|
456
|
-
expect( getEditorHtml() ).toMatchSnapshot();
|
|
457
|
-
} );
|
|
458
|
-
|
|
459
|
-
// Test case related to TC009 - Choose from device (stay in editor) - Cancel upload
|
|
460
|
-
// Reference: https://github.com/wordpress-mobile/test-cases/blob/trunk/test-cases/gutenberg/gallery.md#tc009
|
|
461
|
-
it( 'cancels uploads', async () => {
|
|
462
|
-
const { notifyUploadingState, notifyResetState } = setupMediaUpload();
|
|
463
|
-
const { expectMediaPickerCall, mediaPickerCallback } =
|
|
464
|
-
setupMediaPicker();
|
|
465
|
-
|
|
466
|
-
// Initialize with an empty gallery
|
|
467
|
-
const { galleryBlock, getByText } = await initializeWithGalleryBlock();
|
|
468
|
-
|
|
469
|
-
// Upload images from device
|
|
470
|
-
fireEvent.press( getByText( 'Add media' ) );
|
|
471
|
-
fireEvent.press( getByText( 'Choose from device' ) );
|
|
472
|
-
expectMediaPickerCall( 'DEVICE_MEDIA_LIBRARY', [ 'image' ], true );
|
|
473
|
-
|
|
474
|
-
// Return media items picked
|
|
475
|
-
await mediaPickerCallback( media[ 0 ], media[ 1 ] );
|
|
476
|
-
|
|
477
|
-
// Check that gallery items are visible
|
|
478
|
-
await triggerBlockListLayout( galleryBlock );
|
|
479
|
-
const galleryItem1 = getGalleryItem( galleryBlock, 1 );
|
|
480
|
-
const galleryItem2 = getGalleryItem( galleryBlock, 2 );
|
|
481
|
-
expect( galleryItem1 ).toBeVisible();
|
|
482
|
-
expect( galleryItem2 ).toBeVisible();
|
|
483
|
-
|
|
484
|
-
// Check that images are showing a loading state
|
|
485
|
-
await notifyUploadingState( media[ 0 ] );
|
|
486
|
-
await notifyUploadingState( media[ 1 ] );
|
|
487
|
-
expect( within( galleryItem1 ).getByTestId( 'spinner' ) ).toBeVisible();
|
|
488
|
-
expect( within( galleryItem2 ).getByTestId( 'spinner' ) ).toBeVisible();
|
|
489
|
-
|
|
490
|
-
// Cancel uploads
|
|
491
|
-
fireEvent.press( galleryItem1 );
|
|
492
|
-
fireEvent.press( within( galleryItem1 ).getByTestId( 'spinner' ) );
|
|
493
|
-
expect( requestImageUploadCancelDialog ).toHaveBeenCalledWith(
|
|
494
|
-
media[ 0 ].localId
|
|
495
|
-
);
|
|
496
|
-
await notifyResetState( media[ 0 ] );
|
|
497
|
-
|
|
498
|
-
fireEvent.press( galleryItem2 );
|
|
499
|
-
fireEvent.press( within( galleryItem2 ).getByTestId( 'spinner' ) );
|
|
500
|
-
expect( requestImageUploadCancelDialog ).toHaveBeenCalledWith(
|
|
501
|
-
media[ 1 ].localId
|
|
502
|
-
);
|
|
503
|
-
await notifyResetState( media[ 1 ] );
|
|
504
|
-
|
|
505
|
-
expect( getEditorHtml() ).toMatchSnapshot();
|
|
506
|
-
} );
|
|
507
|
-
|
|
508
|
-
// Test case related to TC010 - Rearrange images in Gallery
|
|
509
|
-
// Reference: https://github.com/wordpress-mobile/test-cases/blob/trunk/test-cases/gutenberg/gallery.md#tc010
|
|
510
|
-
it( 'rearranges gallery items', async () => {
|
|
511
|
-
// Initialize with a gallery that contains three items
|
|
512
|
-
const { getByLabelText, galleryBlock } =
|
|
513
|
-
await initializeWithGalleryBlock( {
|
|
514
|
-
numberOfItems: 3,
|
|
515
|
-
media,
|
|
516
|
-
} );
|
|
517
|
-
|
|
518
|
-
// Rearrange items (final disposition will be: Image 3 - Image 1 - Image 2)
|
|
519
|
-
const galleryItem1 = getGalleryItem( galleryBlock, 1 );
|
|
520
|
-
const galleryItem3 = getGalleryItem( galleryBlock, 3 );
|
|
521
|
-
|
|
522
|
-
fireEvent.press( galleryItem3 );
|
|
523
|
-
await act( () =>
|
|
524
|
-
fireEvent.press(
|
|
525
|
-
getByLabelText(
|
|
526
|
-
/Move block left from position 3 to position 2/
|
|
527
|
-
)
|
|
528
|
-
)
|
|
529
|
-
);
|
|
530
|
-
|
|
531
|
-
fireEvent.press( galleryItem1 );
|
|
532
|
-
await act( () =>
|
|
533
|
-
fireEvent.press(
|
|
534
|
-
getByLabelText(
|
|
535
|
-
/Move block right from position 1 to position 2/
|
|
536
|
-
)
|
|
537
|
-
)
|
|
538
|
-
);
|
|
539
|
-
|
|
540
|
-
expect( getEditorHtml() ).toMatchSnapshot();
|
|
541
|
-
} );
|
|
542
|
-
|
|
543
|
-
// Test case related to TC011 - Choose from Other Apps (iOS Files App)
|
|
544
|
-
// Reference: https://github.com/wordpress-mobile/test-cases/blob/trunk/test-cases/gutenberg/gallery.md#tc011
|
|
545
|
-
it( 'uploads from other apps', async () => {
|
|
546
|
-
const otherAppsMedia = [ ...media ].map( ( item, index ) => ( {
|
|
547
|
-
...item,
|
|
548
|
-
localUrl: `file:///IMG_${ index + 1 }.JPG`,
|
|
549
|
-
} ) );
|
|
550
|
-
const { notifyUploadingState, notifySucceedState } = setupMediaUpload();
|
|
551
|
-
const { expectMediaPickerCall, mediaPickerCallback } =
|
|
552
|
-
setupMediaPicker();
|
|
553
|
-
|
|
554
|
-
let otherMediaOptionsCallback;
|
|
555
|
-
getOtherMediaOptions.mockImplementation( ( filter, callback ) => {
|
|
556
|
-
otherMediaOptionsCallback = callback;
|
|
557
|
-
} );
|
|
558
|
-
|
|
559
|
-
// Initialize with an empty gallery
|
|
560
|
-
const { galleryBlock, getByText } = await initializeWithGalleryBlock();
|
|
561
|
-
|
|
562
|
-
// Notify other media options
|
|
563
|
-
act( () =>
|
|
564
|
-
otherMediaOptionsCallback( [
|
|
565
|
-
{ label: 'Other Apps', value: 'other-files' },
|
|
566
|
-
] )
|
|
567
|
-
);
|
|
568
|
-
|
|
569
|
-
// Upload images from other apps
|
|
570
|
-
fireEvent.press( getByText( 'Add media' ) );
|
|
571
|
-
fireEvent.press( getByText( 'Other Apps' ) );
|
|
572
|
-
expectMediaPickerCall( 'other-files', [ 'image' ], true );
|
|
573
|
-
|
|
574
|
-
// Return media items picked
|
|
575
|
-
await mediaPickerCallback( otherAppsMedia[ 0 ], otherAppsMedia[ 1 ] );
|
|
576
|
-
|
|
577
|
-
// Check that gallery items are visible
|
|
578
|
-
await triggerBlockListLayout( galleryBlock );
|
|
579
|
-
const galleryItem1 = getGalleryItem( galleryBlock, 1 );
|
|
580
|
-
const galleryItem2 = getGalleryItem( galleryBlock, 2 );
|
|
581
|
-
expect( galleryItem1 ).toBeVisible();
|
|
582
|
-
expect( galleryItem2 ).toBeVisible();
|
|
583
|
-
|
|
584
|
-
// Check that images are showing a loading state
|
|
585
|
-
await notifyUploadingState( otherAppsMedia[ 0 ] );
|
|
586
|
-
await notifyUploadingState( otherAppsMedia[ 1 ] );
|
|
587
|
-
expect( within( galleryItem1 ).getByTestId( 'spinner' ) ).toBeVisible();
|
|
588
|
-
expect( within( galleryItem2 ).getByTestId( 'spinner' ) ).toBeVisible();
|
|
589
|
-
|
|
590
|
-
// Notify that the media items upload succeeded
|
|
591
|
-
await notifySucceedState( otherAppsMedia[ 0 ] );
|
|
592
|
-
await notifySucceedState( otherAppsMedia[ 1 ] );
|
|
593
|
-
|
|
594
|
-
expect( getEditorHtml() ).toMatchSnapshot();
|
|
595
|
-
} );
|
|
596
|
-
|
|
597
|
-
// Test case related to TC012 - Settings - Link
|
|
598
|
-
// Reference: https://github.com/wordpress-mobile/test-cases/blob/trunk/test-cases/gutenberg/gallery.md#tc012
|
|
599
|
-
it( 'overrides "Link" setting of gallery items', async () => {
|
|
600
|
-
// Initialize with a gallery that contains two items, the latter includes "linkDestination" attribute
|
|
601
|
-
const screen = await initializeWithGalleryBlock( {
|
|
602
|
-
html: `<!-- wp:gallery {"linkTo":"none"} -->
|
|
603
|
-
<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><!-- wp:image {"id":${ media[ 0 ].localId }} -->
|
|
604
|
-
<figure class="wp-block-image"><img src="${ media[ 0 ].localUrl }" alt="" class="wp-image-${ media[ 0 ].localId }"/></figure>
|
|
605
|
-
<!-- /wp:image -->
|
|
606
|
-
|
|
607
|
-
<!-- wp:image {"id":${ media[ 1 ].localId },"linkDestination":"attachment"} -->
|
|
608
|
-
<figure class="wp-block-image"><img src="${ media[ 1 ].localUrl }" alt="" class="wp-image-${ media[ 1 ].localId }"/></figure>
|
|
609
|
-
<!-- /wp:image --></figure>
|
|
610
|
-
<!-- /wp:gallery -->`,
|
|
611
|
-
numberOfItems: 2,
|
|
612
|
-
} );
|
|
613
|
-
const { getByText } = screen;
|
|
614
|
-
|
|
615
|
-
// Set "Link" setting via Gallery block settings
|
|
616
|
-
await openBlockSettings( screen );
|
|
617
|
-
fireEvent.press( getByText( 'Link' ) );
|
|
618
|
-
fireEvent.press( getByText( 'Link images to media files' ) );
|
|
619
|
-
|
|
620
|
-
expect( getEditorHtml() ).toMatchSnapshot();
|
|
621
|
-
} );
|
|
622
|
-
|
|
623
|
-
it( 'does not display MediaReplaceFlow component within the block toolbar', async () => {
|
|
624
|
-
const screen = await initializeWithGalleryBlock( {
|
|
625
|
-
numberOfItems: 3,
|
|
626
|
-
media,
|
|
627
|
-
} );
|
|
628
|
-
const { queryByTestId } = screen;
|
|
629
|
-
|
|
630
|
-
fireEvent.press( getBlock( screen, 'Gallery' ) );
|
|
631
|
-
|
|
632
|
-
// Expect the native MediaReplaceFlow component to not be present in the block toolbar
|
|
633
|
-
const mediaReplaceFlow = queryByTestId( 'media-replace-flow' );
|
|
634
|
-
expect( mediaReplaceFlow ).toBeNull();
|
|
635
|
-
} );
|
|
636
|
-
|
|
637
|
-
// Test cases related to TC013 - Settings - Columns
|
|
638
|
-
// Reference: https://github.com/wordpress-mobile/test-cases/blob/trunk/test-cases/gutenberg/gallery.md#tc013
|
|
639
|
-
describe( 'Columns setting', () => {
|
|
640
|
-
it( 'does not increment due to maximum value', async () => {
|
|
641
|
-
// Initialize with a gallery that contains three items
|
|
642
|
-
const screen = await initializeWithGalleryBlock( {
|
|
643
|
-
numberOfItems: 3,
|
|
644
|
-
media,
|
|
645
|
-
} );
|
|
646
|
-
const { getByLabelText } = screen;
|
|
647
|
-
|
|
648
|
-
await openBlockSettings( screen );
|
|
649
|
-
|
|
650
|
-
// Can't increment due to maximum value
|
|
651
|
-
// NOTE: Default columns value is 3
|
|
652
|
-
fireEvent(
|
|
653
|
-
getByLabelText( /Columns\. Value is 3/ ),
|
|
654
|
-
'accessibilityAction',
|
|
655
|
-
{
|
|
656
|
-
nativeEvent: { actionName: 'increment' },
|
|
657
|
-
}
|
|
658
|
-
);
|
|
659
|
-
expect( getEditorHtml() ).toMatchSnapshot();
|
|
660
|
-
} );
|
|
661
|
-
|
|
662
|
-
it( 'decrements columns', async () => {
|
|
663
|
-
// Initialize with a gallery that contains three items
|
|
664
|
-
const screen = await initializeWithGalleryBlock( {
|
|
665
|
-
numberOfItems: 3,
|
|
666
|
-
media,
|
|
667
|
-
} );
|
|
668
|
-
const { getByLabelText } = screen;
|
|
669
|
-
|
|
670
|
-
await openBlockSettings( screen );
|
|
671
|
-
|
|
672
|
-
// Decrement columns
|
|
673
|
-
fireEvent(
|
|
674
|
-
getByLabelText( /Columns\. Value is 3/ ),
|
|
675
|
-
'accessibilityAction',
|
|
676
|
-
{
|
|
677
|
-
nativeEvent: { actionName: 'decrement' },
|
|
678
|
-
}
|
|
679
|
-
);
|
|
680
|
-
expect( getEditorHtml() ).toMatchSnapshot();
|
|
681
|
-
} );
|
|
682
|
-
} );
|
|
683
|
-
|
|
684
|
-
// Test case related to TC014 - Settings - Crop images
|
|
685
|
-
// Reference: https://github.com/wordpress-mobile/test-cases/blob/trunk/test-cases/gutenberg/gallery.md#tc014
|
|
686
|
-
it( 'disables crop images setting', async () => {
|
|
687
|
-
// Initialize with a gallery that contains one item
|
|
688
|
-
const screen = await initializeWithGalleryBlock( {
|
|
689
|
-
numberOfItems: 1,
|
|
690
|
-
media,
|
|
691
|
-
} );
|
|
692
|
-
const { getByText } = screen;
|
|
693
|
-
|
|
694
|
-
await openBlockSettings( screen );
|
|
695
|
-
|
|
696
|
-
// Disable crop images setting
|
|
697
|
-
fireEvent.press( getByText( 'Crop images to fit' ) );
|
|
698
|
-
expect( getEditorHtml() ).toMatchSnapshot();
|
|
699
|
-
} );
|
|
700
|
-
} );
|