owncloud / files_primary_s3

πŸ“¦ S3 compatible Storage
GNU General Public License v2.0
16 stars 5 forks source link

1.0.0 Testplan #61

Closed patrickjahns closed 6 years ago

patrickjahns commented 6 years ago

Automated Test Suites

Smashbox Results

Manual QA Sanity Check

Large file handling

Upload large files

Handling of trashbin/version of a large file

handling large folders

1) clone core repository - run make - sync via syncclient

share folder uploaded in 1)

Test with other apps

primarily relevant

Other apps

ownclouders commented 6 years ago

GitMate.io thinks the contributor most likely able to help you is @DeepDiver1975.

Possibly related issues are https://github.com/owncloud/files_primary_s3/issues/60 (1.0.0 release checklist), and https://github.com/owncloud/files_primary_s3/pull/35 (Ready for 10.1).

patrickjahns commented 6 years ago

activity app

summary

Everything tested works as expected - no strange behavior

tests performed

Test Case Expected Result Result Related Comment
CLI commands
Enable Activity app via CLI using occ app:enable activity The apps gets enabled β˜‘οΈ
Disable Activity app via CLI using occ app:disable activity The apps gets disabled β˜‘οΈ
All activities section
Check that all activities done in this Testplan are shown in this section β˜‘οΈ
Activities by you section
Check that all activities done with my user in this Testplan are shown in this section β˜‘οΈ
Activities by others section
Check that all activities done dealing with my user by other users in this Testplan are shown in this section β˜‘οΈ
An LDAP user shares a file with my user Check that LDAP username is shown properly in this section β˜‘οΈ
An LDAP user edits a file shared with my user Check that LDAP username is shown properly in this section β˜‘οΈ
Favorites section
Make favorite a file Check that the notification is shown in activity section and in the sidebar N/A https://github.com/owncloud/activity/issues/622
Make favorite a folder Check that the notification is shown in activity section and in the sidebar N/A https://github.com/owncloud/activity/issues/622
Comments
Make a comment in a file Check that the notification is shown in activity section and in the sidebar β˜‘οΈ
Make a comment in a folder Check that the notification is shown in activity section and in the sidebar β˜‘οΈ
Shares section
Share a file/folder Check that the notification is shown in activity section and in the sidebar β˜‘οΈ
Share a file/folder with a user of other oC server Check that the notification is shown in activity section and in the sidebar ❌ https://github.com/owncloud/activity/issues/623
Share a file/folder via link Check that the notification is shown in activity section and in the sidebar β˜‘οΈ
Receive a share for another user Check that the notification is shown in activity section and in the sidebar β˜‘οΈ
Receive a share for another user of other oC server Check that the notification is shown in activity section and in the sidebar β˜‘οΈ https://github.com/owncloud/activity/issues/596
Receive a file/folder via link adding to your owncloud Check that the notification is shown in activity section and in the sidebar ❌
Settings section mail
Check a new file or folder has been deleted mail notification and create a file β˜‘οΈ
Check a file or folder has been shared mail notification and share a folder β˜‘οΈ
davitol commented 6 years ago

theme-enterprise app

summary

Everything tested works as expected - no strange behavior

Test Case Expected Result Result Firefox Result Safari Result Chrome Related Comment
CLI commands
Enable theme-enterprise app via CLI using occ app:enable theme-enterprise The apps gets enabled β˜‘οΈ
Disable theme-enterprise app via CLI using occ app:disable theme-enterprise The apps gets disabled β˜‘οΈ
Open login page, and login. The theme background is shown and the user can login without problems. β˜‘οΈ β˜‘οΈ β˜‘οΈ
The top bar appears correctly in the files and admin page. No visualization problems. β˜‘οΈ β˜‘οΈ β˜‘οΈ
Menus can be opened and they are well positioned. No visualization problems. β˜‘οΈ β˜‘οΈ β˜‘οΈ
Public share a link. Open it without being logged in. The theme is the expected one. β˜‘οΈ β˜‘οΈ β˜‘οΈ
davitol commented 6 years ago

'Guest App' Test Plan

Testing functionality

Test Case Expected Result Result Related Comment
CLI commands
Enable Guest app via CLI using occ app:enable guests The apps is enabled β˜‘οΈ
Disable Guest app via CLI using occ app:disable guests The apps is disabled β˜‘οΈ
Add Guest User in sharetabview
Create a guest user via email β˜‘οΈ
Try to create a guest user via email sharing from another guest user Guest User should not be able to create another Guest ❌ https://github.com/owncloud/guests/issues/114
Create a guest user via email sharing from an LDAP user β˜‘οΈ
Try to create a guest user via email when a server email is not set or it is invalid An error message should be shown N/A If there is no email set, create guest user option is not offered in the sidebar
Try to create a guest user via email with an invalid email format An error message should be shown N/A No email format validation is done
Try to create a guest user via email with an already used email Guest option is not shown. Only federate and the username that has that mail are shown as option for sharing β˜‘οΈ
Try to create a guest user via email already registered by email A warning about the token is invalid should be shown β˜‘οΈ
Create a guest user via email using a password that fits password policy Check that the user receives the email and can register into oC β˜‘οΈ
Create a guest user via email using a password that doesn't fit password policy Check that the user receives the email and cannot register into oC. A warning related to password policy should be shown β˜‘οΈ
Users Menu
Delete a guest user in user's menu The user is deleted and no longer available in oC. Check that user disappears from sharetabviews ❌
Try to create a guest user in users menu adding it to the guest_group The user should not be created. A warning should be shown β˜‘οΈ Current behavior. The user is created without group, so it is not added to guest group
Change the guest user's password in users menu The new password is set for the guest user β˜‘οΈ https://github.com/owncloud/guests/issues/174
Guest User account
Log in the guest user account Check that the shared file/folder appears with the right permissions β˜‘οΈ
In personal page, change users email. Then as admin try to create a new guest user with the old mail Check that the mail which was used for the register is kept β˜‘οΈ
Settings page
Change Guest Group name The group name for guest is changed. Check this change in Users Page and the shares are kept β˜‘οΈ
Set Guest Group name as empty A warning error should be shown and the previous name should be kept β˜‘οΈ
Limit guest access to an app whitelist checked, modify the list and save Check that only apps listed are available for guests users β˜‘οΈ
WebUI and browsers
Check that guests menu in sharing section works fine using FireFox as browser β˜‘οΈ

Mean scenarios with Guest app

davitol commented 6 years ago

'WorkFlow App' Test Plan

Testing functionality

Test Case Expected Result Result Related Comment
Automatic tagging
Create a new autotagging rule, IP Range (IPv4). Upload a file matching the rule. Upload a file not matching the rule. Tag is assigned automatically to the first file and not to the second. :construction:
Create a new autotagging rule, IP Range (IPv6). Upload a file matching the rule. Upload a file not matching the rule. Tag is assigned automatically to the first file and not to the second. :construction:
Create a new autotagging rule, Device type. Upload a file matching the rule. Upload a file not matching the rule. Tag is assigned automatically to the first file and not to the second. β˜‘οΈ
Create a new autotagging rule, File size. Upload a file matching the rule. Upload a file not matching the rule. Tag is assigned automatically to the first file and not to the second. β˜‘οΈ
Create a new autotagging rule, File mimetype. Upload a file matching the rule. Upload a file not matching the rule. Tag is assigned automatically to the first file and not to the second. β˜‘οΈ
Create a new autotagging rule, Request time. Upload a file matching the rule. Upload a file not matching the rule. Tag is assigned automatically to the first file and not to the second. β˜‘οΈ
Create a new autotagging rule, Request type. Upload a file matching the rule. Upload a file not matching the rule. Tag is assigned automatically to the first file and not to the second. β˜‘οΈ
Create a new autotagging rule, Request URL. Upload a file matching the rule. Upload a file not matching the rule. Tag is assigned automatically to the first file and not to the second. :construction:
Create a new autotagging rule, System file tag. Upload a file matching the rule. Upload a file not matching the rule. Tag is assigned automatically to the first file and not to the second. β˜‘οΈ
Create a new autotagging rule, User agent. Upload a file matching the rule. Upload a file not matching the rule. Tag is assigned automatically to the first file and not to the second. β˜‘οΈ
Create a new autotagging rule, User group. Upload a file matching the rule. Upload a file not matching the rule. Tag is assigned automatically to the first file and not to the second. β˜‘οΈ
Mount a group of rules at your choice and check that several at the same time can apply. Upload a file which matches only one rule and upload one file which matches both rules. Tag is assigned only if both rules apply. β˜‘οΈ
Retention periods
Having several files shared from admin to regular users tagged with tag "ERASEME" invisible by regular users, add a retention period of 15 days. Run cron.php or tweak the date of your virtual machine to be after 15 days. All files with tag "ERASEME" are deleted. β˜‘οΈ
Having several files tagged as "Expire" and "Keep", add a retention period of 1 day for "Expire" and a retention period of 1 year for "Keep". Run cron.php or tweak the date of your virtual machine to be after 2 days. All files with tag "Expire" are deleted. β˜‘οΈ
Check that all automatically deleted files go to the trashbin and can be recovered. β˜‘οΈ
Having several files in a global mount external storage, as admin, tag them with "ERASEME" not-assignable by regular users, add a retention period of 15 days. Run cron.php or tweak the date of your virtual machine to be after 15 days. All files with tag "ERASEME" are deleted. β˜‘οΈ
Check that the entire menu can be used in Internet Explorer 11. β˜‘οΈ
Check that all the entire menu can be used in Safari. β˜‘οΈ
Check that all the entire menu can be used in Chrome. β˜‘οΈ
Check that all the entire menu can be used in Firefox. β˜‘οΈ
Check that all the entire menu can be used in Edge. :construction:
Disable system tags (collaborative tags) app. Try to add a tag using tag manager. App can be still used. β˜‘οΈ
Convert file to pdf plugin
Enable workflow plugin app to convert files to pdf No problems found. :construction:
Set a condition to convert every file uploaded from .ods to .pdf . Upload some odt files. Upload some doc files. Odt Files are converted to pdf. Doc files aren't. :construction:

Mean scenarios with File Firewall

davitol commented 6 years ago

Firewall

Server: oC stable10

Clients: webUI, android

Setup

  1. User regularuser exists
  2. regularuser is a member of group abc1
  3. regularuser has files from firewall/tests/ui/skeleton
  4. Use a browser on Linux (or adjust User Agent tests to match the OS/browser in use)
  5. Open 2 browsers, one logged in as admin and one logged in as regularuser
  6. Use the admin browser to manage the firewall rules
  7. Use the regularuser browser to test uploads, downloads and user actions

File upload size tests are listed for both the webUI and desktop client in order to exercise code paths that may have various versions of file chunking (or not) in use by those commonly-used client access interfaces.

Test Case Steps Expected result Result Related Comment
Regular Expression is mimetype upload 1. Input rule regular expression "text" "is" "File mimetype upload" and save
2. Try to upload a ".txt" file
File upload is denied β˜‘οΈ
Regular Expression is not mimetype upload 1. Input rule regular expression "text" "is not" "File mimetype upload" and save
2. Try to upload a ".txt" file
File upload succeeds β˜‘οΈ
Regular Expression is IP Range (IPv4) 1. Input rule regular expression "" (e.g. "127" when running on localhost) "is" "IP Range (IPv4)" and save
2. Try to upload a ".txt" file
File upload is denied :gear:
Regular Expression is not IP Range (IPv4) 1. Input rule regular expression "" (e.g. "127" when running on localhost) "is not" "IP Range (IPv4)" and save
2. Try to upload a ".txt" file
File upload succeeds :gear:
Regular Expression is IP Range (IPv6) 1. Input rule regular expression "1" "is" "IP Range (IPv6)" and save
2. Try to upload a ".txt" file
File upload is denied :gear:
Regular Expression is not IP Range (IPv6) 1. Input rule regular expression "1" "is not" "IP Range (IPv6)" and save
2. Try to upload a ".txt" file
File upload succeeds :gear:
Regular Expression is Request URL 1. Input rule regular expression "lorem" "is" "Request URL" and save
2. Try to download "lorem.txt"
File download is denied β˜‘οΈ
Regular Expression is not Request URL 1. Input rule regular expression "lorem" "is not" "Request URL" and save
2. Try to download "lorem.txt"
File download succeeds β˜‘οΈ
Regular Expression is User Agent 1. Input rule regular expression "Linux" "is" "User Agent" and save
2. Try to download "lorem.txt"
File download is denied β˜‘οΈ
Regular Expression is not User Agent 1. Input rule regular expression "Linux" "is not" "User Agent" and save
2. Try to download "lorem.txt"
File download succeeds β˜‘οΈ
Regular Expression is User Group 1. Input rule regular expression "[a-z]{3}\d" "is" "User Group" and save
2. Try to download "lorem.txt"
File download is denied β˜‘οΈ
Regular Expression is not User Group 1. Input rule regular expression "[a-z]{3}\d" "is not" "User Group" and save
2. Try to download "lorem.txt"
File download succeeds β˜‘οΈ
File MimeType Upload is 1. Input rule "File mimetype upload" "is" "text/plain" and save
2. Try to upload a ".txt" file
File upload is denied β˜‘οΈ

Mean scenarios with File Firewall

davitol commented 6 years ago

File antivirus Test Plan

Installing the app

Test Case Expected Result Result Related Comment
Enable the app in the WebGUI No problems found. β˜‘οΈ
Disable and enable the app using CLI. No problems found. β˜‘οΈ

Input field validation

Test Case Expected Result Result Related Comment
Enter an invalid hostname e.g. 'localhost%&$#+~' and save the antivirus settings saving is rejected β˜‘
Enter a negative number as "Port" and save the antivirus settings saving is rejected β˜‘
Enter a floating point number as "Port" and save the antivirus settings saving is rejected β˜‘
Enter "0" as "Port" and save the antivirus settings saving is rejected β˜‘
Enter a non numerical string as "Port" and save the antivirus settings saving is rejected β˜‘
Enter a negative number as "Stream Length" and save the antivirus settings saving is rejected β˜‘
Enter a floating point number as "Stream Length" and save the antivirus settings saving is rejected β˜‘
Enter a floating point number as "Stream Length" and save the antivirus settings saving is rejected β˜‘
Enter a non numerical string as "Stream Length" and save the antivirus settings saving is rejected β˜‘
Enter "0" as "Stream Length" and save the antivirus settings saving is rejected β˜‘
Enter a negative number, less than -1 as "File size limit" and save the antivirus settings saving is rejected β˜‘
Enter a floating point number as "File size limit" and save the antivirus settings saving is rejected β˜‘
Enter a non numerical string as "File size limit" and save the antivirus settings saving is rejected β˜‘
Enter "0" as "File size limit" and save the antivirus settings saving is rejected 🚧

clamAV executable mode upload

  1. setup the file antivirus app to use clamAV in "Executable" mode
  2. upload eicar.com, eicar_com.zip and eicarcom2.zip from http://www.eicar.org/85-0-Download.html via all available endpoints. (See "Tips how to test different endpoints with curl")

None of these uploads should be possible.

upload test ↓ Testfileβ†’ eicar.com eicar_com.zip eicarcom2.zip
new dav path without chunking β˜‘ β˜‘ β˜‘
new dav path with chunking β˜‘ β˜‘ β˜‘
public upload 🚧 🚧 🚧
files_texteditor app 🚧 - -

clamAV daemon mode upload

  1. setup the file antivirus app to use clamAV in "Daemon" mode
  2. upload eicar.com, eicar_com.zip and eicarcom2.zip from http://www.eicar.org/85-0-Download.html via all available endpoints. (See "Tips how to test different endpoints with curl")

None of these uploads should be possible.

upload test ↓ Testfileβ†’ eicar.com eicar_com.zip eicarcom2.zip
new dav path without chunking β˜‘ β˜‘ β˜‘
new dav path with chunking β˜‘ β˜‘ β˜‘
public upload 🚧 🚧 🚧
files_texteditor app 🚧 - -

clamAV daemon (socket) mode upload

  1. setup the file antivirus app to use clamAV in "Daemon (Socket)" mode
  2. upload eicar.com, eicar_com.zip and eicarcom2.zip from http://www.eicar.org/85-0-Download.html via all available endpoints. (See "Tips how to test different endpoints with curl")

None of these uploads should be possible.

upload test ↓ Testfileβ†’ eicar.com eicar_com.zip eicarcom2.zip
old dav path without chunking 🚧 🚧 🚧
old dav path with chunking 🚧 🚧 🚧
new dav path without chunking 🚧 🚧 🚧
new dav path with chunking 🚧 🚧 🚧
public upload β˜‘οΈ β˜‘οΈ β˜‘οΈ
files_texteditor app β˜‘οΈ - -

Filesize limit

set "File size limit" to 100 bytes uploads of eicar.com (68byte) should be blocked uploads of eicar_com.zip (184byte) should pass

upload test ↓ Testfileβ†’ eicar.com
blocked
eicar_com.zip
passing
new dav path without chunking 🚧 🚧
new dav path with chunking 🚧 🚧
public upload 🚧 🚧

background scan

run these steps between every test case in this chapter:

  1. disable antivirus app
  2. upload eicar.com, eicar_com.zip and eicarcom2.zip from http://www.eicar.org/85-0-Download.html to the owncloud system under test
  3. enable antivirus app
  4. set "When infected files were found during a background scan" to "logSetting"
  5. set "File size limit" to "fileSizeLimit"
  6. wait 15 min (or change $this->setInterval(60 * 15); in lib/cron/task.php to a smaller number)
  7. trigger cron job by running sudo -u www-data php cron.php
  8. check logfile
  9. check files
Test Case Expected Result Result Related Comment
logSetting = "Only log"
fileSizeLimit="-1"
1. eicar.com, eicar_com.zip and eicarcom2.zip are logged as infected
2. all files still exist on the system
β˜‘οΈ
logSetting = "Only log"
fileSizeLimit="100"
1. only eicar.com is logged as infected
2. all files still exist on the system
β˜‘οΈ
logSetting = "Delete file"
fileSizeLimit="-1"
1. eicar.com, eicar_com.zip and eicarcom2.zip are logged as infected and deleted
2. eicar.com, eicar_com.zip and eicarcom2.zip disappear from the system
β˜‘οΈ
logSetting = "Delete file"
fileSizeLimit="100"
1. only eicar.com is logged as infected and deleted
2. only eicar.com disappears from the system
β˜‘οΈ

Mean scenarios with File Antivirus

davitol commented 6 years ago

We need to re-test (sanity test) it later with https://github.com/owncloud/core/pull/31659 it fixes a regression because of objectstore changes

davitol commented 6 years ago

Customgroups Test Plan

Test Case Expected Result Result Related Comment
Enable the app. No problems found. β˜‘οΈ
Disable and enable the app using CLI. No problems found. β˜‘οΈ
Create a custom group. Custom group is created correctly. β˜‘οΈ
Create an already existing custom group. The group cannot be created again. β˜‘οΈ
Delete a custom group. The group is removed correctly. β˜‘οΈ
Rename a custom group. The group is renamed correctly. β˜‘οΈ
As a non-admin member try to rename its custom group. He cannot rename its custom group :gear:
Get members of a group. Members are retrieved correctly. β˜‘οΈ
Check that the creator of a custom group becames admin automatically. No problems found. :gear:
As a creator of a custom group add members. Members are added correctly. β˜‘οΈ
As non-admin member of a custom group try to add members. Non-admin member cannot add members. β˜‘οΈ
As non-member of a custom group try to list its members. Non-admin member cannot list members. β˜‘οΈ
As custom group member try to list members. Custom group member can list members. β˜‘οΈ
As non-admin member of a custom group try to delete a custom group A non-admin member of a custom group cannot delete a custom group. β˜‘οΈ
As a creator of a custom group try to remove members. Creator of a custom group can remove members. β˜‘οΈ
As a non-admin member of a custom group try to remove members A non-admin member of a custom group cannot remove members. β˜‘οΈ
Not having more admins on a custom group, as group owner try to remove yourself from the group Group owner cannot remove self if no other admin exists in the group. β˜‘οΈ
As member of a custom group leave the custom group. A member of a custom group can leave the custom group himself. :gear:
As a user check the groups you belong to. A user can list his groups. β˜‘οΈ
As owner of a group, try to change the role of a member of the group. Role is changed successfully. β˜‘οΈ
Create a custom group and let user 'member1' as admin. 'member1' is the new admin of the group. No problems. β˜‘οΈ
As superadmin of the server create a custom group. Superadmin can create custom groups. β˜‘οΈ
As superadmin add a user to a custom group. Superadmin can add a user to any custom group. β˜‘οΈ
As superadmin rename a custom group. Superadmin can rename any custom group. :gear:
As superadmin change role of a member of a group making him admin. Superadmin can change roles. β˜‘οΈ
As superadmin remove a member of a custom group. Superadmin can remove members. β˜‘οΈ
As superadmin try to list members of a custom group. Superadmin can list members. β˜‘οΈ
As member converted to group owner add members to group, remove members, change roles and list members. A member converted to group owner can do the same as group owner β˜‘οΈ
Having no other admin in a custom group, as group owner try to remove your own admin permissions. A group owner cannot remove his own admin permissions if there is no other owner in the group β˜‘οΈ
Check that a non-existing user cannot be added to a custom group β˜‘οΈ
Using frontend
Create a custom group. Custom group is created correctly. β˜‘οΈ
Create an already existing custom group. The group cannot be created again. A warning appears. β˜‘οΈ
Delete a custom group. The group is removed correctly. β˜‘οΈ
Rename a custom group. The group is renamed correctly. β˜‘οΈ
As a creator of a custom group add members. Members are added correctly. β˜‘οΈ
As regular user member of a custom group check the users in the custom groups. You can see the other members. β˜‘οΈ
As non-admin member of a custom group try to add members. Non-admin member cannot add members. There is no UI element to do it. β˜‘οΈ
davitol commented 6 years ago

Impersonate Test Plan

Test Case Expected Result Result Related Comment
Enable the app. No problems found. β˜‘οΈ
As admin create a group 'group1' add three members 'user1', 'user2', 'user3'. Make 'user1' group admin of 'group1'. Login as 'user1', go to the users view. Impersonate 'user2'. 'user1' can impersonate 'user2'. See his files. Behave like him. Like if he were logged in. β˜‘οΈ
Check that a user who is not group admin cannot impersonate anyone. β˜‘οΈ
As admin create a group 'group1' add four members 'user1', 'user2', 'user3' and 'admin' being admin user of the server. Make 'user1' group admin of 'group1'. Login as 'user1', go to the users view. Impersonate 'admin'. Super admin cannot be impersonated. β˜‘οΈ
When impersonating a user, a warning appears adverting that you have logged as another user. a warning appears and disappears after a while. β˜‘οΈ
Check that impersonate options appears in the correct settings panel. β˜‘οΈ
davitol commented 6 years ago

6GB via webui -> verify checksum afterward

With current compose infrastructure, the port for s3 is currently not exposed. So we can consider to deploy with the port exposed in the future if we consider it worthy (to be discussed)

davitol commented 6 years ago

QA was finished, let's close the ticket.