Skip to content

Commit

Permalink
[Github Action] Setup codeception and add test from core. (#39)
Browse files Browse the repository at this point in the history
* Add initial setup of codeception

* Add initial setup of codeception

* Add initial setup of codeception.

* Extract AssetController Test.

* Extract DataObjectPermissionsTest and do some renaming.

* Extract DataObjectPermissionsTest and do some renaming.

* Extract DocumentPermissionsTest.

* Extract GridHelperTest from core.
And some renaming.

* Update composer.json

Co-authored-by: Divesh Pahuja <divesh.pahuja@pimcore.com>

* Update .github/workflows/codeception.yml

Co-authored-by: Divesh Pahuja <divesh.pahuja@pimcore.com>

* Remove Notification Services.

* Change dependency to highest again.

* Replace JsonResponse

* Add dev dependencies

---------

Co-authored-by: Divesh Pahuja <divesh.pahuja@pimcore.com>
  • Loading branch information
martineiber and dvesh3 authored Apr 24, 2023
1 parent fed3293 commit 2f4f3b3
Show file tree
Hide file tree
Showing 25 changed files with 2,219 additions and 7 deletions.
5 changes: 5 additions & 0 deletions .github/ci/files/config/bundles.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?php

return [
'Pimcore\\Bundle\\AdminBundle\\PimcoreAdminBundle' => ['all' => true],
];
3 changes: 3 additions & 0 deletions .github/ci/files/config/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
imports:
- { resource: services.yaml }
- { resource: system.yaml }
62 changes: 62 additions & 0 deletions .github/ci/files/config/event_listeners.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
services:
_defaults:
autowire: true
autoconfigure: true

#
# SECURITY
#

Pimcore\Bundle\AdminBundle\EventListener\AdminSecurityListener: ~

Pimcore\Bundle\AdminBundle\EventListener\CsrfProtectionListener: ~

#
# EXCEPTION HANDLING
#

Pimcore\Bundle\AdminBundle\EventListener\AdminExceptionListener: ~

#
# GRID CONFIG CLEANUP
#

Pimcore\Bundle\AdminBundle\EventListener\GridConfigListener: ~

#
# IMPORT CONFIG CLEANUP
#

Pimcore\Bundle\AdminBundle\EventListener\ImportConfigListener: ~

#
# MISC
#

Pimcore\Bundle\AdminBundle\EventListener\AdminSessionBagListener: ~

Pimcore\Bundle\AdminBundle\EventListener\HttpCacheListener: ~

Pimcore\Bundle\AdminBundle\EventListener\CustomAdminEntryPointCheckListener:
arguments: ['%pimcore_admin.custom_admin_path_identifier%']

Pimcore\Bundle\AdminBundle\EventListener\UserPerspectiveListener:
calls:
- [setLogger, ['@logger']]
tags:
- { name: monolog.logger, channel: admin }

Pimcore\Bundle\AdminBundle\EventListener\UsageStatisticsListener:
calls:
- [setLogger, [ '@logger' ]]
tags:
- { name: monolog.logger, channel: admin_statistics }

Pimcore\Bundle\AdminBundle\EventListener\EnablePreviewTimeSliderListener: ~

#
# Workflows
#

Pimcore\Bundle\AdminBundle\EventListener\WorkflowManagementListener:
public: true # can be disabled
268 changes: 268 additions & 0 deletions .github/ci/files/config/export.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,268 @@
services:
_defaults:
autowire: true
autoconfigure: true

# resolvers and operator/value factories will be injected from compiler pass
# TODO refactor how the service is used and change to private. Currently it is
# used in a static method fetching the service from the container.
Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Service:
public: true

#TODO: BC Layer, remove with Pimcore 12
Pimcore\DataObject\GridColumnConfig\Service: '@Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Service'

#
# OPERATOR FACTORIES
#

pimcore.data_object.grid_column_config.operator.factory.anonymizer:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Anonymizer
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: Anonymizer }

pimcore.data_object.grid_column_config.operator.factory.any_getter:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\AnyGetter
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: AnyGetter }

pimcore.data_object.grid_column_config.operator.factory.arithmetic:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Arithmetic
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: Arithmetic }

pimcore.data_object.grid_column_config.operator.factory.asset_metadata_getter:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\AssetMetadataGetter
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: AssetMetadataGetter }

pimcore.data_object.grid_column_config.operator.factory.base64:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Base64
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: Base64 }

pimcore.data_object.grid_column_config.operator.factory.boolean:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Boolean
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: Boolean }

pimcore.data_object.grid_column_config.operator.factory.boolean_formatter:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\BooleanFormatter
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: BooleanFormatter }

pimcore.data_object.grid_column_config.operator.factory.case_converter:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\CaseConverter
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: CaseConverter }

pimcore.data_object.grid_column_config.operator.factory.char_counter:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\CharCounter
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: CharCounter }

pimcore.data_object.grid_column_config.operator.factory.concatenator:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Concatenator
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: Concatenator }

pimcore.data_object.grid_column_config.operator.factory.date_formatter:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\DateFormatter
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: DateFormatter }

pimcore.data_object.grid_column_config.operator.factory.element_counter:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\ElementCounter
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: ElementCounter }

pimcore.data_object.grid_column_config.operator.factory.field_collection_getter:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\FieldCollectionGetter
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: FieldCollectionGetter }

pimcore.data_object.grid_column_config.operator.factory.is_equal:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\IsEqual
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: IsEqual }

pimcore.data_object.grid_column_config.operator.factory.iterator:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Iterator
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: Iterator }

pimcore.data_object.grid_column_config.operator.factory.geopoint_renderer:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\GeopointRenderer
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: GeopointRenderer }

pimcore.data_object.grid_column_config.operator.factory.image_renderer:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\ImageRenderer
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: ImageRenderer }

pimcore.data_object.grid_column_config.operator.factory.hotspotimage_renderer:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\HotspotimageRenderer
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: HotspotimageRenderer }

pimcore.data_object.grid_column_config.operator.factory.json:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\JSON
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: JSON }

pimcore.data_object.grid_column_config.operator.factory.lf_expander:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\LFExpanderFactory
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: LFExpander }

pimcore.data_object.grid_column_config.operator.factory.locale_switcher:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\LocaleSwitcherFactory
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: LocaleSwitcher }

pimcore.data_object.grid_column_config.operator.factory.merge:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Merge
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: Merge }

pimcore.data_object.grid_column_config.operator.factory.object_field_getter:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\ObjectFieldGetter
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: ObjectFieldGetter }

pimcore.data_object.grid_column_config.operator.factory.php:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\PHP
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: PHP }

pimcore.data_object.grid_column_config.operator.factory.php_code:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\PHPCode
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: PHPCode }

pimcore.data_object.grid_column_config.operator.factory.property_getter:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\PropertyGetter
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: PropertyGetter }

pimcore.data_object.grid_column_config.operator.factory.required_by:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\RequiredBy
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: RequiredBy }

pimcore.data_object.grid_column_config.operator.factory.string_contains:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\StringContains
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: StringContains }

pimcore.data_object.grid_column_config.operator.factory.string_replace:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\StringReplace
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: StringReplace }

pimcore.data_object.grid_column_config.operator.factory.substring:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Substring
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: Substring }

pimcore.data_object.grid_column_config.operator.factory.text:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Text
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: Text }

pimcore.data_object.grid_column_config.operator.factory.translate_value:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\TranslateValueFactory
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: TranslateValue }

pimcore.data_object.grid_column_config.operator.factory.trimmer:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Trimmer
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: Trimmer }

pimcore.data_object.grid_column_config.operator.factory.alias:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\DefaultOperatorFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Alias
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: Alias }

pimcore.data_object.grid_column_config.operator.factory.workflowstate:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Operator\Factory\WorkflowStateFactory
tags:
- { name: pimcore.data_object.grid_column_config.operator_factory, id: WorkflowState }



#
# VALUE FACTORIES
#

pimcore.data_object.grid_column_config.value.factory.default:
class: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Value\Factory\DefaultValueFactory
arguments:
$className: Pimcore\Bundle\AdminBundle\DataObject\GridColumnConfig\Value\DefaultValue
tags:
- { name: pimcore.data_object.grid_column_config.value_factory, id: DefaultValue }

32 changes: 32 additions & 0 deletions .github/ci/files/config/packages/test/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
imports:
- { resource: ../../config.yaml }

# this cache is used during tests when setting up pimcore
framework:
cache:
pools:
pimcore.cache.pool:
public: true
tags: true
default_lifetime: 31536000 # 1 year
adapter: cache.adapter.array


doctrine:
dbal:
connections:
default:
url: '%pimcore_test.db.dsn%'
host: ~
port: ~
dbname: ~
user: ~
password: ~
mapping_types:
enum: string
bit: boolean

parameters:
pimcore_test.db.dsn: '%env(PIMCORE_TEST_DB_DSN)%'
env(PIMCORE_TEST_DB_DSN): ~
pimcore.encryption.secret: 'def00000fc1e34a17a03e2ef85329325b0736a5941633f8062f6b0a1a20f416751af119256bea0abf83ac33ef656b3fff087e1ce71fa6b8810d7f854fe2781f3fe4507f6'
Loading

0 comments on commit 2f4f3b3

Please sign in to comment.