snapshot of https://github.com/mattermost/mattermost.git (master, 2026-09-16; blobs > 131072B omitted)
Some checks failed
Server CI / Postgres (shard 0) (push) Has been skipped
Server CI / Postgres (shard 3) (push) Has been skipped
BuildEnv Docker Image / build-image (push) Failing after 4s
BuildEnv Docker Image / build-image-fips (push) Failing after 4s
Migration Review & Release Notes / Generate migration review & release notes (push) Failing after 3s
Server CI / Build Environment (push) Failing after 3s
Server CI / Postgres (shard 1) (push) Has been skipped
Tools CI / check-style (mattermost-govet) (push) Failing after 4s
Server CI / Postgres (shard 2) (push) Has been skipped
Tools CI / check-style (mmgotool) (push) Failing after 3s
Server CI / Elasticsearch v8 Compatibility (push) Has been skipped
Server CI / OpenSearch v2 Compatibility (push) Has been skipped
Server CI / Postgres FIPS (shard 0) (push) Has been skipped
Tools CI / Test (mattermost-govet) (push) Failing after 3s
Server CI / Postgres FIPS (shard 1) (push) Has been skipped
Server CI / Postgres FIPS (shard 2) (push) Has been skipped
Tools CI / Test (mmgotool) (push) Failing after 3s
Server CI / Postgres FIPS (shard 3) (push) Has been skipped
Server CI / Run mmctl tests (push) Has been skipped
Server CI / Run mmctl tests (FIPS) (push) Has been skipped
Server CI / Merge Postgres Test Results (push) Has been skipped
Server CI / Merge Postgres FIPS Test Results (push) Has been skipped
Server CI / Check backport migrations (push) Has been skipped
Server CI / Check generated files (push) Has been skipped
Server CI / check-style (push) Has been skipped
Server CI / Vet API (push) Has been skipped
Server CI / Build mattermost server app (push) Has been skipped
Server CI / Server CI Complete (push) Failing after 2s
Server CI / Server CI Artifacts (push) Has been skipped
Server CI / Sentry Upload (push) Has been skipped
Server CI / Server CI Report (push) Failing after 5m1s
Server CI Nightly Race / Race Detector (push) Has been skipped
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
Webapp CI Cache Warm / Warm Webapp node_modules Cache (push) Has been cancelled
E2E CI Cache Warm / Warm E2E npm Registry Cache (push) Has been cancelled
API / build (push) Has been cancelled
Web App CI / check-types (push) Has been cancelled
Web App CI / check-lint (push) Has been cancelled
Web App CI / check-i18n (push) Has been cancelled
Web App CI / check-external-links (push) Has been cancelled
Web App CI / test (platform) (push) Has been cancelled
Web App CI / test (mattermost-redux) (push) Has been cancelled
Web App CI / test (channels shard 1/4) (push) Has been cancelled
Web App CI / test (channels shard 2/4) (push) Has been cancelled
Web App CI / test (channels shard 3/4) (push) Has been cancelled
Web App CI / test (channels shard 4/4) (push) Has been cancelled
Web App CI / upload-coverage (push) Has been cancelled
Web App CI / build (push) Has been cancelled
YAML Lint / yamllint (push) Has been cancelled
Push mirrored docker images / cd/Push mirrored docker images (push) Has been cancelled
docs-cd / Build and deploy docs (push) Has been cancelled
Docs CI / build (push) Has been cancelled
E2E Cache Warm: Cypress deps / Warm Cypress deps cache (push) Has been cancelled
Scorecards supply-chain security / Scorecard analysis (push) Has been cancelled
Server CI Weekly / Postgres FIPS (push) Has been skipped
Server CI Weekly / Run mmctl tests (FIPS) (push) Has been skipped
Server CI Weekly / Postgres with binary parameters (push) Has been skipped
Server CI Weekly / Build Environment (push) Failing after 1s
Server CI Cache Warm / Warm Go Module and Build Cache (push) Failing after 2s
Server CI Nightly Race / Build Environment (push) Failing after 1s
BIN
server/tests/10000x1.png
Normal file
|
After Width: | Height: | Size: 283 B |
BIN
server/tests/10000x1_expected_preview.png
Normal file
|
After Width: | Height: | Size: 92 B |
BIN
server/tests/10000x1_expected_thumb.png
Normal file
|
After Width: | Height: | Size: 76 B |
BIN
server/tests/1x10000.png
Normal file
|
After Width: | Height: | Size: 307 B |
BIN
server/tests/1x10000_expected_preview.png
Normal file
|
After Width: | Height: | Size: 121 B |
BIN
server/tests/1x10000_expected_thumb.png
Normal file
|
After Width: | Height: | Size: 79 B |
BIN
server/tests/Fake_Team_Import.rar
Normal file
BIN
server/tests/Fake_Team_Import.tar.gz
Normal file
BIN
server/tests/Fake_Team_Import.zip
Normal file
55
server/tests/README.md
Normal file
@@ -0,0 +1,55 @@
|
||||
# Testing Text Processing
|
||||
The text processing tests located in the [doc/developer/tests folder](https://github.com/mattermost/platform/tree/master/doc/developer/tests) are designed for use with the `/test url` command in isolated non-production test environments. This command posts the raw contents of a specified `.md` file in the `doc/developer/tests` folder into Mattermost.
|
||||
|
||||
## Turning on /test
|
||||
Access the **System Console** from the Main Menu. Under *Environment > Developer* make sure that *Enable Testing Commands* is set to `true`, then click **Save**. You may also change this setting from `config.json` by setting `"EnableTesting": true`. This setting is intended only for isolated non-production environments with test users and sample data, and must never be enabled in production. 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 it’s 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:
|
||||
```sh
|
||||
gpg --import ./development-public-key.gpg
|
||||
gpg --import ./development-private-key.asc
|
||||
```
|
||||
|
||||
This has to be done only once.
|
||||
|
||||
Then update the signatures:
|
||||
```sh
|
||||
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.
|
||||
|
||||
## Image fixtures
|
||||
|
||||
The `api4` package tests compare server-generated image thumbnails and previews against fixture files (e.g. `orientation_test_1_expected_thumb.jpeg`). Comparisons are pixel-based with a small tolerance, so minor encoder drift across patch releases is handled automatically.
|
||||
|
||||
However, Go's `image/jpeg` encoder has changed incompatibly across major versions (e.g. Go 1.25 → 1.26). When upgrading Go, regenerate the JPEG fixtures by running:
|
||||
|
||||
```sh
|
||||
go test -run "TestUploadFiles/.*thumbnail" ./channels/api4/ -args -update-fixtures
|
||||
go test -run "TestGenerateMiniPreviewImage" ./channels/app/imaging/ -args -update-fixtures
|
||||
```
|
||||
|
||||
Run both from `server/`. Commit the updated fixture files alongside the Go version bump.
|
||||
17
server/tests/channel-role-has-permission.csv
Normal file
@@ -0,0 +1,17 @@
|
||||
"let p be ""higher-scoped scheme has the permission""","let q be ""permission is moderated""","let r be ""channel scheme has the permission""","let s be ""channel role is channel_admin""","""channel role has the permission"" = p ∧ (s ∨ (q → r))"
|
||||
TRUE,TRUE,TRUE,TRUE,TRUE
|
||||
TRUE,TRUE,TRUE,FALSE,TRUE
|
||||
TRUE,TRUE,FALSE,TRUE,TRUE
|
||||
TRUE,TRUE,FALSE,FALSE,FALSE
|
||||
TRUE,FALSE,TRUE,TRUE,TRUE
|
||||
TRUE,FALSE,TRUE,FALSE,TRUE
|
||||
TRUE,FALSE,FALSE,TRUE,TRUE
|
||||
TRUE,FALSE,FALSE,FALSE,TRUE
|
||||
FALSE,TRUE,TRUE,TRUE,FALSE
|
||||
FALSE,TRUE,TRUE,FALSE,FALSE
|
||||
FALSE,TRUE,FALSE,TRUE,FALSE
|
||||
FALSE,TRUE,FALSE,FALSE,FALSE
|
||||
FALSE,FALSE,TRUE,TRUE,FALSE
|
||||
FALSE,FALSE,TRUE,FALSE,FALSE
|
||||
FALSE,FALSE,FALSE,TRUE,FALSE
|
||||
FALSE,FALSE,FALSE,FALSE,FALSE
|
||||
|
55
server/tests/custom-schema-cpa.ldif
Normal file
@@ -0,0 +1,55 @@
|
||||
dn: cn=schema,cn=config
|
||||
changetype: modify
|
||||
add: olcAttributeTypes
|
||||
olcAttributeTypes: ( 1.3.6.1.4.1.4203.666.1.101
|
||||
NAME 'textCustomAttribute'
|
||||
DESC 'A text custom attribute for inetOrgPerson'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
|
||||
-
|
||||
add: olcAttributeTypes
|
||||
olcAttributeTypes: ( 1.3.6.1.4.1.4203.666.1.104
|
||||
NAME 'dateCustomAttribute'
|
||||
DESC 'A date attribute'
|
||||
EQUALITY generalizedTimeMatch
|
||||
ORDERING generalizedTimeOrderingMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
|
||||
-
|
||||
add: olcAttributeTypes
|
||||
olcAttributeTypes: ( 1.3.6.1.4.1.4203.666.1.105
|
||||
NAME 'selectCustomAttribute'
|
||||
DESC 'A selection attribute with values: option1, option2, option3'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
|
||||
SINGLE-VALUE )
|
||||
-
|
||||
add: olcAttributeTypes
|
||||
olcAttributeTypes: ( 1.3.6.1.4.1.4203.666.1.106
|
||||
NAME 'multiSelectCustomAttribute'
|
||||
DESC 'A multi-selection attribute with values: choice1, choice2, choice3, choice4'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
|
||||
-
|
||||
add: olcAttributeTypes
|
||||
olcAttributeTypes: ( 1.3.6.1.4.1.4203.666.1.107
|
||||
NAME 'userReferenceCustomAttribute'
|
||||
DESC 'A reference to a single user'
|
||||
EQUALITY distinguishedNameMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.12
|
||||
SINGLE-VALUE )
|
||||
-
|
||||
add: olcAttributeTypes
|
||||
olcAttributeTypes: ( 1.3.6.1.4.1.4203.666.1.108
|
||||
NAME 'multiUserReferenceCustomAttribute'
|
||||
DESC 'References to multiple users'
|
||||
EQUALITY distinguishedNameMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
|
||||
-
|
||||
add: olcObjectClasses
|
||||
olcObjectClasses: ( 1.3.6.1.4.1.4203.666.1.103
|
||||
NAME 'customInetOrgPerson'
|
||||
DESC 'inetOrgPerson with custom attributes'
|
||||
SUP top
|
||||
AUXILIARY
|
||||
MAY ( textCustomAttribute $ dateCustomAttribute $ selectCustomAttribute $ multiSelectCustomAttribute $ userReferenceCustomAttribute $ multiUserReferenceCustomAttribute))
|
||||
14
server/tests/custom-schema-objectID.ldif
Normal file
@@ -0,0 +1,14 @@
|
||||
dn: cn=schema,cn=config
|
||||
changetype: modify
|
||||
add: olcAttributeTypes
|
||||
olcAttributeTypes: ( 1.2.840.113556.1.4.2 NAME 'objectGUID'
|
||||
DESC 'AD object GUID'
|
||||
EQUALITY octetStringMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.40
|
||||
SINGLE-VALUE )
|
||||
-
|
||||
add: olcObjectClasses
|
||||
olcObjectClasses: ( 1.2.840.113556.1.5.256 NAME 'activeDSObject'
|
||||
DESC 'Active Directory Schema Object'
|
||||
SUP top AUXILIARY
|
||||
MAY ( objectGUID ) )
|
||||
82
server/tests/development-private-key.asc
Normal file
@@ -0,0 +1,82 @@
|
||||
-----BEGIN PGP PRIVATE KEY BLOCK-----
|
||||
|
||||
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
|
||||
9ZvfTj7FR/OcwlB77uGrGoi3EQ==
|
||||
=F0gN
|
||||
-----END PGP PRIVATE KEY BLOCK-----
|
||||
41
server/tests/development-public-key.asc
Normal file
@@ -0,0 +1,41 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
=qIjw
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
BIN
server/tests/development-public-key.gpg
Normal file
BIN
server/tests/exif_samples/down-mirrored.jpg
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
server/tests/exif_samples/down-mirrored.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
server/tests/exif_samples/down-mirrored.webp
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
server/tests/exif_samples/down.jpg
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
server/tests/exif_samples/down.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
server/tests/exif_samples/down.webp
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
server/tests/exif_samples/left-mirrored.jpg
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
server/tests/exif_samples/left-mirrored.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
server/tests/exif_samples/left-mirrored.webp
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
server/tests/exif_samples/left.jpg
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
server/tests/exif_samples/left.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
server/tests/exif_samples/left.webp
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
server/tests/exif_samples/quadrants-orientation-1.png
Normal file
|
After Width: | Height: | Size: 414 B |
BIN
server/tests/exif_samples/quadrants-orientation-2.png
Normal file
|
After Width: | Height: | Size: 380 B |
BIN
server/tests/exif_samples/quadrants-orientation-3.png
Normal file
|
After Width: | Height: | Size: 380 B |
BIN
server/tests/exif_samples/quadrants-orientation-4.png
Normal file
|
After Width: | Height: | Size: 376 B |
BIN
server/tests/exif_samples/quadrants-orientation-5.png
Normal file
|
After Width: | Height: | Size: 379 B |
BIN
server/tests/exif_samples/quadrants-orientation-6.png
Normal file
|
After Width: | Height: | Size: 380 B |
BIN
server/tests/exif_samples/quadrants-orientation-7.png
Normal file
|
After Width: | Height: | Size: 377 B |
BIN
server/tests/exif_samples/quadrants-orientation-8.png
Normal file
|
After Width: | Height: | Size: 413 B |
BIN
server/tests/exif_samples/right-mirrored.jpg
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
server/tests/exif_samples/right-mirrored.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
server/tests/exif_samples/right-mirrored.webp
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
server/tests/exif_samples/right.jpg
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
server/tests/exif_samples/right.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
server/tests/exif_samples/right.webp
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
server/tests/exif_samples/up-mirrored.jpg
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
server/tests/exif_samples/up-mirrored.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
server/tests/exif_samples/up-mirrored.webp
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
server/tests/exif_samples/up.jpg
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
server/tests/exif_samples/up.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
server/tests/exif_samples/up.webp
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
server/tests/export_test_with_nested_jsonl.zip
Normal file
BIN
server/tests/fill_test_16bit_rgb.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
server/tests/fill_test_16bit_rgb_out.png
Normal file
|
After Width: | Height: | Size: 1011 B |
BIN
server/tests/fill_test_16bit_rgba.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
server/tests/fill_test_16bit_rgba_out.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
server/tests/fill_test_8bit_palette.png
Normal file
|
After Width: | Height: | Size: 724 B |
BIN
server/tests/fill_test_8bit_palette_out.png
Normal file
|
After Width: | Height: | Size: 140 B |
BIN
server/tests/fill_test_8bit_rgb.png
Normal file
|
After Width: | Height: | Size: 889 B |
BIN
server/tests/fill_test_8bit_rgb_out.png
Normal file
|
After Width: | Height: | Size: 700 B |
BIN
server/tests/fill_test_8bit_rgba.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
server/tests/fill_test_8bit_rgba_out.png
Normal file
|
After Width: | Height: | Size: 897 B |
BIN
server/tests/fill_test_input.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
server/tests/fill_test_opaque.png
Normal file
|
After Width: | Height: | Size: 299 B |
BIN
server/tests/fill_test_output_100x100.png
Normal file
|
After Width: | Height: | Size: 934 B |
BIN
server/tests/fill_test_output_100x45.png
Normal file
|
After Width: | Height: | Size: 623 B |
BIN
server/tests/fill_test_output_45x100.png
Normal file
|
After Width: | Height: | Size: 666 B |
BIN
server/tests/fill_test_output_45x45.png
Normal file
|
After Width: | Height: | Size: 518 B |
8
server/tests/group-role-has-permission.csv
Normal file
@@ -0,0 +1,8 @@
|
||||
"let p be ""system role has permission""","let q be ""is group member""","let r be ""group role has permission""","""permission granted"" = p ∨ (q ∧ r)"
|
||||
TRUE,TRUE,TRUE,TRUE
|
||||
TRUE,TRUE,FALSE,TRUE
|
||||
TRUE,FALSE,TRUE,TRUE
|
||||
TRUE,FALSE,FALSE,TRUE
|
||||
FALSE,TRUE,TRUE,TRUE
|
||||
FALSE,TRUE,FALSE,FALSE
|
||||
FALSE,FALSE,TRUE,FALSE
|
||||
|
BIN
server/tests/mini_preview_test_qa_data_graph_16x16_q90.jpg
Normal file
|
After Width: | Height: | Size: 649 B |
BIN
server/tests/orientation_test_1_expected_thumb.jpeg
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
server/tests/orientation_test_2_expected_thumb.jpeg
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
server/tests/orientation_test_3_expected_thumb.jpeg
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
server/tests/orientation_test_4_expected_thumb.jpeg
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
server/tests/orientation_test_5_expected_thumb.jpeg
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
server/tests/orientation_test_6_expected_thumb.jpeg
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
server/tests/orientation_test_7_expected_thumb.jpeg
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
server/tests/orientation_test_8_expected_thumb.jpeg
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
server/tests/orientation_test_9_expected_thumb.jpeg
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
server/tests/preview_test_qa_data_graph_1024.png
Normal file
|
After Width: | Height: | Size: 91 KiB |
BIN
server/tests/qa-data-graph.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
103
server/tests/qa-data.ldif
Normal file
@@ -0,0 +1,103 @@
|
||||
dn: ou=groups,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: organizationalunit
|
||||
|
||||
dn: ou=users,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: organizationalunit
|
||||
|
||||
dn: uid=corey.test,ou=users,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
cn: Corey
|
||||
sn: Test
|
||||
mail: corey.test@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
|
||||
dn: uid=william.test,ou=users,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
cn: William
|
||||
sn: Test
|
||||
mail: william.test@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
|
||||
dn: uid=linda.test,ou=users,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
cn: Linda
|
||||
sn: Test
|
||||
mail: linda.test@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
|
||||
dn: uid=lindy.test,ou=users,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
cn: Lindy
|
||||
sn: Test
|
||||
mail: lindy.test@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
|
||||
dn: uid=george.test,ou=users,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
cn: George
|
||||
sn: Test
|
||||
mail: george.test@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
|
||||
dn: uid=jesus.test,ou=users,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
cn: Jesus
|
||||
sn: Test
|
||||
mail: jesus.test@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
|
||||
dn: uid=carlos.test,ou=users,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
cn: Carlos
|
||||
sn: Test
|
||||
mail: carlos.test@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
|
||||
dn: uid=jesse.test,ou=users,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
cn: Jesse
|
||||
sn: Test
|
||||
mail: jesse.test@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
|
||||
dn: cn=engineering,ou=groups,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: groupOfNames
|
||||
member: uid=corey.test,ou=users,dc=mm,dc=test,dc=com
|
||||
member: cn=qa,ou=groups,dc=mm,dc=test,dc=com
|
||||
member: cn=developers,ou=groups,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: cn=qa,ou=groups,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: groupOfNames
|
||||
member: uid=lindy.test,ou=users,dc=mm,dc=test,dc=com
|
||||
member: uid=linda.test,ou=users,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: cn=developers,ou=groups,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: groupOfNames
|
||||
member: uid=william.test,ou=users,dc=mm,dc=test,dc=com
|
||||
member: cn=xyz,ou=groups,dc=mm,dc=test,dc=com
|
||||
member: cn=abc,ou=groups,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: cn=xyz,ou=groups,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: groupOfNames
|
||||
member: uid=jesus.test,ou=users,dc=mm,dc=test,dc=com
|
||||
member: uid=george.test,ou=users,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: cn=abc,ou=groups,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: groupOfNames
|
||||
member: uid=carlos.test,ou=users,dc=mm,dc=test,dc=com
|
||||
member: uid=jesse.test,ou=users,dc=mm,dc=test,dc=com
|
||||
BIN
server/tests/sample-doc.doc
Normal file
BIN
server/tests/sample-doc.docx
Normal file
BIN
server/tests/sample-doc.odp
Normal file
BIN
server/tests/sample-doc.odt
Normal file
BIN
server/tests/sample-doc.pdf
Normal file
BIN
server/tests/sample-doc.pptx
Normal file
17
server/tests/sample-doc.rtf
Normal file
@@ -0,0 +1,17 @@
|
||||
{\rtf1\ansi\deff3\adeflang1025
|
||||
{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f4\froman\fprq2\fcharset0 Liberation Sans{\*\falt Arial};}{\f5\fnil\fprq2\fcharset0 Noto Serif CJK SC;}{\f6\fnil\fprq2\fcharset0 Noto Sans CJK SC;}{\f7\fnil\fprq2\fcharset0 FreeSans;}}
|
||||
{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}
|
||||
{\stylesheet{\s0\snext0\dbch\af5\langfe2052\dbch\af7\afs24\alang1081\ql\widctlpar\hyphpar0\sb0\sa0\ltrpar\cf0\loch\f3\fs24\lang1033\kerning1 Normal;}
|
||||
{\s15\sbasedon0\snext16\dbch\af6\langfe2052\dbch\af7\afs28\alang1081\ql\widctlpar\hyphpar0\sb240\sa120\keepn\ltrpar\cf0\loch\f4\fs28\lang1033\kerning1 Heading;}
|
||||
{\s16\sbasedon0\snext16\dbch\af5\langfe2052\dbch\af7\afs24\alang1081\sl276\slmult1\ql\widctlpar\hyphpar0\sb0\sa140\ltrpar\cf0\loch\f3\fs24\lang1033\kerning1 Text Body;}
|
||||
{\s17\sbasedon16\snext17\dbch\af5\langfe2052\dbch\af7\afs24\alang1081\sl276\slmult1\ql\widctlpar\hyphpar0\sb0\sa140\ltrpar\cf0\loch\f3\fs24\lang1033\kerning1 List;}
|
||||
{\s18\sbasedon0\snext18\dbch\af5\langfe2052\dbch\af7\afs24\alang1081\ai\ql\widctlpar\hyphpar0\sb120\sa120\noline\ltrpar\cf0\loch\f3\fs24\lang1033\i\kerning1 Caption;}
|
||||
{\s19\sbasedon0\snext19\dbch\af5\langfe2052\dbch\af7\afs24\alang1081\ql\widctlpar\hyphpar0\sb0\sa0\noline\ltrpar\cf0\loch\f3\fs24\lang1033\kerning1 Index;}
|
||||
}{\*\generator LibreOffice/7.0.1.2$Linux_X86_64 LibreOffice_project/00$Build-2}{\info{\creatim\yr2020\mo9\dy25\hr10\min37}{\revtim\yr2020\mo9\dy25\hr10\min38}{\printim\yr0\mo0\dy0\hr0\min0}}{\*\userprops}\deftab709
|
||||
\hyphauto1\viewscale180
|
||||
{\*\pgdsctbl
|
||||
{\pgdsc0\pgdscuse451\pgwsxn12240\pghsxn15840\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Default Page Style;}}
|
||||
\formshade{\*\pgdscno0}\paperh15840\paperw12240\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\pgndec\sftnnar\saftnnrlc\sectunlocked1\pgwsxn12240\pghsxn15840\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc\htmautsp
|
||||
{\*\ftnsep\chftnsep}\pgndec\pard\plain \s0\dbch\af5\langfe2052\dbch\af7\afs24\alang1081\ql\widctlpar\hyphpar0\sb0\sa0\ltrpar\cf0\loch\f3\fs24\lang1033\kerning1\ql\ltrpar{\loch
|
||||
This is a simple document that contains some text.}
|
||||
\par }
|
||||
95
server/tests/shared_channel_sync_plugin_test.go.tmpl
Normal file
@@ -0,0 +1,95 @@
|
||||
// This file is a Go text/template used by TestPluginRPCSharedChannelSync in
|
||||
// channels/app/shared_channel_test.go. It is compiled into a real plugin binary
|
||||
// at test time to exercise the full plugin RPC layer (gob serialization and
|
||||
// MuxBroker streaming) for the ReceiveSharedChannel* plugin APIs.
|
||||
// Template fields (e.g. {{.ChannelID}}) are populated by the test before compilation.
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"image"
|
||||
"image/color"
|
||||
"image/png"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/plugin"
|
||||
)
|
||||
|
||||
type TestPlugin struct {
|
||||
plugin.MattermostPlugin
|
||||
}
|
||||
|
||||
func (p *TestPlugin) OnActivate() error {
|
||||
channelID := "{{.ChannelID}}"
|
||||
remoteID := "{{.RemoteID}}"
|
||||
syncUserID := "{{.SyncUserID}}"
|
||||
syncPostID := "{{.SyncPostID}}"
|
||||
|
||||
// --- Step 1: Sync a user + post via ReceiveSharedChannelSyncMsg ---
|
||||
msg := model.NewSyncMsg(channelID)
|
||||
msg.Users = map[string]*model.User{
|
||||
syncUserID: {
|
||||
Id: syncUserID,
|
||||
Username: "rpc-synced-user",
|
||||
Email: syncUserID + "@remote.test",
|
||||
RemoteId: model.NewPointer(remoteID),
|
||||
},
|
||||
}
|
||||
msg.Posts = []*model.Post{
|
||||
{
|
||||
Id: syncPostID,
|
||||
ChannelId: channelID,
|
||||
UserId: syncUserID,
|
||||
Message: "hello from plugin over RPC",
|
||||
CreateAt: model.GetMillis(),
|
||||
RemoteId: model.NewPointer(remoteID),
|
||||
},
|
||||
}
|
||||
|
||||
resp, err := p.API.ReceiveSharedChannelSyncMsg(remoteID, msg)
|
||||
if err != nil {
|
||||
return fmt.Errorf("ReceiveSharedChannelSyncMsg failed: %w", err)
|
||||
}
|
||||
if len(resp.UserErrors) > 0 {
|
||||
return fmt.Errorf("ReceiveSharedChannelSyncMsg had user errors: %v", resp.UserErrors)
|
||||
}
|
||||
if len(resp.PostErrors) > 0 {
|
||||
return fmt.Errorf("ReceiveSharedChannelSyncMsg had post errors: %v", resp.PostErrors)
|
||||
}
|
||||
|
||||
// --- Step 2: Sync a file attachment via ReceiveSharedChannelAttachmentSyncMsg ---
|
||||
fileData := []byte("attachment data streamed over MuxBroker")
|
||||
fi := &model.FileInfo{
|
||||
CreatorId: syncUserID,
|
||||
Name: "test.txt",
|
||||
Size: int64(len(fileData)),
|
||||
}
|
||||
|
||||
savedFI, err := p.API.ReceiveSharedChannelAttachmentSyncMsg(remoteID, channelID, fi, bytes.NewReader(fileData))
|
||||
if err != nil {
|
||||
return fmt.Errorf("ReceiveSharedChannelAttachmentSyncMsg failed: %w", err)
|
||||
}
|
||||
if savedFI == nil || savedFI.Id == "" {
|
||||
return fmt.Errorf("ReceiveSharedChannelAttachmentSyncMsg returned nil FileInfo")
|
||||
}
|
||||
|
||||
// --- Step 3: Sync a profile image via ReceiveSharedChannelProfileImageSyncMsg ---
|
||||
img := image.NewRGBA(image.Rect(0, 0, 1, 1))
|
||||
img.Set(0, 0, color.White)
|
||||
var pngBuf bytes.Buffer
|
||||
if err := png.Encode(&pngBuf, img); err != nil {
|
||||
return fmt.Errorf("failed to encode test PNG: %w", err)
|
||||
}
|
||||
|
||||
if err := p.API.ReceiveSharedChannelProfileImageSyncMsg(remoteID, syncUserID, pngBuf.Bytes()); err != nil {
|
||||
return fmt.Errorf("ReceiveSharedChannelProfileImageSyncMsg failed: %w", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func main() {
|
||||
plugin.ClientMain(&TestPlugin{})
|
||||
}
|
||||
148
server/tests/test-attachments.md
Normal file
@@ -0,0 +1,148 @@
|
||||
# Testing Files and Attachments
|
||||
This test contains instructions for the core team to manually test common attachment types. All files for testing are stored in the [mm_file_testing](https://drive.google.com/drive/folders/0B9-SWBTtyOCBRlEyaW1IdkZ4X1k) Drive folder. Follow these instructions:
|
||||
|
||||
1. Download the entire [mm_file_testing](https://drive.google.com/drive/folders/0B9-SWBTtyOCBRlEyaW1IdkZ4X1k) folder.
|
||||
2. Drag and drop each file type into Mattermost to upload it (upload some as multiple attachments on the same post)
|
||||
3. Post the file attachment
|
||||
|
||||
**Notes:**
|
||||
- All file types should upload and post.
|
||||
- Read the expected for details on the behavior of the thumbnail and preview window.
|
||||
- The expected behavior of video and audio formats depends on the operating system, browser and plugins. View the permalinks to the Public Test Channel on Pre-Release Core to see the expected cases.
|
||||
- If the browser can play the media file, media player controls should appear. If the browser cannot play the file, it should appear as a regular attachment without the media controls.
|
||||
|
||||
|
||||
### Images
|
||||
**JPG**
|
||||
`Images/JPG.jpg`
|
||||
Expected: Scaled thumbnail & preview window
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/bgx3wcd9ppdo7fz9zqokofg7sc)
|
||||
|
||||
**PNG**
|
||||
`Images/PNG.png`
|
||||
Expected: Scaled thumbnail & preview window
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/zra4yhm69j8ij81iy5hw7983qe)
|
||||
|
||||
**BMP**
|
||||
`Images/BMP.bmp`
|
||||
Expected: Scaled thumbnail & preview window
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/1hx7x7t1npn4jqyr5rb1qhbj3h)
|
||||
|
||||
**GIF**
|
||||
`Images/GIF.gif`
|
||||
Expected: Scaled thumbnail & preview window. GIF should auto-play in the preview window.
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/j49fowdkstr57g3ed9bgpfoo5w)
|
||||
|
||||
**TIFF**
|
||||
`Images/TIFF.tiff`
|
||||
Expected: Generic attachment thumbnail & preview window
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/6yad4jydaidr3pc3tihp8n8bge)
|
||||
|
||||
**PSD**
|
||||
`Images/PSD.psd`
|
||||
Expected: Generic attachment thumbnail & preview window
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/4kitwk7pi78c9ck4i98f9xnzoe)
|
||||
|
||||
|
||||
### Documents
|
||||
|
||||
**PDF Files**
|
||||
`Documents/PDF.pdf`
|
||||
Expected: Generic PDF thumbnail. File previewer shows first 5 pages of the PDF.
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/o1dg6menetdszrhyxmtoqjfi8h)
|
||||
|
||||
|
||||
**Excel**
|
||||
`Documents/Excel.xlsx`
|
||||
Expected: Generic Excel thumbnail & preview window.
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/71wwezy3f7drze6ipundscb17y)
|
||||
|
||||
|
||||
**PPT**
|
||||
`Documents/PPT.pptx`
|
||||
Expected: Generic Powerpoint thumbnail & preview window.
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/mx37h4znwb8f5ffuoajusqhiew)
|
||||
|
||||
**Word**
|
||||
`Documents/Word.docx`
|
||||
Expected: Generic Word thumbnail & preview window.
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/d7s76wp6kjdwfp4hgrwpijsnyy)
|
||||
|
||||
**Text**
|
||||
`Documents/Text.txt`
|
||||
Expected: Generic code thumbnail & file previewer.
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/cpw539wcxtdmzeh5ju71y73o4e)
|
||||
|
||||
### Videos
|
||||
|
||||
**MP4**
|
||||
`Videos/MP4.mp4`
|
||||
Expected: Generic video thumbnail, view Permalink for preview window behavior. Expected depends on the operating system, browser and plugins.
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/5dx5qx9t9brqfnhohccxjynx7c)
|
||||
|
||||
**AVI**
|
||||
`Videos/AVI.avi`
|
||||
Expected: Generic video thumbnail, view Permalink for preview window behavior. Expected depends on the operating system, browser and plugins.
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/qwn9eiy7j3rkjyruxhcugpogdw)
|
||||
|
||||
**MKV**
|
||||
`Videos/MKV.mkv`
|
||||
Expected: Generic video thumbnail, view Permalink for preview window behavior. Expected depends on the operating system, browser and plugins.
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/tszyjkr1cidhxjgiusa4mde3ja)
|
||||
|
||||
**MOV**
|
||||
`Videos/MOV.mov`
|
||||
Expected: Generic video thumbnail, view Permalink for preview window behavior. Expected depends on the operating system, browser and plugins.
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/ienzppz5i3f7tbt5jiujn8uuir)
|
||||
|
||||
**MPG**
|
||||
`Videos/MPG.mpg`
|
||||
Expected: Generic video thumbnail, view Permalink for preview window behavior. Expected depends on the operating system, browser and plugins.
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/skggdq1hfpritc6c88bi481p5a)
|
||||
|
||||
**Webm**
|
||||
`Videos/WEBM.webm`
|
||||
Expected: Generic video thumbnail, view Permalink for preview window behavior. Expected depends on the operating system, browser and plugins.
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/7h8tysuxgfgsxeht3sbn7e4h6y)
|
||||
|
||||
**WMV**
|
||||
`Videos/WMV.wmv`
|
||||
Expected: Generic video thumbnail, view Permalink for preview window behavior. Expected depends on the operating system, browser and plugins.
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/kaom7j7uyjra7bzhrre6qwdrbw)
|
||||
|
||||
### Audio
|
||||
|
||||
**MP3**
|
||||
`Audio/MP3.mp3`
|
||||
Expected: Generic audio thumbnail & playable preview window
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/if4gn8dbrjgx8fmqmkukzefyme)
|
||||
|
||||
**M4A**
|
||||
`Audio/M4a.m4a`
|
||||
Expected: Generic audio thumbnail, view Permalink for preview window behavior. Expected depends on the operating system, browser and plugins.
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/6c7qsw48ybd88bktgeykodsrrc)
|
||||
|
||||
**AAC**
|
||||
`Audio/AAC.aac`
|
||||
Expected: Generic audio thumbnail, view Permalink for preview window behavior. Expected depends on the operating system, browser and plugins.
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/3naoy5pr5tydbk1m6yo1ast9ny)
|
||||
|
||||
**FLAC**
|
||||
`Audio/FLAC.flac`
|
||||
Expected: Generic audio thumbnail, view Permalink for preview window behavior. Expected depends on the operating system, browser and plugins.
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/kf4cmy44dfya5efmse7rg43eih)
|
||||
|
||||
**OGG**
|
||||
`Audio/OGG.ogg`
|
||||
Expected: Generic audio thumbnail, view Permalink for preview window behavior. Expected depends on the operating system, browser and plugins.
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/dezrcpbxapyexe77rjuzkrp63r)
|
||||
|
||||
**WAV**
|
||||
`Audio/WAV.wav`
|
||||
Expected: Generic audio thumbnail, view Permalink for preview window behavior. Expected depends on the operating system, browser and plugins.
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/pdkxx1udepdnbmi9j8kyas5xbh)
|
||||
|
||||
**WMA**
|
||||
`Audio/WMA.wma`
|
||||
Expected: Generic audio thumbnail, view Permalink for preview window behavior. Expected depends on the operating system, browser and plugins.
|
||||
[Permalink](https://pre-release.mattermost.com/core/pl/756wrmdd57dcig3m4emypp6i1h)
|
||||
377
server/tests/test-config.json
Normal file
@@ -0,0 +1,377 @@
|
||||
{
|
||||
"ServiceSettings": {
|
||||
"SiteURL": "",
|
||||
"WebsocketURL": "",
|
||||
"LicenseFileLocation": "",
|
||||
"ListenAddress": ":8065",
|
||||
"ConnectionSecurity": "",
|
||||
"TLSCertFile": "",
|
||||
"TLSKeyFile": "",
|
||||
"UseLetsEncrypt": false,
|
||||
"LetsEncryptCertificateCacheFile": "./config/letsencrypt.cache",
|
||||
"Forward80To443": false,
|
||||
"ReadTimeout": 300,
|
||||
"WriteTimeout": 300,
|
||||
"MaximumLoginAttempts": 10,
|
||||
"GoroutineHealthThreshold": -1,
|
||||
"GoogleDeveloperKey": "",
|
||||
"EnableOAuthServiceProvider": false,
|
||||
"EnableIncomingWebhooks": true,
|
||||
"EnableOutgoingWebhooks": true,
|
||||
"EnableCommands": true,
|
||||
"EnablePostUsernameOverride": false,
|
||||
"EnablePostIconOverride": false,
|
||||
"EnableLinkPreviews": false,
|
||||
"EnablePermalinkPreviews": false,
|
||||
"EnableTesting": false,
|
||||
"EnableDeveloper": false,
|
||||
"EnableSecurityFixAlert": true,
|
||||
"EnableInsecureOutgoingConnections": false,
|
||||
"AllowedUntrustedInternalConnections": "",
|
||||
"EnableMultifactorAuthentication": false,
|
||||
"EnforceMultifactorAuthentication": false,
|
||||
"EnableUserAccessTokens": false,
|
||||
"DCRRedirectURIAllowlist": [],
|
||||
"AllowCorsFrom": "",
|
||||
"AllowCookiesForSubdomains": false,
|
||||
"ExtendSessionLengthWithActivity": true,
|
||||
"SessionLengthWebInDays": 30,
|
||||
"SessionLengthMobileInDays": 30,
|
||||
"SessionLengthSSOInDays": -1,
|
||||
"SessionLengthSSOInHours": 720,
|
||||
"SessionCacheInMinutes": 10,
|
||||
"SessionIdleTimeoutInMinutes": 0,
|
||||
"WebsocketSecurePort": 443,
|
||||
"WebsocketPort": 80,
|
||||
"WebserverMode": "gzip",
|
||||
"EnableCustomEmoji": false,
|
||||
"EnableEmojiPicker": true,
|
||||
"PostEditTimeLimit": -1,
|
||||
"TimeBetweenUserTypingUpdatesMilliseconds": 5000,
|
||||
"EnableCrossTeamSearch": true,
|
||||
"EnablePostSearch": true,
|
||||
"MinimumHashtagLength": 3,
|
||||
"EnableUserTypingMessages": true,
|
||||
"EnableChannelViewedMessages": true,
|
||||
"EnableUserStatuses": true,
|
||||
"ExperimentalEnableAuthenticationTransfer": true,
|
||||
"ClusterLogTimeoutMilliseconds": 2000,
|
||||
"EnableTutorial": true,
|
||||
"EnableOnboardingFlow": true,
|
||||
"ExperimentalEnableDefaultChannelLeaveJoinMessages": true,
|
||||
"ExperimentalGroupUnreadChannels": "disabled",
|
||||
"EnableAPITeamDeletion": false,
|
||||
"EnableAPITriggerAdminNotifications": false,
|
||||
"EnableHardenedMode": false
|
||||
},
|
||||
"TeamSettings": {
|
||||
"SiteName": "Mattermost",
|
||||
"MaxUsersPerTeam": 50,
|
||||
"EnableUserCreation": true,
|
||||
"EnableOpenServer": false,
|
||||
"EnableUserDeactivation": false,
|
||||
"RestrictCreationToDomains": "",
|
||||
"EnableCustomBrand": false,
|
||||
"CustomBrandText": "",
|
||||
"CustomDescriptionText": "",
|
||||
"RestrictDirectMessage": "any",
|
||||
"UserStatusAwayTimeout": 300,
|
||||
"MaxChannelsPerTeam": 2000,
|
||||
"MaxNotificationsPerChannel": 1000,
|
||||
"EnableConfirmNotificationsToChannel": true,
|
||||
"TeammateNameDisplay": "username",
|
||||
"ExperimentalEnableAutomaticReplies": false,
|
||||
"ExperimentalPrimaryTeam": ""
|
||||
},
|
||||
"ClientRequirements": {
|
||||
"AndroidLatestVersion": "",
|
||||
"AndroidMinVersion": "",
|
||||
"IosLatestVersion": "",
|
||||
"IosMinVersion": ""
|
||||
},
|
||||
"SqlSettings": {
|
||||
"DriverName": "postgres",
|
||||
"DataSource": "postgres://mmuser:mostest_password@localhost:5432/mattermost_test?sslmode=disable\u0026connect_timeout=10",
|
||||
"DataSourceReplicas": [],
|
||||
"DataSourceSearchReplicas": [],
|
||||
"Trace": false,
|
||||
"QueryTimeout": 30
|
||||
},
|
||||
"LogSettings": {
|
||||
"EnableConsole": true,
|
||||
"ConsoleLevel": "DEBUG",
|
||||
"ConsoleJson": true,
|
||||
"EnableFile": true,
|
||||
"FileLevel": "INFO",
|
||||
"FileJson": true,
|
||||
"FileLocation": "",
|
||||
"EnableWebhookDebugging": true,
|
||||
"EnableDiagnostics": true
|
||||
},
|
||||
"PasswordSettings": {
|
||||
"MinimumLength": 5,
|
||||
"Lowercase": false,
|
||||
"Number": false,
|
||||
"Uppercase": false,
|
||||
"Symbol": false,
|
||||
"EnableForgotLink": true
|
||||
},
|
||||
"FileSettings": {
|
||||
"EnableFileAttachments": true,
|
||||
"EnableMobileUpload": true,
|
||||
"EnableMobileDownload": true,
|
||||
"MaxFileSize": 52428800,
|
||||
"MaxImageResolution": 33177600,
|
||||
"DriverName": "local",
|
||||
"Directory": "./data/",
|
||||
"EnablePublicLink": false,
|
||||
"PublicLinkSalt": "3xh7ztscuezjp1jkdjybtejrtw59xjt1",
|
||||
"InitialFont": "luximbi.ttf",
|
||||
"AmazonS3AccessKeyId": "",
|
||||
"AmazonS3SecretAccessKey": "",
|
||||
"AmazonS3Bucket": "",
|
||||
"AmazonS3Region": "",
|
||||
"AmazonS3Endpoint": "s3.amazonaws.com",
|
||||
"AmazonS3SSL": true,
|
||||
"AmazonS3SignV2": false,
|
||||
"AmazonS3SSE": false,
|
||||
"AmazonS3Trace": false,
|
||||
"AmazonS3StorageClass": ""
|
||||
},
|
||||
"EmailSettings": {
|
||||
"EnableSignUpWithEmail": true,
|
||||
"EnableSignInWithEmail": true,
|
||||
"EnableSignInWithUsername": true,
|
||||
"SendEmailNotifications": true,
|
||||
"UseChannelInEmailNotifications": false,
|
||||
"RequireEmailVerification": false,
|
||||
"FeedbackName": "",
|
||||
"FeedbackEmail": "test@example.com",
|
||||
"ReplyToAddress": "test@example.com",
|
||||
"FeedbackOrganization": "",
|
||||
"EnableSMTPAuth": false,
|
||||
"SMTPUsername": "",
|
||||
"SMTPPassword": "",
|
||||
"SMTPServer": "localhost",
|
||||
"SMTPPort": "2500",
|
||||
"ConnectionSecurity": "",
|
||||
"SendPushNotifications": false,
|
||||
"PushNotificationServer": "",
|
||||
"PushNotificationContents": "generic",
|
||||
"EnableEmailBatching": false,
|
||||
"EmailBatchingBufferSize": 256,
|
||||
"EmailBatchingInterval": 30,
|
||||
"EnablePreviewModeBanner": true,
|
||||
"SkipServerCertificateVerification": false,
|
||||
"EmailNotificationContentsType": "full"
|
||||
},
|
||||
"RateLimitSettings": {
|
||||
"Enable": false,
|
||||
"PerSec": 10,
|
||||
"MaxBurst": 100,
|
||||
"MemoryStoreSize": 10000,
|
||||
"VaryByRemoteAddr": true,
|
||||
"VaryByUser": false,
|
||||
"VaryByHeader": ""
|
||||
},
|
||||
"PrivacySettings": {
|
||||
"ShowEmailAddress": true,
|
||||
"ShowFullName": true
|
||||
},
|
||||
"SupportSettings": {
|
||||
"TermsOfServiceLink": "https://mattermost.com/pl/terms-of-use/",
|
||||
"PrivacyPolicyLink": "https://mattermost.com/pl/privacy-policy/",
|
||||
"AboutLink": "https://mattermost.com/default-about/",
|
||||
"HelpLink": "https://mattermost.com/pl/help/",
|
||||
"ReportAProblemLink": "https://mattermost.com/pl/report-a-bug",
|
||||
"ReportAProblemType": "link",
|
||||
"ForgotPasswordLink": "",
|
||||
"SupportEmail": "feedback@mattermost.com"
|
||||
},
|
||||
"AnnouncementSettings": {
|
||||
"EnableBanner": false,
|
||||
"BannerText": "",
|
||||
"BannerColor": "#f2a93b",
|
||||
"BannerTextColor": "#333333",
|
||||
"AllowBannerDismissal": true
|
||||
},
|
||||
"ThemeSettings": {
|
||||
"EnableThemeSelection": true,
|
||||
"DefaultTheme": "default",
|
||||
"AllowCustomThemes": true,
|
||||
"AllowedThemes": []
|
||||
},
|
||||
"GitLabSettings": {
|
||||
"Enable": false,
|
||||
"Secret": "",
|
||||
"Id": "",
|
||||
"Scope": "",
|
||||
"AuthEndpoint": "",
|
||||
"TokenEndpoint": "",
|
||||
"UserApiEndpoint": ""
|
||||
},
|
||||
"GoogleSettings": {
|
||||
"Enable": false,
|
||||
"Secret": "",
|
||||
"Id": "",
|
||||
"Scope": "profile email",
|
||||
"AuthEndpoint": "https://accounts.google.com/o/oauth2/v2/auth",
|
||||
"TokenEndpoint": "https://www.googleapis.com/oauth2/v4/token",
|
||||
"UserApiEndpoint": "https://people.googleapis.com/v1/people/me?personFields=names,emailAddresses,nicknames,metadata"
|
||||
},
|
||||
"Office365Settings": {
|
||||
"Enable": false,
|
||||
"Secret": "",
|
||||
"Id": "",
|
||||
"Scope": "User.Read",
|
||||
"AuthEndpoint": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize",
|
||||
"TokenEndpoint": "https://login.microsoftonline.com/common/oauth2/v2.0/token",
|
||||
"UserApiEndpoint": "https://graph.microsoft.com/v1.0/me",
|
||||
"DirectoryId": ""
|
||||
},
|
||||
"LdapSettings": {
|
||||
"Enable": false,
|
||||
"EnableSync": false,
|
||||
"LdapServer": "",
|
||||
"LdapPort": 389,
|
||||
"ConnectionSecurity": "",
|
||||
"BaseDN": "",
|
||||
"BindUsername": "",
|
||||
"BindPassword": "",
|
||||
"UserFilter": "",
|
||||
"FirstNameAttribute": "",
|
||||
"LastNameAttribute": "",
|
||||
"EmailAttribute": "",
|
||||
"UsernameAttribute": "",
|
||||
"NicknameAttribute": "",
|
||||
"IdAttribute": "",
|
||||
"PositionAttribute": "",
|
||||
"LoginIdAttribute": "",
|
||||
"SyncIntervalMinutes": 60,
|
||||
"SkipCertificateVerification": false,
|
||||
"QueryTimeout": 60,
|
||||
"MaxPageSize": 0,
|
||||
"LoginFieldName": ""
|
||||
},
|
||||
"ComplianceSettings": {
|
||||
"Enable": false,
|
||||
"Directory": "./data/",
|
||||
"EnableDaily": false
|
||||
},
|
||||
"LocalizationSettings": {
|
||||
"DefaultServerLocale": "en",
|
||||
"DefaultClientLocale": "en",
|
||||
"AvailableLocales": ""
|
||||
},
|
||||
"SamlSettings": {
|
||||
"Enable": false,
|
||||
"EnableSyncWithLdap": false,
|
||||
"Verify": true,
|
||||
"Encrypt": true,
|
||||
"IdpUrl": "",
|
||||
"IdpDescriptorUrl": "",
|
||||
"IdpMetadataUrl": "",
|
||||
"AssertionConsumerServiceURL": "",
|
||||
"ScopingIDPProviderId": "",
|
||||
"ScopingIDPName": "",
|
||||
"IdpCertificateFile": "",
|
||||
"PublicCertificateFile": "",
|
||||
"PrivateKeyFile": "",
|
||||
"FirstNameAttribute": "",
|
||||
"LastNameAttribute": "",
|
||||
"EmailAttribute": "",
|
||||
"UsernameAttribute": "",
|
||||
"NicknameAttribute": "",
|
||||
"LocaleAttribute": "",
|
||||
"PositionAttribute": "",
|
||||
"LoginButtonText": "With SAML"
|
||||
},
|
||||
"NativeAppSettings": {
|
||||
"AppDownloadLink": "https://mattermost.com/download/",
|
||||
"AndroidAppDownloadLink": "https://mattermost.com/pl/android-app/",
|
||||
"IosAppDownloadLink": "https://mattermost.com/pl/ios-app/"
|
||||
},
|
||||
"ClusterSettings": {
|
||||
"Enable": false,
|
||||
"ClusterName": "",
|
||||
"OverrideHostname": "",
|
||||
"UseIPAddress": true,
|
||||
"UseExperimentalGossip": true,
|
||||
"ReadOnlyConfig": true,
|
||||
"GossipPort": 8074
|
||||
},
|
||||
"MetricsSettings": {
|
||||
"Enable": false,
|
||||
"BlockProfileRate": 0,
|
||||
"ListenAddress": ":8067"
|
||||
},
|
||||
"ExperimentalSettings": {
|
||||
},
|
||||
"AnalyticsSettings": {
|
||||
"MaxUsersForStatistics": 2500
|
||||
},
|
||||
"ElasticsearchSettings": {
|
||||
"ConnectionUrl": "http://localhost:9200",
|
||||
"Backend": "elasticsearch",
|
||||
"Username": "elastic",
|
||||
"Password": "changeme",
|
||||
"EnableIndexing": false,
|
||||
"EnableSearching": false,
|
||||
"EnableAutocomplete": false,
|
||||
"Sniff": true,
|
||||
"PostIndexReplicas": 1,
|
||||
"PostIndexShards": 1,
|
||||
"ChannelIndexReplicas": 1,
|
||||
"ChannelIndexShards": 1,
|
||||
"UserIndexReplicas": 1,
|
||||
"UserIndexShards": 1,
|
||||
"AggregatePostsAfterDays": 365,
|
||||
"PostsAggregatorJobStartTime": "03:00",
|
||||
"IndexPrefix": "",
|
||||
"LiveIndexingBatchSize": 1,
|
||||
"BatchSize": 10000,
|
||||
"RequestTimeoutSeconds": 30
|
||||
},
|
||||
"DataRetentionSettings": {
|
||||
"EnableMessageDeletion": false,
|
||||
"EnableFileDeletion": false,
|
||||
"MessageRetentionDays": 365,
|
||||
"FileRetentionDays": 365,
|
||||
"DeletionJobStartTime": "02:00"
|
||||
},
|
||||
"MessageExportSettings": {
|
||||
"EnableExport": false,
|
||||
"ExportFormat": "actiance",
|
||||
"DailyRunTime": "01:00",
|
||||
"ExportFromTimestamp": 0,
|
||||
"BatchSize": 10000,
|
||||
"GlobalRelaySettings": {
|
||||
"CustomerType": "A9",
|
||||
"SMTPUsername": "",
|
||||
"SMTPPassword": "",
|
||||
"EmailAddress": ""
|
||||
}
|
||||
},
|
||||
"JobSettings": {
|
||||
"RunJobs": true,
|
||||
"RunScheduler": true
|
||||
},
|
||||
"PluginSettings": {
|
||||
"Enable": true,
|
||||
"EnableUploads": true,
|
||||
"Directory": "./test-plugins",
|
||||
"ClientDirectory": "./test-client-plugins",
|
||||
"Plugins": {},
|
||||
"PluginStates": {
|
||||
"jira": {
|
||||
"Enable": true
|
||||
},
|
||||
"testplugin": {
|
||||
"Enable": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"DisplaySettings": {
|
||||
"CustomUrlSchemes": []
|
||||
}
|
||||
}
|
||||
BIN
server/tests/test-data-graph.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
424
server/tests/test-data.ldif
Normal file
@@ -0,0 +1,424 @@
|
||||
dn: ou=testusers,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: organizationalunit
|
||||
|
||||
# generic test users
|
||||
dn: uid=test.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
objectclass: activeDSObject
|
||||
objectclass: customInetOrgPerson
|
||||
sn: User
|
||||
cn: Test1
|
||||
title: Test1 Title
|
||||
mail: success+testone@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
textCustomAttribute: Custom Value for Test User 1
|
||||
dateCustomAttribute: 20240217120000Z
|
||||
selectCustomAttribute: option1
|
||||
multiSelectCustomAttribute: choice1
|
||||
multiSelectCustomAttribute: choice2
|
||||
userReferenceCustomAttribute: uid=test.two,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=test.three,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=test.four,ou=testusers,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: uid=test.two,ou=testusers,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
objectclass: activeDSObject
|
||||
objectclass: customInetOrgPerson
|
||||
sn: User
|
||||
cn: Test2
|
||||
title: Test2 Title
|
||||
mail: success+testtwo@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
textCustomAttribute: Custom Value for Test User 2
|
||||
dateCustomAttribute: 20240217130000Z
|
||||
selectCustomAttribute: option2
|
||||
multiSelectCustomAttribute: choice2
|
||||
multiSelectCustomAttribute: choice3
|
||||
userReferenceCustomAttribute: uid=test.three,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=test.four,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=test.five,ou=testusers,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: uid=test.three,ou=testusers,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
objectclass: activeDSObject
|
||||
objectclass: customInetOrgPerson
|
||||
sn: User
|
||||
cn: Test3
|
||||
title: Test3 Title
|
||||
mail: success+testthree@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
textCustomAttribute: Custom Value for Test User 3
|
||||
dateCustomAttribute: 20240217140000Z
|
||||
selectCustomAttribute: option3
|
||||
multiSelectCustomAttribute: choice3
|
||||
multiSelectCustomAttribute: choice4
|
||||
userReferenceCustomAttribute: uid=test.four,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=test.five,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=dev-ops.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: uid=test.four,ou=testusers,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
objectclass: activeDSObject
|
||||
objectclass: customInetOrgPerson
|
||||
sn: User
|
||||
cn: Test4
|
||||
title: Test4 Title
|
||||
mail: success+testfour@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
textCustomAttribute: Custom Value for Test User 4
|
||||
dateCustomAttribute: 20240217150000Z
|
||||
selectCustomAttribute: option1
|
||||
multiSelectCustomAttribute: choice4
|
||||
multiSelectCustomAttribute: choice2
|
||||
userReferenceCustomAttribute: uid=test.five,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=dev-ops.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=dev.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: uid=test.five,ou=testusers,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
objectclass: activeDSObject
|
||||
objectclass: customInetOrgPerson
|
||||
sn: User
|
||||
cn: Test5
|
||||
# No title to allow testing that path
|
||||
mail: success+testfive@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
textCustomAttribute: Custom Value for Test User 5
|
||||
dateCustomAttribute: 20240217160000Z
|
||||
selectCustomAttribute: option2
|
||||
multiSelectCustomAttribute: choice1
|
||||
multiSelectCustomAttribute: choice2
|
||||
userReferenceCustomAttribute: uid=dev-ops.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=dev.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=dev.two,ou=testusers,dc=mm,dc=test,dc=com
|
||||
|
||||
# developers
|
||||
dn: uid=dev-ops.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
objectclass: activeDSObject
|
||||
objectclass: customInetOrgPerson
|
||||
sn: User
|
||||
cn: Dev3
|
||||
title: DevOps Engineer
|
||||
mail: success+devopsone@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
textCustomAttribute: Custom Value for DevOps 1
|
||||
dateCustomAttribute: 20240217170000Z
|
||||
selectCustomAttribute: option3
|
||||
multiSelectCustomAttribute: choice2
|
||||
multiSelectCustomAttribute: choice3
|
||||
userReferenceCustomAttribute: uid=dev.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=dev.two,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=dev.three,ou=testusers,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: uid=dev.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
objectclass: activeDSObject
|
||||
objectclass: customInetOrgPerson
|
||||
sn: User
|
||||
cn: Dev1
|
||||
title: Senior Software Design Engineer
|
||||
mail: success+devone@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
textCustomAttribute: Custom Value for Dev 1
|
||||
dateCustomAttribute: 20240217180000Z
|
||||
selectCustomAttribute: option1
|
||||
multiSelectCustomAttribute: choice3
|
||||
multiSelectCustomAttribute: choice4
|
||||
userReferenceCustomAttribute: uid=dev.two,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=dev.three,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=dev.four,ou=testusers,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: uid=dev.two,ou=testusers,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
objectclass: activeDSObject
|
||||
objectclass: customInetOrgPerson
|
||||
sn: User
|
||||
cn: Dev2
|
||||
title: Software Design Engineer ||
|
||||
mail: success+devtwo@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
textCustomAttribute: Custom Value for Dev 2
|
||||
dateCustomAttribute: 20240217190000Z
|
||||
selectCustomAttribute: option2
|
||||
multiSelectCustomAttribute: choice4
|
||||
multiSelectCustomAttribute: choice1
|
||||
userReferenceCustomAttribute: uid=dev.three,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=dev.four,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=exec.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: uid=dev.three,ou=testusers,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
objectclass: activeDSObject
|
||||
objectclass: customInetOrgPerson
|
||||
sn: User
|
||||
cn: Dev3
|
||||
title: Software Design Engineer
|
||||
mail: success+devthree@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
textCustomAttribute: Custom Value for Dev 3
|
||||
dateCustomAttribute: 20240217200000Z
|
||||
selectCustomAttribute: option3
|
||||
multiSelectCustomAttribute: choice1
|
||||
multiSelectCustomAttribute: choice2
|
||||
userReferenceCustomAttribute: uid=dev.four,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=exec.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=exec.two,ou=testusers,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: uid=dev.four,ou=testusers,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
objectclass: activeDSObject
|
||||
objectclass: customInetOrgPerson
|
||||
sn: User
|
||||
cn: Dev4
|
||||
title: Staff Software Design Engineer
|
||||
mail: success+devfour@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
textCustomAttribute: Custom Value for Dev 4
|
||||
dateCustomAttribute: 20240217210000Z
|
||||
selectCustomAttribute: option1
|
||||
multiSelectCustomAttribute: choice2
|
||||
multiSelectCustomAttribute: choice3
|
||||
userReferenceCustomAttribute: uid=exec.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=exec.two,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=board.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
|
||||
# executive
|
||||
dn: uid=exec.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
objectclass: activeDSObject
|
||||
objectclass: customInetOrgPerson
|
||||
sn: User
|
||||
cn: Exec1
|
||||
title: CEO
|
||||
mail: success+execone@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
textCustomAttribute: Custom Value for Exec 1
|
||||
dateCustomAttribute: 20240217220000Z
|
||||
selectCustomAttribute: option2
|
||||
multiSelectCustomAttribute: choice3
|
||||
multiSelectCustomAttribute: choice4
|
||||
userReferenceCustomAttribute: uid=exec.two,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=board.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=board.two,ou=testusers,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: uid=exec.two,ou=testusers,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
objectclass: activeDSObject
|
||||
objectclass: customInetOrgPerson
|
||||
sn: User
|
||||
cn: Exec2
|
||||
title: CTO
|
||||
mail: success+exectwo@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
textCustomAttribute: Custom Value for Exec 2
|
||||
dateCustomAttribute: 20240217230000Z
|
||||
selectCustomAttribute: option3
|
||||
multiSelectCustomAttribute: choice4
|
||||
multiSelectCustomAttribute: choice1
|
||||
userReferenceCustomAttribute: uid=board.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=board.two,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=board.three,ou=testusers,dc=mm,dc=test,dc=com
|
||||
|
||||
# board of directors
|
||||
dn: uid=board.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
objectclass: activeDSObject
|
||||
objectclass: customInetOrgPerson
|
||||
sn: User
|
||||
cn: Board1
|
||||
title: Director
|
||||
mail: success+boardone@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
textCustomAttribute: Custom Value for Board 1
|
||||
dateCustomAttribute: 20240218000000Z
|
||||
selectCustomAttribute: option1
|
||||
multiSelectCustomAttribute: choice1
|
||||
multiSelectCustomAttribute: choice2
|
||||
userReferenceCustomAttribute: uid=board.two,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=board.three,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=firstloginuser.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: uid=board.two,ou=testusers,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
objectclass: activeDSObject
|
||||
objectclass: customInetOrgPerson
|
||||
sn: User
|
||||
cn: Board2
|
||||
title: Inside Director
|
||||
mail: success+boardtwo@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
textCustomAttribute: Custom Value for Board 2
|
||||
dateCustomAttribute: 20240218010000Z
|
||||
selectCustomAttribute: option2
|
||||
multiSelectCustomAttribute: choice2
|
||||
multiSelectCustomAttribute: choice3
|
||||
userReferenceCustomAttribute: uid=board.three,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=firstloginuser.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
multiUserReferenceCustomAttribute: uid=firstloginuser.two,ou=testusers,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: uid=board.three,ou=testusers,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
objectclass: activeDSObject
|
||||
objectclass: customInetOrgPerson
|
||||
sn: User
|
||||
cn: Board3
|
||||
title: Outside Director
|
||||
mail: success+boardthree@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
textCustomAttribute: Custom Value for Board 3
|
||||
dateCustomAttribute: 20240218020000Z
|
||||
|
||||
dn: uid=firstloginuser.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
objectclass: activeDSObject
|
||||
sn: User
|
||||
cn: FirstLogin1
|
||||
mail: success+firstloginuser.one@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
|
||||
dn: uid=firstloginuser.two,ou=testusers,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: iNetOrgPerson
|
||||
objectclass: activeDSObject
|
||||
sn: User
|
||||
cn: FirstLogin2
|
||||
mail: success+firstloginuser.two@simulator.amazonses.com
|
||||
userPassword: Password1
|
||||
|
||||
dn: ou=testgroups,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: organizationalunit
|
||||
|
||||
# groupOfNames
|
||||
|
||||
# groupOfNames with Base64 Encoded ObjectGUID
|
||||
dn: cn=outsiders,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: groupOfNames
|
||||
objectclass: activeDSObject
|
||||
objectGUID:: UcVUS/HonkGbqAAAAAAAAA==
|
||||
member: uid=board.three,ou=testusers,dc=mm,dc=test,dc=com
|
||||
|
||||
# groupOfNames with Hex Separated ObjectGUID
|
||||
dn: cn=board,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: groupOfNames
|
||||
objectclass: activeDSObject
|
||||
objectGUID: \56\6d\95\5b\a8\9a\9c\42\a4\61\00\00\00\00\00\00
|
||||
member: uid=board.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
member: uid=board.two,ou=testusers,dc=mm,dc=test,dc=com
|
||||
member: cn=outsiders,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
|
||||
# groupOfNames with Binary Encoded ObjectGUID
|
||||
dn: cn=executive,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: groupOfNames
|
||||
objectclass: activeDSObject
|
||||
objectGUID:: EBYPDQ4NDAsKCQgHBgUEAwIBAA==
|
||||
member: uid=exec.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
member: uid=exec.two,ou=testusers,dc=mm,dc=test,dc=com
|
||||
member: cn=board,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: cn=tgroup-84,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: groupOfNames
|
||||
objectclass: activeDSObject
|
||||
objectGUID:: YB4aM/vJn0CfhQAAAAAAAA==
|
||||
member: cn=tgroup-9,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
member: uid=test.five,ou=testusers,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: cn=tgroup-9,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: groupOfNames
|
||||
objectclass: activeDSObject
|
||||
objectGUID:: ZA9bHYy+n0KVlgAAAAAAAA==
|
||||
member: cn=tgroup-97,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: cn=tgroup-97,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: groupOfNames
|
||||
objectclass: activeDSObject
|
||||
objectGUID:: aS77A+eDnke+7AAAAAAAAA==
|
||||
member: uid=test.four,ou=testusers,dc=mm,dc=test,dc=com
|
||||
|
||||
# groupOfUniqueNames
|
||||
dn: cn=tgroup,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: groupOfUniqueNames
|
||||
objectclass: activeDSObject
|
||||
objectGUID:: bThfVKmRn0S5mQAAAAAAAA==
|
||||
uniqueMember: uid=test.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: cn=ugroup,cn=tgroup,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: groupOfUniqueNames
|
||||
objectclass: activeDSObject
|
||||
objectGUID:: cEdgf5/JnkCZtQAAAAAAAA==
|
||||
uniqueMember: uid=test.two,ou=testusers,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: cn=vgroup,cn=tgroup,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: groupOfUniqueNames
|
||||
objectclass: activeDSObject
|
||||
objectGUID:: dUvgN8VXnkC9EQAAAAAAAAA==
|
||||
uniqueMember: uid=test.three,ou=testusers,dc=mm,dc=test,dc=com
|
||||
|
||||
# Adds a group with a cycle
|
||||
dn: cn=team-one-a,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: groupOfUniqueNames
|
||||
objectclass: activeDSObject
|
||||
objectGUID:: eXyMRG3BnUCJsQAAAAAAAA==
|
||||
uniqueMember: uid=dev.four,ou=testusers,dc=mm,dc=test,dc=com
|
||||
uniqueMember: cn=developers,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: cn=team-one,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: groupOfUniqueNames
|
||||
objectclass: activeDSObject
|
||||
objectGUID:: fM8fdh6MnUGsYQAAAAAAAA==
|
||||
uniqueMember: uid=dev.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
uniqueMember: uid=dev.three,ou=testusers,dc=mm,dc=test,dc=com
|
||||
uniqueMember: cn=team-one-a,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: cn=team-two,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: groupOfUniqueNames
|
||||
objectclass: activeDSObject
|
||||
objectGUID:: gI9GHKjnn0G7LQAAAAAAAAA==
|
||||
uniqueMember: uid=dev.two,ou=testusers,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: cn=developers,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: groupOfUniqueNames
|
||||
objectclass: activeDSObject
|
||||
objectGUID:: hKDpuRd+nECFKwAAAAAAAA==
|
||||
uniqueMember: uid=dev-ops.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
uniqueMember: cn=team-one,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
uniqueMember: cn=team-two,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
|
||||
dn: cn=firstlogingroup,ou=testgroups,dc=mm,dc=test,dc=com
|
||||
changetype: add
|
||||
objectclass: groupOfUniqueNames
|
||||
objectclass: activeDSObject
|
||||
objectGUID:: iS3dxTuwnkC2MQAAAAAAAAA==
|
||||
uniqueMember: uid=firstloginuser.one,ou=testusers,dc=mm,dc=test,dc=com
|
||||
uniqueMember: uid=firstloginuser.two,ou=testusers,dc=mm,dc=test,dc=com
|
||||
12
server/tests/test-emoticons1.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# Emoji Testing
|
||||
Verify that all emoji and emoticons render.
|
||||
|
||||
:mattermost:
|
||||
|
||||
### Emoticons - Punctuation
|
||||
|
||||
:) :-) ;) ;-) :o :O :-o :-O :] :-] :d :-D x-d x-D :p :-P :( :-( :'( :/ :-/ :s :-s :| :-| :$ :-$ :-x <3 :+1: :-1:
|
||||
|
||||
### Emoji - People (continued in test-emoticons2.md)
|
||||
|
||||
:grinning: :smiley: :smile: :grin: :laughing: :satisfied: :sweat_smile: :joy: :rofl: :relaxed: :blush: :innocent: :slightly_smiling_face: :upside_down_face: :wink: :relieved: :heart_eyes: :kissing_heart: :kissing: :kissing_smiling_eyes: :kissing_closed_eyes: :yum: :stuck_out_tongue_winking_eye: :stuck_out_tongue_closed_eyes: :stuck_out_tongue: :money_mouth_face: :hugs: :nerd_face: :sunglasses: :clown_face: :cowboy_hat_face: :smirk: :unamused: :disappointed: :pensive: :worried: :confused: :slightly_frowning_face: :frowning_face: :imp: :japanese_ogre: :japanese_goblin: :hankey: :poop: :shit: :ghost: :skull: :skull_and_crossbones: :alien: :space_invader: :robot: :jack_o_lantern: :smiley_cat: :smile_cat: :joy_cat: :heart_eyes_cat: :smirk_cat: :kissing_cat: :scream_cat: :crying_cat_face: :pouting_cat: :open_hands: :raised_hands: :clap: :pray: :handshake: :+1: :thumbsup: :-1: :thumbsdown: :fist_oncoming: :facepunch: :punch: :fist_raised: :fist: :fist_left: :fist_right: :crossed_fingers: :v: :persevere: :confounded: :tired_face: :weary: :triumph: :angry: :rage: :pout: :no_mouth: :neutral_face: :expressionless: :hushed: :frowning: :anguished: :open_mouth: :astonished: :dizzy_face: :flushed: :scream: :fearful: :cold_sweat: :cry: :disappointed_relieved: :drooling_face: :sob: :sweat: :sleepy: :sleeping: :roll_eyes: :thinking: :lying_face: :grimacing: :zipper_mouth_face: :nauseated_face: :sneezing_face: :mask: :face_with_thermometer: :face_with_head_bandage: :smiling_imp: :metal: :ok_hand: :point_left: :point_right: :point_up_2: :point_down: :point_up: :hand: :raised_hand: :raised_back_of_hand: :raised_hand_with_fingers_splayed: :vulcan_salute: :wave: :call_me_hand: :muscle: :middle_finger: :fu: :writing_hand: :selfie: :nail_care: :ring: :lipstick: :kiss: :lips: :tongue: :ear: :nose: :footprints: :eye: :eyes: :speaking_head: :bust_in_silhouette: :busts_in_silhouette: :baby: :boy: :girl: :man: :woman: :blonde_woman: :blonde_man: :person_with_blond_hair: :older_man: :older_woman: :man_with_gua_pi_mao: :woman_with_turban: :man_with_turban: :policewoman: :policeman: :cop: :construction_worker_woman: :construction_worker_man: :construction_worker: :guardswoman: :guardsman: :female_detective: :male_detective: :detective: :woman_health_worker: :man_health_worker: :woman_farmer: :man_farmer: :woman_cook: :man_cook: :woman_student: :man_student: :woman_singer: :man_singer: :woman_teacher: :man_teacher: :woman_factory_worker: :man_factory_worker: :woman_technologist: :man_technologist: :woman_office_worker: :man_office_worker: :woman_mechanic: :man_mechanic: :woman_scientist: :man_scientist: :woman_artist: :man_artist: :woman_firefighter: :man_firefighter: :woman_pilot: :man_pilot: :woman_astronaut: :man_astronaut: :woman_judge: :man_judge: :mrs_claus: :santa: :princess: :prince: :bride_with_veil: :man_in_tuxedo: :angel: :pregnant_woman: :bowing_woman: :bowing_man: :bow: :tipping_hand_woman: :information_desk_person: :tipping_hand_man: :no_good_woman: :no_good: :ng_woman: :no_good_man: :ng_man: :ok_woman: :ok_man: :raising_hand_woman: :raising_hand: :raising_hand_man: :woman_facepalming: :man_facepalming: :woman_shrugging: :man_shrugging: :pouting_woman: :person_with_pouting_face: :pouting_man: :frowning_woman: :person_frowning: :frowning_man: :haircut_woman: :haircut: :haircut_man: :massage_woman: :massage: :massage_man: :business_suit_levitating: :dancer: :man_dancing: :dancing_women: :dancing_men: :walking_woman: :walking_man: :walking: :running_woman: :running_man: :runner: :running: :couple: :two_women_holding_hands: :two_men_holding_hands: :couple_with_heart_woman_man: :couple_with_heart: :couple_with_heart_woman_woman: :couple_with_heart_man_man:
|
||||
7
server/tests/test-emoticons2.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Emoji - People (continued from test-emoticons1.md)
|
||||
|
||||
:couplekiss_man_woman: :couplekiss_woman_woman: :couplekiss_man_man: :family_man_woman_boy: :family: :family_man_woman_girl: :family_man_woman_girl_boy: :family_man_woman_boy_boy: :family_man_woman_girl_girl: :family_woman_woman_boy: :family_woman_woman_girl: :family_woman_woman_girl_boy: :family_woman_woman_boy_boy: :family_woman_woman_girl_girl: :family_man_man_boy: :family_man_man_girl: :family_man_man_girl_boy: :family_man_man_boy_boy: :family_man_man_girl_girl: :family_woman_boy: :family_woman_girl: :family_woman_girl_boy: :family_woman_boy_boy: :family_woman_girl_girl: :family_man_boy: :family_man_girl: :family_man_girl_boy: :family_man_boy_boy: :family_man_girl_girl: :womans_clothes: :shirt: :tshirt: :jeans: :necktie: :dress: :bikini: :kimono: :high_heel: :sandal: :boot: :mans_shoe: :shoe: :athletic_shoe: :womans_hat: :tophat: :mortar_board: :crown: :rescue_worker_helmet: :school_satchel: :pouch: :purse: :handbag: :briefcase: :eyeglasses: :dark_sunglasses: :closed_umbrella: :open_umbrella:
|
||||
|
||||
### Emoji - Food
|
||||
|
||||
:green_apple: :apple: :pear: :tangerine: :orange: :mandarin: :lemon: :banana: :watermelon: :grapes: :strawberry: :melon: :cherries: :peach: :pineapple: :kiwi_fruit: :avocado: :tomato: :eggplant: :cucumber: :carrot: :corn: :hot_pepper: :potato: :sweet_potato: :chestnut: :peanuts: :honey_pot: :croissant: :bread: :baguette_bread: :cheese: :egg: :fried_egg: :bacon: :pancakes: :fried_shrimp: :poultry_leg: :meat_on_bone: :pizza: :hotdog: :hamburger: :fries: :stuffed_flatbread: :taco: :burrito: :green_salad: :shallow_pan_of_food: :spaghetti: :ramen: :stew: :fish_cake: :sushi: :bento: :curry: :rice: :rice_ball: :rice_cracker: :oden: :dango: :shaved_ice: :ice_cream: :icecream: :cake: :birthday: :custard: :lollipop: :candy: :chocolate_bar: :popcorn: :doughnut: :cookie: :milk_glass: :baby_bottle: :coffee: :tea: :sake: :beer: :beers: :clinking_glasses: :wine_glass: :tumbler_glass: :cocktail: :tropical_drink: :champagne: :spoon: :fork_and_knife: :plate_with_cutlery:
|
||||
7
server/tests/test-emoticons3.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Emoji - Nature
|
||||
|
||||
:dog: :cat: :mouse: :hamster: :rabbit: :fox_face: :bear: :panda_face: :koala: :tiger: :lion: :cow: :pig: :pig_nose: :frog: :monkey_face: :see_no_evil: :hear_no_evil: :speak_no_evil: :monkey: :chicken: :penguin: :bird: :baby_chick: :hatching_chick: :hatched_chick: :duck: :eagle: :owl: :bat: :wolf: :boar: :horse: :unicorn: :bee: :honeybee: :bug: :butterfly: :snail: :shell: :beetle: :ant: :spider: :spider_web: :turtle: :snake: :lizard: :scorpion: :crab: :squid: :octopus: :shrimp: :tropical_fish: :fish: :blowfish: :dolphin: :flipper: :shark: :whale: :whale2: :crocodile: :leopard: :tiger2: :water_buffalo: :ox: :cow2: :deer: :dromedary_camel: :camel: :elephant: :rhinoceros: :gorilla: :racehorse: :pig2: :goat: :ram: :sheep: :dog2: :poodle: :cat2: :rooster: :turkey: :dove: :rabbit2: :mouse2: :rat: :chipmunk: :feet: :paw_prints: :dragon: :dragon_face: :cactus: :christmas_tree: :evergreen_tree: :deciduous_tree: :palm_tree: :seedling: :herb: :shamrock: :four_leaf_clover: :bamboo: :tanabata_tree: :leaves: :fallen_leaf: :maple_leaf: :mushroom: :ear_of_rice: :bouquet: :tulip: :rose: :wilted_flower: :sunflower: :blossom: :cherry_blossom: :hibiscus: :earth_americas: :earth_africa: :earth_asia: :full_moon: :waning_gibbous_moon: :last_quarter_moon: :waning_crescent_moon: :new_moon: :waxing_crescent_moon: :first_quarter_moon: :moon: :waxing_gibbous_moon: :new_moon_with_face: :full_moon_with_face: :sun_with_face: :first_quarter_moon_with_face: :last_quarter_moon_with_face: :crescent_moon: :dizzy: :star: :star2: :sparkles: :zap: :fire: :boom: :collision: :comet: :sunny: :sun_behind_small_cloud: :partly_sunny: :sun_behind_large_cloud: :sun_behind_rain_cloud: :rainbow: :cloud: :cloud_with_rain: :cloud_with_lightning_and_rain: :cloud_with_lightning: :cloud_with_snow: :snowman_with_snow: :snowman: :snowflake: :wind_face: :dash: :tornado: :fog: :ocean: :droplet: :sweat_drops: :umbrella:
|
||||
|
||||
### Emoji - Activity
|
||||
|
||||
:soccer: :basketball: :football: :baseball: :tennis: :volleyball: :rugby_football: :8ball: :ping_pong: :badminton: :goal_net: :ice_hockey: :field_hockey: :cricket: :golf: :bow_and_arrow: :fishing_pole_and_fish: :boxing_glove: :martial_arts_uniform: :ice_skate: :ski: :skier: :snowboarder: :weight_lifting_woman: :weight_lifting_man: :person_fencing: :women_wrestling: :men_wrestling: :woman_cartwheeling: :man_cartwheeling: :basketball_woman: :basketball_man: :woman_playing_handball: :man_playing_handball: :golfing_woman: :golfing_man: :surfing_woman: :surfing_man: :surfer: :swimming_woman: :swimming_man: :swimmer: :woman_playing_water_polo: :man_playing_water_polo: :rowing_woman: :rowing_man: :rowboat: :horse_racing: :biking_woman: :biking_man: :bicyclist: :mountain_biking_woman: :mountain_biking_man: :mountain_bicyclist: :running_shirt_with_sash: :medal_sports: :medal_military: :1st_place_medal: :2nd_place_medal: :3rd_place_medal: :trophy: :rosette: :reminder_ribbon: :ticket: :tickets: :circus_tent: :woman_juggling: :man_juggling: :performing_arts: :art: :clapper: :microphone: :headphones: :musical_score: :musical_keyboard: :drum: :saxophone: :trumpet: :guitar: :violin: :game_die: :dart: :bowling: :video_game: :slot_machine:
|
||||
7
server/tests/test-emoticons4.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Emoji - Travel
|
||||
|
||||
:car: :red_car: :taxi: :blue_car: :bus: :trolleybus: :racing_car: :police_car: :ambulance: :fire_engine: :minibus: :truck: :articulated_lorry: :tractor: :kick_scooter: :bike: :motor_scooter: :motorcycle: :rotating_light: :oncoming_police_car: :oncoming_bus: :oncoming_automobile: :oncoming_taxi: :aerial_tramway: :mountain_cableway: :suspension_railway: :railway_car: :train: :mountain_railway: :monorail: :bullettrain_side: :bullettrain_front: :light_rail: :steam_locomotive: :train2: :metro: :tram: :station: :helicopter: :small_airplane: :airplane: :flight_departure: :flight_arrival: :rocket: :artificial_satellite: :seat: :canoe: :boat: :sailboat: :motor_boat: :speedboat: :passenger_ship: :ferry: :ship: :anchor: :construction: :fuelpump: :busstop: :vertical_traffic_light: :traffic_light: :world_map: :moyai: :statue_of_liberty: :fountain: :tokyo_tower: :european_castle: :japanese_castle: :stadium: :ferris_wheel: :roller_coaster: :carousel_horse: :parasol_on_ground: :beach_umbrella: :desert_island: :mountain: :mountain_snow: :mount_fuji: :volcano: :desert: :camping: :tent: :railway_track: :motorway: :building_construction: :factory: :house: :house_with_garden: :houses: :derelict_house: :office: :department_store: :post_office: :european_post_office: :hospital: :bank: :hotel: :convenience_store: :school: :love_hotel: :wedding: :classical_building: :church: :mosque: :synagogue: :kaaba: :shinto_shrine: :japan: :rice_scene: :national_park: :sunrise: :sunrise_over_mountains: :stars: :sparkler: :fireworks: :city_sunrise: :city_sunset: :cityscape: :night_with_stars: :milky_way: :bridge_at_night: :foggy:
|
||||
|
||||
### Emoji - Objects
|
||||
|
||||
:watch: :iphone: :calling: :computer: :keyboard: :desktop_computer: :printer: :computer_mouse: :trackball: :joystick: :clamp: :minidisc: :floppy_disk: :cd: :dvd: :vhs: :camera: :camera_flash: :video_camera: :movie_camera: :film_projector: :film_strip: :telephone_receiver: :phone: :telephone: :pager: :fax: :tv: :radio: :studio_microphone: :level_slider: :control_knobs: :stopwatch: :timer_clock: :alarm_clock: :mantelpiece_clock: :hourglass: :hourglass_flowing_sand: :satellite: :battery: :electric_plug: :bulb: :flashlight: :candle: :wastebasket: :oil_drum: :money_with_wings: :dollar: :yen: :euro: :pound: :moneybag: :credit_card: :gem: :balance_scale: :wrench: :hammer: :hammer_and_pick: :hammer_and_wrench: :pick: :nut_and_bolt: :gear: :chains: :gun: :bomb: :hocho: :knife: :dagger: :crossed_swords: :shield: :smoking: :coffin: :funeral_urn: :amphora: :crystal_ball: :prayer_beads: :barber: :alembic: :telescope: :microscope: :hole: :pill: :syringe: :thermometer: :toilet: :potable_water: :shower: :bathtub: :bath: :bellhop_bell: :key: :old_key: :door: :couch_and_lamp: :bed: :sleeping_bed: :framed_picture: :shopping: :shopping_cart: :gift: :balloon: :flags: :ribbon: :confetti_ball: :tada: :dolls: :izakaya_lantern: :lantern: :wind_chime: :email: :envelope: :envelope_with_arrow: :incoming_envelope: :e-mail: :love_letter: :inbox_tray: :outbox_tray: :package: :label: :mailbox_closed: :mailbox: :mailbox_with_mail: :mailbox_with_no_mail: :postbox: :postal_horn: :scroll: :page_with_curl: :page_facing_up: :bookmark_tabs: :bar_chart: :chart_with_upwards_trend: :chart_with_downwards_trend: :spiral_notepad: :spiral_calendar: :calendar: :date: :card_index: :card_file_box: :ballot_box: :file_cabinet: :clipboard: :file_folder: :open_file_folder: :card_index_dividers: :newspaper_roll: :newspaper: :notebook: :notebook_with_decorative_cover: :ledger: :closed_book: :green_book: :blue_book: :orange_book: :books: :book: :open_book: :bookmark: :link: :paperclip: :paperclips: :triangular_ruler: :straight_ruler: :pushpin: :round_pushpin: :scissors: :pen: :fountain_pen: :black_nib: :paintbrush: :crayon: :memo: :pencil2: :mag: :mag_right: :lock_with_ink_pen: :closed_lock_with_key: :lock: :unlock:
|
||||
3
server/tests/test-emoticons5.md
Normal file
@@ -0,0 +1,3 @@
|
||||
### Emoji - Symbols
|
||||
|
||||
:heart: :yellow_heart: :green_heart: :blue_heart: :purple_heart: :black_heart: :broken_heart: :heavy_heart_exclamation: :two_hearts: :revolving_hearts: :heartbeat: :heartpulse: :sparkling_heart: :cupid: :gift_heart: :heart_decoration: :peace_symbol: :latin_cross: :star_and_crescent: :om: :wheel_of_dharma: :star_of_david: :six_pointed_star: :menorah: :yin_yang: :orthodox_cross: :place_of_worship: :ophiuchus: :aries: :taurus: :gemini: :cancer: :leo: :virgo: :libra: :scorpius: :sagittarius: :capricorn: :aquarius: :pisces: :id: :atom_symbol: :accept: :radioactive: :biohazard: :mobile_phone_off: :vibration_mode: :u6709: :u7121: :u7533: :u55b6: :u6708: :eight_pointed_black_star: :vs: :white_flower: :ideograph_advantage: :secret: :congratulations: :u5408: :u6e80: :u5272: :u7981: :a: :b: :ab: :cl: :o2: :sos: :x: :o: :stop_sign: :no_entry: :name_badge: :no_entry_sign: :100: :anger: :hotsprings: :no_pedestrians: :do_not_litter: :no_bicycles: :non-potable_water: :underage: :no_mobile_phones: :no_smoking: :exclamation: :heavy_exclamation_mark: :grey_exclamation: :question: :grey_question: :bangbang: :interrobang: :low_brightness: :high_brightness: :part_alternation_mark: :warning: :children_crossing: :trident: :fleur_de_lis: :beginner: :recycle: :white_check_mark: :u6307: :chart: :sparkle: :eight_spoked_asterisk: :negative_squared_cross_mark: :globe_with_meridians: :diamond_shape_with_a_dot_inside: :m: :cyclone: :zzz: :atm: :wc: :wheelchair: :parking: :u7a7a: :sa: :passport_control: :customs: :baggage_claim: :left_luggage: :mens: :womens: :baby_symbol: :restroom: :put_litter_in_its_place: :cinema: :signal_strength: :koko: :symbols: :information_source: :abc: :abcd: :capital_abcd: :ng: :ok: :up: :cool: :new: :free: :zero: :one: :two: :three: :four: :five: :six: :seven: :eight: :nine: :keycap_ten: :1234: :hash: :asterisk: :arrow_forward: :pause_button: :play_or_pause_button: :stop_button: :record_button: :next_track_button: :previous_track_button: :fast_forward: :rewind: :arrow_double_up: :arrow_double_down: :arrow_backward: :arrow_up_small: :arrow_down_small: :arrow_right: :arrow_left: :arrow_up: :arrow_down: :arrow_upper_right: :arrow_lower_right: :arrow_lower_left: :arrow_upper_left: :arrow_up_down: :left_right_arrow: :arrow_right_hook: :leftwards_arrow_with_hook: :arrow_heading_up: :arrow_heading_down: :twisted_rightwards_arrows: :repeat: :repeat_one: :arrows_counterclockwise: :arrows_clockwise: :musical_note: :notes: :heavy_plus_sign: :heavy_minus_sign: :heavy_division_sign: :heavy_multiplication_x: :heavy_dollar_sign: :currency_exchange: :tm: :copyright: :registered: :wavy_dash: :curly_loop: :loop: :end: :back: :on: :top: :soon: :heavy_check_mark: :ballot_box_with_check: :radio_button: :white_circle: :black_circle: :red_circle: :large_blue_circle: :small_red_triangle: :small_red_triangle_down: :small_orange_diamond: :small_blue_diamond: :large_orange_diamond: :large_blue_diamond: :white_square_button: :black_square_button: :black_small_square: :white_small_square: :black_medium_small_square: :white_medium_small_square: :black_medium_square: :white_medium_square: :black_large_square: :white_large_square: :speaker: :mute: :sound: :loud_sound: :bell: :no_bell: :mega: :loudspeaker: :eye_speech_bubble: :speech_balloon: :thought_balloon: :right_anger_bubble: :spades: :clubs: :hearts: :diamonds: :black_joker: :flower_playing_cards: :mahjong: :clock1: :clock2: :clock3: :clock4: :clock5: :clock6: :clock7: :clock8: :clock9: :clock10: :clock11: :clock12: :clock130: :clock230: :clock330: :clock430: :clock530: :clock630: :clock730: :clock830: :clock930: :clock1030: :clock1130: :clock1230:
|
||||
21
server/tests/test-emoticons6.md
Normal file
@@ -0,0 +1,21 @@
|
||||
### Emoji - Flags
|
||||
|
||||
:white_flag: :black_flag: :checkered_flag: :triangular_flag_on_post: :rainbow_flag: :afghanistan: :aland_islands: :albania: :algeria: :american_samoa: :andorra: :angola: :anguilla: :antarctica: :antigua_barbuda: :argentina: :armenia: :aruba: :australia: :austria: :azerbaijan: :bahamas: :bahrain: :bangladesh: :barbados: :belarus: :belgium: :belize: :benin: :bermuda: :bhutan: :bolivia: :caribbean_netherlands: :bosnia_herzegovina: :botswana: :brazil: :british_indian_ocean_territory: :british_virgin_islands: :brunei: :bulgaria: :burkina_faso: :burundi: :cape_verde: :cambodia: :cameroon: :canada: :canary_islands: :cayman_islands: :central_african_republic: :chad: :chile: :cn: :christmas_island: :cocos_islands: :colombia: :comoros: :congo_brazzaville: :congo_kinshasa: :cook_islands: :costa_rica: :cote_divoire: :croatia: :cuba: :curacao: :cyprus: :czech_republic: :denmark: :djibouti: :dominica: :dominican_republic: :ecuador: :egypt: :el_salvador: :equatorial_guinea: :eritrea: :estonia: :ethiopia: :eu: :european_union: :falkland_islands: :faroe_islands: :fiji: :finland: :fr: :french_guiana: :french_polynesia: :french_southern_territories: :gabon: :gambia: :georgia: :de: :ghana: :gibraltar: :greece: :greenland: :grenada: :guadeloupe: :guam: :guatemala: :guernsey: :guinea: :guinea_bissau: :guyana: :haiti: :honduras: :hong_kong: :hungary: :iceland: :india: :indonesia: :iran: :iraq: :ireland: :isle_of_man: :israel: :it: :jamaica: :jp: :crossed_flags: :jersey: :jordan: :kazakhstan: :kenya: :kiribati: :kosovo: :kuwait: :kyrgyzstan: :laos: :latvia: :lebanon: :lesotho: :liberia: :libya: :liechtenstein: :lithuania: :luxembourg: :macau: :macedonia: :madagascar: :malawi: :malaysia: :maldives: :mali: :malta: :marshall_islands: :martinique: :mauritania: :mauritius: :mayotte: :mexico: :micronesia: :moldova: :monaco: :mongolia: :montenegro: :montserrat: :morocco: :mozambique: :myanmar: :namibia: :nauru: :nepal: :netherlands: :new_caledonia: :new_zealand: :nicaragua: :niger: :nigeria: :niue: :norfolk_island: :northern_mariana_islands: :north_korea: :norway: :oman: :pakistan: :palau: :palestinian_territories: :panama: :papua_new_guinea: :paraguay: :peru: :philippines: :pitcairn_islands: :poland: :portugal: :puerto_rico: :qatar: :reunion: :romania: :ru: :rwanda: :st_barthelemy: :st_helena: :st_kitts_nevis: :st_lucia: :st_pierre_miquelon: :st_vincent_grenadines: :samoa: :san_marino: :sao_tome_principe: :saudi_arabia: :senegal: :serbia: :seychelles: :sierra_leone: :singapore: :sint_maarten: :slovakia: :slovenia: :solomon_islands: :somalia: :south_africa: :south_georgia_south_sandwich_islands: :kr: :south_sudan: :es: :sri_lanka: :sudan: :suriname: :swaziland: :sweden: :switzerland: :syria: :taiwan: :tajikistan: :tanzania: :thailand: :timor_leste: :togo: :tokelau: :tonga: :trinidad_tobago: :tunisia: :tr: :turkmenistan: :turks_caicos_islands: :tuvalu: :uganda: :ukraine: :united_arab_emirates: :gb: :uk: :us: :us_virgin_islands: :uruguay: :uzbekistan: :vanuatu: :vatican_city: :venezuela: :vietnam: :wallis_futuna: :western_sahara: :yemen: :zambia: :zimbabwe:
|
||||
|
||||
### Emoji - Special
|
||||
|
||||
:bowtie: :feelsgood: :finnadie: :goberserk: :godmode: :hurtrealbad: :neckbeard: :octocat: :rage1: :rage2: :rage3: :rage4: :shipit: :squirrel: :suspect: :trollface: :mattermost:
|
||||
|
||||
### Emoji - Without space separator
|
||||
|
||||
`:dolphin::hamster::strawberry:` should render as emoticons below:
|
||||
|
||||
:dolphin::hamster::strawberry:
|
||||
|
||||
### Emoji - In headings
|
||||
|
||||
`# Squirrel: :squirrel:` should render emoticon scaled to match heading text size (except in compact view, which renders all headings the same size, boldface):
|
||||
|
||||
# H1 Squirrel: :squirrel:
|
||||
## H2 Squirrel: :squirrel:
|
||||
### H3 Squirrel: :squirrel:
|
||||
20
server/tests/test-hashtags.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# Hashtag Testing
|
||||
|
||||
Hashtags in Mattermosts should render as specified below.
|
||||
|
||||
#### These strings should auto-link:
|
||||
|
||||
#testing
|
||||
#testing123
|
||||
#test-test
|
||||
#test_test
|
||||
#test! (punctuation should be excluded from linking)
|
||||
#test1 #test2
|
||||
#hüllo
|
||||
|
||||
#### These strings should not auto-link:
|
||||
|
||||
#123test
|
||||
#?test
|
||||
#-test
|
||||
|
||||
53
server/tests/test-link-preview.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# Link Preview Tests
|
||||
|
||||
Link previews should embed previews of the contents of a hyperlink from a message or comment in the center channel directly below the message or comment.
|
||||
|
||||
Post location variation:
|
||||
|
||||
1. Post message in center channel with RHS closed (Expected: preview of first link renders under message)
|
||||
2. Post message in center channel with RHS open (Expected: preview of first link renders under message)
|
||||
3. Post comment in RHS (Expected: link preview does not render)
|
||||
4. View comment in center channel with RHS closed (Expected: preview of first link renders under message)
|
||||
5. View comment in center channel with RHS open (Expected: preview of first link renders under message)
|
||||
6. Search for post in RHS with link (Expected: no previews render in search results)
|
||||
|
||||
Test the above variations with the below sample messages (e.g. 1-A, 2-B, 3-C, 4-D, etc.)
|
||||
|
||||
```
|
||||
#### A) No link preview
|
||||
|
||||
Link 1 example: https://en.wikipedia.org/wiki/Olympus_Mons
|
||||
|
||||
Link 2 example: http://www.techmeme.com/
|
||||
|
||||
Link 3 example: https://about.gitlab.com/
|
||||
```
|
||||
|
||||
```
|
||||
#### B) Link preview without an image
|
||||
|
||||
Link 1 example: https://coveralls.io/builds/9818822/source?filename=app%2Faudit.go
|
||||
```
|
||||
|
||||
```
|
||||
#### C) Link preview with image in top right corner
|
||||
|
||||
Link 1 example: http://www.theglobeandmail.com/news/national/three-canadians-shortlisted-for-global-teacher-prize/article33429901/
|
||||
|
||||
Link 2 example: https://twitter.com/ArchieComics/status/813007703861841920
|
||||
|
||||
Link 3 example: https://github.com/mattermost
|
||||
|
||||
Link 4 example: http://stackoverflow.com/questions/36650437/using-mattermost-api-via-gitlab-oauth-as-an-end-user-with-username-and-password
|
||||
```
|
||||
|
||||
```
|
||||
#### D) Link preview with image at the bottom
|
||||
|
||||
If "Account Settings > Display > Default appearance of image link previews" is set to "Collapsed", you must click the expand arrows to display the image.
|
||||
|
||||
Link 1 example: https://www.yahoo.com/news/panasonic-unveils-solar-roof-may-212400917.html
|
||||
|
||||
Link 2 example: https://mattermost.com
|
||||
|
||||
```
|
||||
92
server/tests/test-links.md
Normal file
@@ -0,0 +1,92 @@
|
||||
# Link Testing
|
||||
|
||||
Links in Mattermosts should render as specified below.
|
||||
|
||||
#### These strings should auto-link:
|
||||
|
||||
http://example.com
|
||||
https://example.com
|
||||
www.example.com
|
||||
www.example.com/index
|
||||
www.example.com/index.html
|
||||
www.example.com/index/sub
|
||||
www.example.com/index?params=1
|
||||
www.example.com/index?params=1&other=2
|
||||
www.example.com/index?params=1;other=2
|
||||
http://example.com:8065
|
||||
http://www.example.com/_/page
|
||||
www.example.com/_/page
|
||||
https://en.wikipedia.org/wiki/🐬
|
||||
https://en.wikipedia.org/wiki/Rendering_(computer_graphics)
|
||||
http://127.0.0.1
|
||||
http://192.168.1.1:4040
|
||||
http://[::1]:80
|
||||
http://[::1]:8065
|
||||
https://[::1]:80
|
||||
http://[2001:0:5ef5:79fb:303a:62d5:3312:ff42]
|
||||
http://[2001:0:5ef5:79fb:303a:62d5:3312:ff42]:8065
|
||||
https://[2001:0:5ef5:79fb:303a:62d5:3312:ff42]
|
||||
test@example.com
|
||||
http://example.com/more_(than)_one_(parens)
|
||||
http://example.com/(something)?after=parens
|
||||
http://foo.com/unicode_(✪)_in_parens
|
||||
http://✪df.ws/1234
|
||||
*https://example.com*
|
||||
_https://example.com_
|
||||
**https://example.com**
|
||||
__https://example.com__
|
||||
***https://example.com***
|
||||
___https://example.com___
|
||||
<https://example.com>
|
||||
<https://en.wikipedia.org/wiki/Rendering_(computer_graphics)>
|
||||
www1.example.com
|
||||
[This whole #sentence should be a link](https://example.com)
|
||||
https://groups.google.com/forum/#!msg
|
||||
|
||||
#### These strings should not auto-link:
|
||||
|
||||
example.com
|
||||
readme.md
|
||||
@example.com
|
||||
./make-compiled-client.sh
|
||||
test.:test
|
||||
`https://example.com`
|
||||
|
||||
#### Only the links within these sentences should auto-link:
|
||||
|
||||
(http://example.com)
|
||||
(see http://example.com)
|
||||
(http://example.com watch this)
|
||||
(test@example.com)
|
||||
This is a sentence with a http://example.com in it.
|
||||
This is a sentence with a [link](http://example.com) in it.
|
||||
This is a sentence with a http://example.com/_/underscore in it.
|
||||
This is a sentence with a link (http://example.com) in it.
|
||||
This is a sentence with a (https://en.wikipedia.org/wiki/Rendering_(computer_graphics)) in it.
|
||||
This is a sentence with a http://192.168.1.1:4040 in it.
|
||||
This is a sentence with a https://[::1]:80 in it.
|
||||
This is a link to http://example.com.
|
||||
This is a link containing http://example.com/something?with,commas,in,url, but not at end
|
||||
This is a question about a link http://example.com?
|
||||
|
||||
#### These links should auto-link to the specified location:
|
||||
|
||||
[example link](example.com) links to `http://example.com`
|
||||
[example.com](example.com) links to `http://example.com`
|
||||
[example.com/other](example.com) links to `http://example.com`
|
||||
[example.com/other_link](example.com/example) links to `http://example.com/example`
|
||||
www.example.com links to `http://www.example.com`
|
||||
https://example.com links to `https://example.com` and not `http://example.com`
|
||||
https://en.wikipedia.org/wiki/🐬 links to the Wikipedia article on dolphins
|
||||
https://en.wikipedia.org/wiki/URLs#Syntax links to the Syntax section of the Wikipedia article on URLs
|
||||
test@example.com links to `mailto:test@example.com`
|
||||
[email link](mailto:test@example.com) links to `mailto:test@example.com` and not `http://mailto:test@example.com`
|
||||
[other link](ts3server://example.com) links to `ts3server://example.com` and not `http://ts3server://example.com`
|
||||
test_underscore@example.com links to `mailto:test_underscore@example.com`
|
||||
<test@example.com> with angle brackets links to `mailto:test@example.com` and not `http://mailto:test@example.com`
|
||||
[link with spaces](example.com/ spaces in the url) links to either `http://example.com/ spaces in the url` or `http://example.com/%20spaces%20in%20the%20url`
|
||||
|
||||
#### These links should have tooltips when you hover over them
|
||||
[link](example.com "catch phrase!") should have the tooltip `catch phrase!`
|
||||
[link](example.com "title with "quotes"") should have the tooltip `title with "quotes"`
|
||||
[link with spaces](example.com/ spaces in the url "and a title") should have the tooltip `and a title`
|
||||