Skip to content

Commit c7cf0c9

Browse files
committed
remove dependencies
1 parent 138787c commit c7cf0c9

File tree

4 files changed

+65
-117
lines changed

4 files changed

+65
-117
lines changed

README.md

+6-3
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ All test files needs to be stored in `/tests`.
1111
| Name | Example | Required | Description |
1212
|------|------------|------------|-------------|
1313
| `TEST_BUNDLE_NAME` | `ToolboxBundle` | yes | -- |
14-
| `TEST_BUNDLE_NAMESPACE` | `ToolboxBundle\ToolboxBundle` | yes | -- |
15-
| `TEST_BUNDLE_INSTALLER_CLASS` | `ToolboxBundle\Tool\Install` | yes | Set to `false` if you don't have any installer class |
14+
| `TEST_BUNDLE_NAMESPACE` | `ToolboxBundle\\ToolboxBundle` | yes | -- |
15+
| `TEST_BUNDLE_INSTALLER_CLASS` | `ToolboxBundle\\Tool\\Install` | yes | Set to `false` if you don't have any installer class |
1616
| `TEST_BUNDLE_TEST_DIR` | `${{ github.workspace }}/tests` | yes | -- |
1717
| `TEST_PROJECT_ROOT_DIR` | `${{ github.workspace }}` | yes | This variable is required to setup test structure before any system is running |
1818
| `PIMCORE_CODECEPTION_FRAMEWORK` | `${{ github.workspace }}/pimcore-codeception-framework` | yes | -- |
@@ -49,4 +49,7 @@ setup_files:
4949
## Bundle Configuration Files
5050
This Framework allows you to use multiple (bundle) configuration setups.
5151
52-
TBD
52+
TBD
53+
54+
## Classes
55+
If you want to provide some classes to install, all the definitions needs to stored at `/tests/_etc/classes`.

src/_bootstrap.php

+4-2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
include_once sprintf('%s/../../../autoload.php', __DIR__);
1010
}
1111

12+
$bundleTestPath = getenv('TEST_BUNDLE_TEST_DIR');
13+
1214
define('PIMCORE_KERNEL_CLASS', '\Dachcom\Codeception\App\TestAppKernel');
1315
define('PIMCORE_TEST', true);
1416

@@ -17,10 +19,10 @@
1719

1820
Autoload::addNamespace('Pimcore\Tests', PIMCORE_PROJECT_ROOT . '/vendor/pimcore/pimcore/tests/_support');
1921
Autoload::addNamespace('Dachcom\Codeception', __DIR__ . '/_support');
20-
Autoload::addNamespace('Pimcore\Model\DataObject', __DIR__ . '/_output/var/classes/DataObject');
22+
Autoload::addNamespace('Pimcore\Model\DataObject', sprintf('%s/_output/var/classes/DataObject', $bundleTestPath));
2123

2224
if (!defined('TESTS_PATH')) {
23-
define('TESTS_PATH', __DIR__);
25+
define('TESTS_PATH', $bundleTestPath);
2426
}
2527

2628
if (!isset($_SERVER['REQUEST_URI'])) {

src/_support/App/Services/ContextResolverTestClass.php

-27
This file was deleted.

src/_support/Helper/PimcoreBackend.php

+55-85
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Codeception\Module;
66
use Codeception\TestInterface;
7+
use Codeception\Util\Debug;
78
use Dachcom\Codeception\Util\VersionHelper;
89
use Pimcore\Tests\Util\TestHelper;
910
use Pimcore\Model\Document;
@@ -24,24 +25,23 @@ public function _before(TestInterface $test)
2425
* Actor Function to create a Page Document
2526
*
2627
* @param string $documentKey
27-
* @param null|string $action
28-
* @param null|string $controller
28+
* @param array $params
2929
* @param null|string $locale
3030
*
3131
* @return Document\Page
32+
* @throws \Exception
3233
*/
3334
public function haveAPageDocument(
34-
$documentKey = 'toolbox-test',
35-
$action = null,
36-
$controller = null,
35+
$documentKey = 'bundle-test',
36+
$params = [],
3737
$locale = 'en'
3838
) {
39-
$document = $this->generatePageDocument($documentKey, $action, $controller, $locale);
39+
$document = $this->generatePageDocument($documentKey, $params, $locale);
4040

4141
try {
4242
$document->save();
4343
} catch (\Exception $e) {
44-
\Codeception\Util\Debug::debug(sprintf('[TOOLBOX ERROR] error while saving document page. message was: ' . $e->getMessage()));
44+
Debug::debug(sprintf('[TEST BUNDLE ERROR] error while saving document page. message was: ' . $e->getMessage()));
4545
}
4646

4747
$this->assertInstanceOf(Document\Page::class, Document\Page::getById($document->getId()));
@@ -52,24 +52,25 @@ public function haveAPageDocument(
5252
/**
5353
* Actor Function to create a Snippet
5454
*
55-
* @param $snippetName
56-
* @param array $elements
55+
* @param string $snippetName
56+
* @param array $params
57+
* @param array $elements
5758
*
59+
* @throws \Exception
5860
*/
59-
public function haveASnippet($snippetName, $elements = [])
61+
public function haveASnippet($snippetName, $params = [], $elements = [])
6062
{
61-
$this->createSnippet($snippetName, $elements);
63+
$this->generateSnippet($snippetName, $params, $elements);
6264
}
6365

6466
/**
65-
* Actor Function to place a toolbox area on a document
67+
* Actor Function to place a area on a document
6668
*
6769
* @param Document\Page $document
70+
* @param array $editables
6871
*/
69-
public function seeAToolboxAreaElementPlacedOnDocument(Document\Page $document)
72+
public function seeAnAreaElementPlacedOnDocument(Document\Page $document, array $editables = [])
7073
{
71-
$editables = $this->createToolboxArea();
72-
7374
if (VersionHelper::pimcoreVersionIsGreaterOrEqualThan('6.8.0')) {
7475
$document->setEditables($editables);
7576
} else {
@@ -79,7 +80,7 @@ public function seeAToolboxAreaElementPlacedOnDocument(Document\Page $document)
7980
try {
8081
$document->save();
8182
} catch (\Exception $e) {
82-
\Codeception\Util\Debug::debug(sprintf('[TOOLBOX ERROR] error while saving document. message was: ' . $e->getMessage()));
83+
Debug::debug(sprintf('[TEST BUNDLE ERROR] error while saving document. message was: ' . $e->getMessage()));
8384
}
8485

8586
$this->assertCount(count($editables), VersionHelper::pimcoreVersionIsGreaterOrEqualThan('6.8.0') ? $document->getEditables() : $document->getElements());
@@ -88,50 +89,72 @@ public function seeAToolboxAreaElementPlacedOnDocument(Document\Page $document)
8889
/**
8990
* API Function to create a page document
9091
*
91-
* @param string $key
92-
* @param null|string $action
93-
* @param null|string $controller
94-
* @param string $locale
92+
* @param string $key
93+
* @param array $params
94+
* @param string $locale
9595
*
9696
* @return Document\Page
97+
* @throws \Exception
9798
*/
98-
protected function generatePageDocument($key = 'toolbox-test', $action = null, $controller = null, $locale = 'en')
99+
protected function generatePageDocument($key = 'bundle-test', $params = [], $locale = 'en')
99100
{
100-
$action = is_null($action) ? 'default' : $action;
101-
$controller = is_null($controller) ? '@AppBundle\Controller\DefaultController' : $controller;
101+
if (!isset($params['action'])) {
102+
$params['action'] = 'default';
103+
}
104+
105+
if (!isset($params['controller'])) {
106+
$params['controller'] = '@AppBundle\Controller\DefaultController';
107+
}
102108

103109
$document = TestHelper::createEmptyDocumentPage('', false);
104-
$document->setController($controller);
105-
$document->setAction($action);
106110
$document->setKey($key);
107111
$document->setProperty('language', 'text', $locale, false, 1);
108112

113+
if (count($params) > 0) {
114+
foreach ($params as $varKey => $varValue) {
115+
$document->setObjectVar($varKey, $varValue);
116+
}
117+
}
118+
109119
return $document;
110120
}
111121

112122
/**
113123
* API Function to create a Snippet
114124
*
115-
* @param $snippetName
116-
* @param array $elements
125+
* @param string $snippetName
126+
* @param array $params
127+
* @param array $editables
117128
*
118129
* @return null|Document\Snippet
130+
* @throws \Exception
119131
*/
120-
protected function createSnippet($snippetName, $elements = [])
132+
protected function generateSnippet($snippetName, $params = [], $editables = [])
121133
{
122134
$document = new Document\Snippet();
123-
$document->setModule('ToolboxBundle');
124-
$document->setController('Snippet');
125-
$document->setAction('teaser');
135+
126136
$document->setType('snippet');
127-
$document->setElements($elements);
128137
$document->setParentId(1);
129138
$document->setUserOwner(1);
130139
$document->setUserModification(1);
131140
$document->setCreationDate(time());
132141
$document->setKey($snippetName);
133142
$document->setPublished(true);
134143

144+
if (count($params) > 0) {
145+
foreach ($params as $varKey => $varValue) {
146+
$document->setObjectVar($varKey, $varValue);
147+
}
148+
}
149+
150+
if (count($editables) > 0) {
151+
if (VersionHelper::pimcoreVersionIsGreaterOrEqualThan('6.8.0')) {
152+
$document->setEditables($editables);
153+
} else {
154+
$document->setElements($editables);
155+
}
156+
}
157+
135158
try {
136159
$document->save();
137160
} catch (\Exception $e) {
@@ -140,58 +163,5 @@ protected function createSnippet($snippetName, $elements = [])
140163
}
141164

142165
return $document;
143-
144-
}
145-
146-
/**
147-
* API Function to create a toolbox area element.
148-
*
149-
* @return array
150-
*/
151-
protected function createToolboxArea()
152-
{
153-
if (VersionHelper::pimcoreVersionIsGreaterOrEqualThan('6.8.0')) {
154-
$blockAreaClass = 'Pimcore\Model\Document\Editable\Areablock';
155-
$selectClass = 'Pimcore\Model\Document\Editable\Select';
156-
$inputClass = 'Pimcore\Model\Document\Editable\Input';
157-
} else {
158-
$blockAreaClass = 'Pimcore\Model\Document\Tag\Areablock';
159-
$selectClass = 'Pimcore\Model\Document\Tag\Select';
160-
$inputClass = 'Pimcore\Model\Document\Tag\Input';
161-
}
162-
163-
$headlineType = new $selectClass();
164-
$headlineType->setDataFromResource('h6');
165-
$headlineType->setName('dachcomBundleTest:1.headline_type');
166-
167-
$headlineText = new $inputClass();
168-
$headlineText->setDataFromResource('this is a headline');
169-
$headlineText->setName('dachcomBundleTest:1.headline_text');
170-
171-
$anchorName = new $inputClass();
172-
$anchorName->setDataFromResource('this is a anchor name');
173-
$anchorName->setName('dachcomBundleTest:1.anchor_name');
174-
175-
$addClasses = new $selectClass();
176-
$addClasses->setDataFromResource(null);
177-
$addClasses->setName('dachcomBundleTest:1.add_classes');
178-
179-
$blockArea = new $blockAreaClass();
180-
$blockArea->setName('dachcomBundleTest');
181-
$blockArea->setDataFromEditmode([
182-
[
183-
'key' => '1',
184-
'type' => 'headline',
185-
'hidden' => false
186-
]
187-
]);
188-
189-
return [
190-
'dachcomBundleTest' => $blockArea,
191-
'dachcomBundleTest:1.headline_type' => $headlineType,
192-
'dachcomBundleTest:1.headline_text' => $headlineText,
193-
'dachcomBundleTest:1.anchor_name' => $anchorName,
194-
'dachcomBundleTest:1.add_classes' => $addClasses,
195-
];
196166
}
197167
}

0 commit comments

Comments
 (0)