Add apiBasic suite with default accounts_hash_difficulty

This commit is contained in:
Phil Davis
2020-11-12 11:57:26 +05:45
parent b10f0359fc
commit d9b7372f79
6 changed files with 117 additions and 16 deletions

View File

@@ -96,8 +96,10 @@ def getCoreApiTestPipelineNames():
def getDependsOnAllTestPipelines(ctx):
dependencies = getTestSuiteNames() + [
'upload-coverage',
'localApiTests-owncloud-storage',
'localApiTests-ocis-storage',
'localApiTests-apiOcisSpecific-owncloud',
'localApiTests-apiOcisSpecific-ocis',
'localApiTests-apiBasic-owncloud',
'localApiTests-apiBasic-ocis',
] + getCoreApiTestPipelineNames() + getUITestSuiteNames() + ['accountsUITests']
return dependencies
@@ -148,8 +150,10 @@ def testPipelines(ctx):
pipelines += [
uploadCoverage(ctx),
localApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit'], 'owncloud'),
localApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit'], 'ocis')
localApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit'], 'owncloud', 'apiOcisSpecific'),
localApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit'], 'ocis', 'apiOcisSpecific'),
localApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit'], 'owncloud', 'apiBasic', 'default'),
localApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit'], 'ocis', 'apiBasic', 'default')
]
for runPart in range(1, config['apiTests']['numberOfParts'] + 1):
@@ -336,11 +340,11 @@ def uploadCoverage(ctx):
'depends_on': getTestSuiteNames(),
}
def localApiTests(ctx, coreBranch = 'master', coreCommit = '', storage = 'owncloud'):
def localApiTests(ctx, coreBranch = 'master', coreCommit = '', storage = 'owncloud', suite = 'apiOcisSpecific', accounts_hash_difficulty = 4):
return {
'kind': 'pipeline',
'type': 'docker',
'name': 'localApiTests-%s-storage' % (storage),
'name': 'localApiTests-%s-%s' % (suite, storage),
'platform': {
'os': 'linux',
'arch': 'amd64',
@@ -348,10 +352,10 @@ def localApiTests(ctx, coreBranch = 'master', coreCommit = '', storage = 'ownclo
'steps':
generate('ocis') +
build() +
ocisServer(storage) +
ocisServer(storage, accounts_hash_difficulty) +
cloneCoreRepos(coreBranch, coreCommit) + [
{
'name': 'localApiTests-%s-storage' % (storage),
'name': 'localApiTests-%s-%s' % (suite, storage),
'image': 'owncloudci/php:7.4',
'pull': 'always',
'environment' : {
@@ -361,6 +365,7 @@ def localApiTests(ctx, coreBranch = 'master', coreCommit = '', storage = 'ownclo
'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton',
'OCIS_SKELETON_STRATEGY': '%s' % ('copy' if storage == 'owncloud' else 'upload'),
'TEST_OCIS':'true',
'BEHAT_SUITE': suite,
'BEHAT_FILTER_TAGS': '~@skipOnOcis-%s-Storage' % ('OC' if storage == 'owncloud' else 'OCIS'),
'PATH_TO_CORE': '/srv/app/testrunner',
},
@@ -391,7 +396,7 @@ def localApiTests(ctx, coreBranch = 'master', coreCommit = '', storage = 'ownclo
},
}
def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, number_of_parts = 1, storage = 'owncloud'):
def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, number_of_parts = 1, storage = 'owncloud', accounts_hash_difficulty = 4):
return {
'kind': 'pipeline',
'type': 'docker',
@@ -403,7 +408,7 @@ def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, n
'steps':
generate('ocis') +
build() +
ocisServer(storage) +
ocisServer(storage, accounts_hash_difficulty) +
cloneCoreRepos(coreBranch, coreCommit) + [
{
'name': 'oC10ApiTests-%s-storage-%s' % (storage, part_number),
@@ -452,7 +457,7 @@ def uiTests(ctx, phoenixBranch, phoenixCommit):
suiteNames = getUITestSuiteNames()
return [uiTestPipeline(suiteName, phoenixBranch, phoenixCommit) for suiteName in suiteNames]
def uiTestPipeline(suiteName, phoenixBranch = 'master', phoenixCommit = '', storage = 'owncloud'):
def uiTestPipeline(suiteName, phoenixBranch = 'master', phoenixCommit = '', storage = 'owncloud', accounts_hash_difficulty = 4):
suites = getUITestSuites()
paths = ""
for path in suites[suiteName]:
@@ -469,7 +474,7 @@ def uiTestPipeline(suiteName, phoenixBranch = 'master', phoenixCommit = '', stor
'steps':
generate('ocis') +
build() +
ocisServer(storage) + [
ocisServer(storage, accounts_hash_difficulty) + [
{
'name': 'webUITests',
'image': 'owncloudci/nodejs:11',
@@ -529,7 +534,7 @@ def uiTestPipeline(suiteName, phoenixBranch = 'master', phoenixCommit = '', stor
},
}
def accountsUITests(ctx, phoenixBranch, phoenixCommit, storage = 'owncloud'):
def accountsUITests(ctx, phoenixBranch, phoenixCommit, storage = 'owncloud', accounts_hash_difficulty = 4):
return {
'kind': 'pipeline',
'type': 'docker',
@@ -541,7 +546,7 @@ def accountsUITests(ctx, phoenixBranch, phoenixCommit, storage = 'owncloud'):
'steps':
generate('ocis') +
build() +
ocisServer(storage) + [
ocisServer(storage, accounts_hash_difficulty) + [
{
'name': 'WebUIAcceptanceTests',
'image': 'owncloudci/nodejs:11',

View File

@@ -3,9 +3,9 @@ default:
'': '%paths.base%/../features/bootstrap'
suites:
apiOcisSpecific:
apiBasic:
paths:
- '%paths.base%/../features/apiOcisSpecific'
- '%paths.base%/../features/apiBasic'
context: &common_ldap_suite_context
parameters:
ldapAdminPassword: admin
@@ -29,6 +29,22 @@ default:
- TrashbinContext:
- WebDavPropertiesContext:
apiOcisSpecific:
paths:
- '%paths.base%/../features/apiOcisSpecific'
context: *common_ldap_suite_context
contexts:
- RevaContext:
- OccContext:
- FeatureContext: *common_feature_context_params
- CapabilitiesContext:
- ChecksumContext:
- FavoritesContext:
- FilesVersionsContext:
- PublicWebDavContext:
- TrashbinContext:
- WebDavPropertiesContext:
extensions:
jarnaiz\JUnitFormatter\JUnitFormatterExtension:
filename: report.xml

View File

@@ -0,0 +1,18 @@
@api @provisioning_api-app-required @skipOnLDAP
Feature: add user
As an admin
I want to be able to add users
So that I can give people controlled individual access to resources on the ownCloud server
Scenario Outline: admin creates a user
Given using OCS API version "<ocs_api_version>"
And user "brand-new-user" has been deleted
When the administrator sends a user creation request for user "brand-new-user" password "%alt1%" using the provisioning API
Then the OCS status code should be "<ocs_status_code>"
And the HTTP status code should be "200"
And user "brand-new-user" should exist
And user "brand-new-user" should be able to access a skeleton file
Examples:
| ocs_api_version | ocs_status_code |
| 1 | 100 |
| 2 | 200 |

View File

@@ -0,0 +1,18 @@
@api @files_sharing-app-required
Feature: sharing
Scenario Outline: Creating a share of a file with a user
Given the administrator has set the default folder for received shares to "Shares"
And auto-accept shares has been disabled
And using OCS API version "<ocs_api_version>"
And user "Alice" has been created with default attributes and without skeleton files
And user "Alice" has uploaded file with content "ownCloud test text file 0" to "/textfile0.txt"
And user "Brian" has been created with default attributes and without skeleton files
When user "Alice" shares file "textfile0.txt" with user "Brian" using the sharing API
And user "Brian" accepts share "/textfile0.txt" offered by user "Alice" using the sharing API
Then the HTTP status code should be "200"
And the content of file "/Shares/textfile0.txt" for user "Brian" should be "ownCloud test text file 0"
Examples:
| ocs_api_version |
| 1 |
| 2 |

View File

@@ -0,0 +1,18 @@
@api
Feature: upload file
As a user
I want to be able to upload files
So that I can store and share files between multiple client systems
Scenario Outline: upload a file and check download content
Given using OCS API version "<ocs_api_version>"
And user "Alice" has been created with default attributes and without skeleton files
And using <dav_version> DAV path
When user "Alice" uploads file with content "uploaded content" to "/upload.txt" using the WebDAV API
Then the content of file "/upload.txt" for user "Alice" should be "uploaded content"
Examples:
| ocs_api_version | dav_version |
| 1 | old |
| 1 | new |
| 2 | old |
| 2 | new |

View File

@@ -0,0 +1,26 @@
@api
Feature: attempt to PUT files with invalid password
Background:
Given user "Alice" has been created with default attributes and without skeleton files
And user "Alice" has created folder "/PARENT"
Scenario: send PUT requests to webDav endpoints as normal user with wrong password
When user "Alice" requests these endpoints with "PUT" including body "doesnotmatter" using password "invalid" about user "Alice"
| endpoint |
| /remote.php/webdav/textfile0.txt |
| /remote.php/dav/files/%username%/textfile0.txt |
| /remote.php/webdav/PARENT |
| /remote.php/dav/files/%username%/PARENT |
| /remote.php/dav/files/%username%/PARENT/parent.txt |
Then the HTTP status code of responses on all endpoints should be "401"
Scenario: send PUT requests to webDav endpoints as normal user with no password
When user "Alice" requests these endpoints with "PUT" including body "doesnotmatter" using password "" about user "Alice"
| endpoint |
| /remote.php/webdav/textfile0.txt |
| /remote.php/dav/files/%username%/textfile0.txt |
| /remote.php/webdav/PARENT |
| /remote.php/dav/files/%username%/PARENT |
| /remote.php/dav/files/%username%/PARENT/parent.txt |
Then the HTTP status code of responses on all endpoints should be "401"