4
4
5
5
use Codeception \Module ;
6
6
use Codeception \TestInterface ;
7
+ use Codeception \Util \Debug ;
7
8
use Dachcom \Codeception \Util \VersionHelper ;
8
9
use Pimcore \Tests \Util \TestHelper ;
9
10
use Pimcore \Model \Document ;
@@ -24,24 +25,23 @@ public function _before(TestInterface $test)
24
25
* Actor Function to create a Page Document
25
26
*
26
27
* @param string $documentKey
27
- * @param null|string $action
28
- * @param null|string $controller
28
+ * @param array $params
29
29
* @param null|string $locale
30
30
*
31
31
* @return Document\Page
32
+ * @throws \Exception
32
33
*/
33
34
public function haveAPageDocument (
34
- $ documentKey = 'toolbox-test ' ,
35
- $ action = null ,
36
- $ controller = null ,
35
+ $ documentKey = 'bundle-test ' ,
36
+ $ params = [],
37
37
$ locale = 'en '
38
38
) {
39
- $ document = $ this ->generatePageDocument ($ documentKey , $ action , $ controller , $ locale );
39
+ $ document = $ this ->generatePageDocument ($ documentKey , $ params , $ locale );
40
40
41
41
try {
42
42
$ document ->save ();
43
43
} 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 ()));
45
45
}
46
46
47
47
$ this ->assertInstanceOf (Document \Page::class, Document \Page::getById ($ document ->getId ()));
@@ -52,24 +52,25 @@ public function haveAPageDocument(
52
52
/**
53
53
* Actor Function to create a Snippet
54
54
*
55
- * @param $snippetName
56
- * @param array $elements
55
+ * @param string $snippetName
56
+ * @param array $params
57
+ * @param array $elements
57
58
*
59
+ * @throws \Exception
58
60
*/
59
- public function haveASnippet ($ snippetName , $ elements = [])
61
+ public function haveASnippet ($ snippetName , $ params = [], $ elements = [])
60
62
{
61
- $ this ->createSnippet ($ snippetName , $ elements );
63
+ $ this ->generateSnippet ($ snippetName, $ params , $ elements );
62
64
}
63
65
64
66
/**
65
- * Actor Function to place a toolbox area on a document
67
+ * Actor Function to place a area on a document
66
68
*
67
69
* @param Document\Page $document
70
+ * @param array $editables
68
71
*/
69
- public function seeAToolboxAreaElementPlacedOnDocument (Document \Page $ document )
72
+ public function seeAnAreaElementPlacedOnDocument (Document \Page $ document, array $ editables = [] )
70
73
{
71
- $ editables = $ this ->createToolboxArea ();
72
-
73
74
if (VersionHelper::pimcoreVersionIsGreaterOrEqualThan ('6.8.0 ' )) {
74
75
$ document ->setEditables ($ editables );
75
76
} else {
@@ -79,7 +80,7 @@ public function seeAToolboxAreaElementPlacedOnDocument(Document\Page $document)
79
80
try {
80
81
$ document ->save ();
81
82
} 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 ()));
83
84
}
84
85
85
86
$ this ->assertCount (count ($ editables ), VersionHelper::pimcoreVersionIsGreaterOrEqualThan ('6.8.0 ' ) ? $ document ->getEditables () : $ document ->getElements ());
@@ -88,50 +89,72 @@ public function seeAToolboxAreaElementPlacedOnDocument(Document\Page $document)
88
89
/**
89
90
* API Function to create a page document
90
91
*
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
95
95
*
96
96
* @return Document\Page
97
+ * @throws \Exception
97
98
*/
98
- protected function generatePageDocument ($ key = 'toolbox -test ' , $ action = null , $ controller = null , $ locale = 'en ' )
99
+ protected function generatePageDocument ($ key = 'bundle -test ' , $ params = [] , $ locale = 'en ' )
99
100
{
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
+ }
102
108
103
109
$ document = TestHelper::createEmptyDocumentPage ('' , false );
104
- $ document ->setController ($ controller );
105
- $ document ->setAction ($ action );
106
110
$ document ->setKey ($ key );
107
111
$ document ->setProperty ('language ' , 'text ' , $ locale , false , 1 );
108
112
113
+ if (count ($ params ) > 0 ) {
114
+ foreach ($ params as $ varKey => $ varValue ) {
115
+ $ document ->setObjectVar ($ varKey , $ varValue );
116
+ }
117
+ }
118
+
109
119
return $ document ;
110
120
}
111
121
112
122
/**
113
123
* API Function to create a Snippet
114
124
*
115
- * @param $snippetName
116
- * @param array $elements
125
+ * @param string $snippetName
126
+ * @param array $params
127
+ * @param array $editables
117
128
*
118
129
* @return null|Document\Snippet
130
+ * @throws \Exception
119
131
*/
120
- protected function createSnippet ($ snippetName , $ elements = [])
132
+ protected function generateSnippet ($ snippetName , $ params = [], $ editables = [])
121
133
{
122
134
$ document = new Document \Snippet ();
123
- $ document ->setModule ('ToolboxBundle ' );
124
- $ document ->setController ('Snippet ' );
125
- $ document ->setAction ('teaser ' );
135
+
126
136
$ document ->setType ('snippet ' );
127
- $ document ->setElements ($ elements );
128
137
$ document ->setParentId (1 );
129
138
$ document ->setUserOwner (1 );
130
139
$ document ->setUserModification (1 );
131
140
$ document ->setCreationDate (time ());
132
141
$ document ->setKey ($ snippetName );
133
142
$ document ->setPublished (true );
134
143
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
+
135
158
try {
136
159
$ document ->save ();
137
160
} catch (\Exception $ e ) {
@@ -140,58 +163,5 @@ protected function createSnippet($snippetName, $elements = [])
140
163
}
141
164
142
165
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
- ];
196
166
}
197
167
}
0 commit comments