* WIP * adding initial creategroup endpoint * fetching by group source * fixing startup error * updating create endpoint to take an array of user_ids, this will allow us to create the group with one request * adding delete group endpoint and appropriate test * adding source param for getGroups * adding add members and delete members endpoints * locking down crud endpoints to only be allowed for custom groups * user search stuff * allowing remoteid be null by changing field to pointer * code cleanup and store level tests * adding new tests and removing unused endpoint * resolving conflicts * Adds authz check for group. * Adds authz checks to groups APIs. * Updated create group authz tests. * Updates delete group tests. * Tests create group. * Adds some tests and validations. * adding new parameter so I can get users not in a group * Fixed all lint warnings. * Fix type. * fixing search users not in group * Fixes some lint errors. * Moves entry in JSON array. * Fixed SQL query. * Fixes permission migration test. * Fixes migration test. * Fixes some group store tests. * Fix test. * Fix test. * Revert lint change. * Migrated CreateWithUserIds to sqlx. * Adds tests for GetMember; migrates implementation to sqlx. * Tests GetNonMemberUsersPage and hanles wrong group id. * Fixes test. * Switches GetMaster to GetMasterX. * Switches GetReplica to GetReplicaX. * Fixes logic. * Fixes shadow declaration. * Adds include_member_count to get group API endpoint. * Adds filter_has_member param to getGroups. * Fixes. * Removes array of group sources. * fixing error * Testing reverting CreateWithUserIds back to gorp. * Added websocket event for CreateGroupWithUserIds. * Changed a few response status codes. Switched to correct permission. * Added member count to ws payload for group when updating or creating. * Adds feature flag checks for custom groups. * Added middleware function to require license. Added config to disable custom groups. * Change for function signature change of executePossiblyEmptyQuery. * Lint fixes. * Adds telemetry none comment. * Adds translations. * Migrated to sqlx. * Temp. removal of translation. * Fixed typo. * Added an intermediary model to query with a field that is now ignored by sqlx on read queries. * Re-used existing store struct. * Inludes member count. * Fix for merge error.' * Require license for group endpoints. * Updates translations. * Fix shadow declaration. * Renames permissions. Switches to new method to retrieve remoteid. * Added WS events for upsert and delete member(s). * Added new store error type ErrUniqueConstraint. * Added EnableCustonGroups to the client config. * Sanitized some user records. * Added parameter to include_total_count for listing groups. * Added translations. * adding deleteAt field to getByUsers query * Revert sanitize. * Added uniqueness constraint error to UpdateGroup. * Removed the FutureFeatures flag so that the feature is not enabled on old Enterprise licenses. * Renamed function. * Updates authz check for user search related to groups. * Removed debug statement. * Removed unused app method. * Added telemetry for enable_custom_groups. * Returns early from nil license. * Updates test. * Returned early to avoid nesting in (*SqlGroupStore).checkUserExist. Switched to reading from replica in (*SqlGroupStore).GetMember. Handled JSON marshal error in (*Client4).UpsertGroupMembers * Switched to SanitizeProfile. * Switched to model.NewInt. * Switched from status NotImplemented to Forbidden for missing license. * Removed deactivated users from 'exists' set. * Revert gotool update. * Ignored lint error that I think is invalid. * Added the approprate access tag for disabling custom groups. * Revert change to response status. * Fixed refactor mistake. * Limited the group member WS events to individual users. * Removed WS event of deleted groups. * Updated license check for searchUsers endpoint. * Switched from license feature to license sku. * Update app/group.go Co-authored-by: Claudio Costa <cstcld91@gmail.com> * Update app/group.go Co-authored-by: Claudio Costa <cstcld91@gmail.com> * Remove linter ignore comment. * Added function to create sku-specific license. * Fixed typo. Removed comment. * Fixed for wrong type. * Added missing param to client. Removed unnecessary props setting. Added test for retrieving groups by source. * Updated some tests now that we're validating group membership not created for deactivated user. * Fix for groups endpoint returning all group types by default. * Changes constant names. Adds migration for all users to manage custom group members. * Removes requirement for manage_system permission to filter user search by group. * Added migration mock. * Removes default permissions from custom_group_user role. * Fixes migration. * Fixes emoji migration test. * fixing issue with member counts * fixing search issue for deleted members Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.local> Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MBP.ht.home> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.fritz.box> Co-authored-by: Claudio Costa <cstcld91@gmail.com> |
||
|---|---|---|
| .. | ||
| 1x10000.png | ||
| 1x10000_expected_preview.jpeg | ||
| 1x10000_expected_thumb.jpeg | ||
| 10000x1.png | ||
| 10000x1_expected_preview.jpeg | ||
| 10000x1_expected_thumb.jpeg | ||
| channel-role-has-permission.csv | ||
| development-private-key.asc | ||
| development-public-key.asc | ||
| development-public-key.gpg | ||
| export_test.zip | ||
| Fake_Team_Import.rar | ||
| Fake_Team_Import.tar.gz | ||
| Fake_Team_Import.zip | ||
| fill_test_8bit_palette.png | ||
| fill_test_8bit_palette_out.png | ||
| fill_test_8bit_rgb.png | ||
| fill_test_8bit_rgb_out.png | ||
| fill_test_8bit_rgba.png | ||
| fill_test_8bit_rgba_out.png | ||
| fill_test_16bit_rgb.png | ||
| fill_test_16bit_rgb_out.png | ||
| fill_test_16bit_rgba.png | ||
| fill_test_16bit_rgba_out.png | ||
| fill_test_opaque.png | ||
| group-role-has-permission.csv | ||
| import_test.zip | ||
| orientation_test.jpeg | ||
| orientation_test_1.jpeg | ||
| orientation_test_1_expected_preview.jpeg | ||
| orientation_test_1_expected_thumb.jpeg | ||
| orientation_test_2.jpeg | ||
| orientation_test_2_expected_preview.jpeg | ||
| orientation_test_2_expected_thumb.jpeg | ||
| orientation_test_3.jpeg | ||
| orientation_test_3_expected_preview.jpeg | ||
| orientation_test_3_expected_thumb.jpeg | ||
| orientation_test_4.jpeg | ||
| orientation_test_4_expected_preview.jpeg | ||
| orientation_test_4_expected_thumb.jpeg | ||
| orientation_test_5.jpeg | ||
| orientation_test_5_expected_preview.jpeg | ||
| orientation_test_5_expected_thumb.jpeg | ||
| orientation_test_6.jpeg | ||
| orientation_test_6_expected_preview.jpeg | ||
| orientation_test_6_expected_thumb.jpeg | ||
| orientation_test_7.jpeg | ||
| orientation_test_7_expected_preview.jpeg | ||
| orientation_test_7_expected_thumb.jpeg | ||
| orientation_test_8.jpeg | ||
| orientation_test_8_expected_preview.jpeg | ||
| orientation_test_8_expected_thumb.jpeg | ||
| qa-data-graph.png | ||
| qa-data.ldif | ||
| README.md | ||
| sample-doc.doc | ||
| sample-doc.docx | ||
| sample-doc.odp | ||
| sample-doc.odt | ||
| sample-doc.pdf | ||
| sample-doc.pptx | ||
| sample-doc.rtf | ||
| slack-import-test-channels.json | ||
| slack-import-test-direct-messages.json | ||
| slack-import-test-group-direct-messages.json | ||
| slack-import-test-posts.json | ||
| slack-import-test-private-channels.json | ||
| slack-import-test-users.json | ||
| test-attachments.md | ||
| test-config.json | ||
| test-data-graph.png | ||
| test-data.ldif | ||
| test-emoticons1.md | ||
| test-emoticons2.md | ||
| test-emoticons3.md | ||
| test-emoticons4.md | ||
| test-emoticons5.md | ||
| test-emoticons6.md | ||
| test-hashtags.md | ||
| test-link-preview.md | ||
| test-links.md | ||
| test-markdown-basics.md | ||
| test-markdown-lists.md | ||
| test-mentions.md | ||
| test-public-key.plugin.gpg | ||
| test-search.md | ||
| test-slack-attachments.json | ||
| test-syntax-highlighting.md | ||
| test-tables.md | ||
| test.png | ||
| test.svg | ||
| test.tiff | ||
| test_expected_tiff_preview.jpeg | ||
| test_expected_tiff_thumb.jpeg | ||
| testarchive.zip | ||
| testgif.gif | ||
| testgif_expected_preview.jpg | ||
| testgif_expected_thumbnail.jpg | ||
| testjpg.jpg | ||
| testplugin.tar.gz | ||
| testplugin.tar.gz.asc | ||
| testplugin.tar.gz.sig | ||
| testplugin2.tar.gz | ||
| testplugin2.tar.gz.asc | ||
| testplugin2.tar.gz.sig | ||
| tls_test_cert.pem | ||
| tls_test_key.pem | ||
Testing Text Processing
The text processing tests located in the doc/developer/tests folder are designed for use with the /test url command. This command posts the raw contents of a specified .md file in the doc/developer/test folder into Mattermost.
Turning on /test
Access the System Console from the Main Menu. Under Service Settings make sure that Enable Testing is set to true, then click Save. You may also change this setting from config.json by setting ”EnableTesting”: true. Changing this setting requires a server restart to take effect.
Running the Tests
In the text input box in Mattermost, type: /test url [file-name-in-testing-folder].md. Some examples:
/test url test-emoticons.md
/test url test-links.md
Notes:
- If a test has prerequisites, make sure your Mattermost setup meets the requirements described at the top of the test file.
- 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 two test plugins: testplugin.tar.gz and testplugin2.tar.gz. These are use in some integration tests in the api4 package. Any changes to the plugin bundles require updating the corresponding signatures.
First, import the public and private development key:
$ gpg --import ./development-public-key.gpg
$ gpg --import ./development-private-key.asc
This has to be done only once.
Then update the signatures:
$ gpg -u F3FACE45E0DE642C8BD6A8E64C7C6562C192CC1F --verbose --personal-digest-preferences SHA256 --detach-sign testplugin.tar.gz
$ gpg -u F3FACE45E0DE642C8BD6A8E64C7C6562C192CC1F --verbose --personal-digest-preferences SHA256 --detach-sign --armor testplugin.tar.gz
$ gpg -u F3FACE45E0DE642C8BD6A8E64C7C6562C192CC1F --verbose --personal-digest-preferences SHA256 --detach-sign 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.