mattermost/server/tests
Felipe Martin 7e7a1b582f
fix: only match root-level JSONL files when importing a zip (#35481)
* fix: only match root-level JSONL files when importing a zip

When importing a Mattermost export zip, the code iterated over all files
to find the first .jsonl by extension. Exported attachments under data/
could themselves be .jsonl files, causing the import to pick an
attachment as the manifest instead of the actual root-level JSONL file.

Extract an IsRootJsonlFile helper in the imports package and use it in
the import process worker, mmctl validator, and bulk import test to
restrict the search to files with no directory component.

* test: add integration test for import with nested JSONL decoy file

Verify that BulkImportWithPath correctly picks the root-level JSONL
manifest and ignores a decoy .jsonl inside a subdirectory, covering
the fix from ad7f230f06.
2026-03-05 15:20:17 +01:00
..
exif_samples [MM-63436] Replace Exif parser dependency (#30479) 2025-04-01 13:57:43 -06:00
1x10000.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
1x10000_expected_preview.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
1x10000_expected_thumb.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
10000x1.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
10000x1_expected_preview.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
10000x1_expected_thumb.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
channel-role-has-permission.csv Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
crop_test_input.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
crop_test_output_45x45.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
crop_test_output_45x100.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
crop_test_output_100x45.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
crop_test_output_100x100.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
custom-schema-cpa.ldif MM-62704: Add Custom Profile Attributes to the LDAP synchronization process (#30443) 2025-04-11 19:41:26 +02:00
custom-schema-objectID.ldif MM-62930: Add validation of LDAP attribute values. (#30419) 2025-04-14 13:29:42 +02:00
development-private-key.asc Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
development-public-key.asc Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
development-public-key.gpg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
export_test.zip Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
export_test_with_nested_jsonl.zip fix: only match root-level JSONL files when importing a zip (#35481) 2026-03-05 15:20:17 +01:00
Fake_Team_Import.rar Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
Fake_Team_Import.tar.gz Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
Fake_Team_Import.zip Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_8bit_palette.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_8bit_palette_out.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_8bit_rgb.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_8bit_rgb_out.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_8bit_rgba.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_8bit_rgba_out.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_16bit_rgb.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_16bit_rgb_out.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_16bit_rgba.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_16bit_rgba_out.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_input.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
fill_test_opaque.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_output_45x45.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
fill_test_output_45x100.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
fill_test_output_100x45.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
fill_test_output_100x100.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
fit_test_input.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
fit_test_output_45x45.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
fit_test_output_45x100.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
fit_test_output_100x45.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
fit_test_output_100x100.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
group-role-has-permission.csv Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
import_test.zip [MM-62775] Fix: Bulk export not completing (#30044) 2025-02-04 17:56:11 -05:00
large_image_file.jpg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
large_lzw_frame.gif MM-52720: use an io.LimitedReader in gif frame counting (#23372) 2023-05-11 12:47:07 +03:00
orientation_test.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_1.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_1_expected_preview.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_1_expected_thumb.jpeg Simplify thumbnail resizing logic to ensure target constraints are respected (#28012) 2024-09-06 21:44:32 +02:00
orientation_test_2.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_2_expected_preview.jpeg [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
orientation_test_2_expected_thumb.jpeg Simplify thumbnail resizing logic to ensure target constraints are respected (#28012) 2024-09-06 21:44:32 +02:00
orientation_test_3.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_3_expected_preview.jpeg [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
orientation_test_3_expected_thumb.jpeg Simplify thumbnail resizing logic to ensure target constraints are respected (#28012) 2024-09-06 21:44:32 +02:00
orientation_test_4.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_4_expected_preview.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_4_expected_thumb.jpeg Simplify thumbnail resizing logic to ensure target constraints are respected (#28012) 2024-09-06 21:44:32 +02:00
orientation_test_5.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_5_expected_preview.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_5_expected_thumb.jpeg Simplify thumbnail resizing logic to ensure target constraints are respected (#28012) 2024-09-06 21:44:32 +02:00
orientation_test_6.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_6_expected_preview.jpeg [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
orientation_test_6_expected_thumb.jpeg Simplify thumbnail resizing logic to ensure target constraints are respected (#28012) 2024-09-06 21:44:32 +02:00
orientation_test_7.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_7_expected_preview.jpeg [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
orientation_test_7_expected_thumb.jpeg Simplify thumbnail resizing logic to ensure target constraints are respected (#28012) 2024-09-06 21:44:32 +02:00
orientation_test_8.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_8_expected_preview.jpeg [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
orientation_test_8_expected_thumb.jpeg Simplify thumbnail resizing logic to ensure target constraints are respected (#28012) 2024-09-06 21:44:32 +02:00
orientation_test_9.jpeg [MM-63436] Replace Exif parser dependency (#30479) 2025-04-01 13:57:43 -06:00
orientation_test_9_expected_preview.jpeg [MM-63436] Replace Exif parser dependency (#30479) 2025-04-01 13:57:43 -06:00
orientation_test_9_expected_thumb.jpeg [MM-63436] Replace Exif parser dependency (#30479) 2025-04-01 13:57:43 -06:00
qa-data-graph.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
qa-data.ldif Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
README.md MM-53355: install transitionally prepackaged plugins to filestore (#24225) 2023-08-17 12:46:57 -03:00
sample-doc.doc Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
sample-doc.docx Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
sample-doc.odp Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
sample-doc.odt Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
sample-doc.pdf Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
sample-doc.pptx Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
sample-doc.rtf Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
slack-import-test-channels.json Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
slack-import-test-direct-messages.json Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
slack-import-test-group-direct-messages.json Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
slack-import-test-posts.json Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
slack-import-test-private-channels.json Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
slack-import-test-users.json Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-attachments.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-config.json [MM-67605] Add DCR redirect URI allowlist for OAuth DCR (#35291) 2026-02-19 01:06:08 +00:00
test-data-graph.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-data.ldif MM-62930: Add validation of LDAP attribute values. (#30419) 2025-04-14 13:29:42 +02:00
test-emoticons1.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-emoticons2.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-emoticons3.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-emoticons4.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-emoticons5.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-emoticons6.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-hashtags.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-link-preview.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-links.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-markdown-basics.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-markdown-lists.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-mentions.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-public-key.plugin.gpg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-search.md Update link preview URL in test-search.md (#27398) 2024-06-20 14:48:22 +08:00
test-slack-attachments.json Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-syntax-highlighting.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-tables.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test.svg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test.tiff Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test_expected_tiff_preview.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test_expected_tiff_thumb.jpeg Simplify thumbnail resizing logic to ensure target constraints are respected (#28012) 2024-09-06 21:44:32 +02:00
test_img_diff_A.png [MM-57500] Streaming support for importing file attachments (#26629) 2024-04-19 15:49:33 -06:00
test_img_diff_B.png [MM-57500] Streaming support for importing file attachments (#26629) 2024-04-19 15:49:33 -06:00
testarchive.zip Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
testgif.gif Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
testgif_expected_preview.jpg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
testgif_expected_thumbnail.jpg [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
testjpg.jpg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
testplugin-v0.0.2.tar.gz MM-53355: install transitionally prepackaged plugins to filestore (#24225) 2023-08-17 12:46:57 -03:00
testplugin-v0.0.2.tar.gz.asc MM-53355: install transitionally prepackaged plugins to filestore (#24225) 2023-08-17 12:46:57 -03:00
testplugin-v0.0.2.tar.gz.sig MM-53355: install transitionally prepackaged plugins to filestore (#24225) 2023-08-17 12:46:57 -03:00
testplugin.tar.gz Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
testplugin.tar.gz.asc MM-53355: install transitionally prepackaged plugins to filestore (#24225) 2023-08-17 12:46:57 -03:00
testplugin.tar.gz.sig MM-53355: install transitionally prepackaged plugins to filestore (#24225) 2023-08-17 12:46:57 -03:00
testplugin2.tar.gz Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
testplugin2.tar.gz.asc MM-53355: install transitionally prepackaged plugins to filestore (#24225) 2023-08-17 12:46:57 -03:00
testplugin2.tar.gz.sig MM-53355: install transitionally prepackaged plugins to filestore (#24225) 2023-08-17 12:46:57 -03:00
testwebp.webp Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
tls_test_cert.pem Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
tls_test_key.pem Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00

Testing Text Processing

The text processing tests located in the doc/developer/tests folder are designed for use with the /test url command. This command posts the raw contents of a specified .md file in the doc/developer/test folder into Mattermost.

Turning on /test

Access the System Console from the Main Menu. Under Service Settings make sure that Enable Testing is set to true, then click Save. You may also change this setting from config.json by setting ”EnableTesting”: true. Changing this setting requires a server restart to take effect.

Running the Tests

In the text input box in Mattermost, type: /test url [file-name-in-testing-folder].md. Some examples:

/test url test-emoticons.md
/test url test-links.md

Notes:

  1. If a test has prerequisites, make sure your Mattermost setup meets the requirements described at the top of the test file.
  2. Some tests are over 4000 characters in length and will render across multiple posts.

Manual Testing

It is possible to manually test specific sections of any test, instead of using the /test command. Do this by clicking Raw in the header for the file when its open in GitHub, then copy and paste any section into Mattermost to post it. Manual testing only supports sections of 4000 characters or less per post.

Test plugins

There are three test plugins: testplugin.tar.gz, testplugin-v0.0.2.tar.gz, and testplugin2.tar.gz. These are use in some integration tests in the api4 package. Any changes to the plugin bundles require updating the corresponding signatures.

First, import the public and private development key:

gpg --import ./development-public-key.gpg
gpg --import ./development-private-key.asc

This has to be done only once.

Then update the signatures:

gpg -u F3FACE45E0DE642C8BD6A8E64C7C6562C192CC1F --verbose --personal-digest-preferences SHA256 --detach-sign testplugin.tar.gz
gpg -u F3FACE45E0DE642C8BD6A8E64C7C6562C192CC1F --verbose --personal-digest-preferences SHA256 --detach-sign --armor testplugin.tar.gz
gpg -u F3FACE45E0DE642C8BD6A8E64C7C6562C192CC1F --verbose --personal-digest-preferences SHA256 --detach-sign testplugin-v0.0.2.tar.gz
gpg -u F3FACE45E0DE642C8BD6A8E64C7C6562C192CC1F --verbose --personal-digest-preferences SHA256 --detach-sign --armor testplugin-v0.0.2.tar.gz
gpg -u F3FACE45E0DE642C8BD6A8E64C7C6562C192CC1F --verbose --personal-digest-preferences SHA256 --detach-sign testplugin2.tar.gz
gpg -u F3FACE45E0DE642C8BD6A8E64C7C6562C192CC1F --verbose --personal-digest-preferences SHA256 --detach-sign --armor testplugin2.tar.gz

Finally, include the updates bundles and signatures in your commit.