mattermost/server/tests
Nick Misasi 5d3a04760b
[MM-67605] Add DCR redirect URI allowlist for OAuth DCR (#35291)
* [MM-67605] Add DCR redirect URI allowlist enforcement

Introduce ServiceSettings.DCRRedirectURIAllowlist with glob-based validation and enforce it during OAuth dynamic client registration to block unapproved redirect URIs. Add System Console wiring and tests for config validation, wildcard matching semantics, API error behavior, and localhost wildcard support.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix pre-commit checks: TypeScript type assertion, gofmt, and regenerate CI artifacts

- admin_definition_dcr_allowlist.test.tsx: Add AdminDefinitionSettingInput type assertion for 'multiple' property
- oauth_dcr_test.go: Fix comment spacing (gofmt)
- Regenerate mocks, go.sum, gen-serialized, mmctl-docs per CI requirements

Co-authored-by: Cursor <cursoragent@cursor.com>

* Revert unnecessary pre-commit regenerations

Revert mmctl docs, mocks, go.sum, and gen-serialized to master. Keep only
the TypeScript and gofmt fixes from the previous commit.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix import order in admin_definition_dcr_allowlist.test.tsx

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix i18n

* Update server/public/model/oauth_dcr.go

Co-authored-by: Eva Sarafianou <eva.sarafianou@gmail.com>

* Fix

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Eva Sarafianou <eva.sarafianou@gmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
2026-02-19 01:06:08 +00: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
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.