1 | <?php |
||||||
2 | namespace DNADesign\Elemental\Tests\Behat\Context; |
||||||
3 | |||||||
4 | use DNADesign\Elemental\Models\ElementContent; |
||||||
5 | use SilverStripe\BehatExtension\Context\FixtureContext as BaseFixtureContext; |
||||||
6 | |||||||
7 | if (!class_exists(BaseFixtureContext::class)) { |
||||||
8 | return; |
||||||
9 | } |
||||||
10 | /** |
||||||
11 | * Context used to create fixtures in the SilverStripe ORM. |
||||||
12 | */ |
||||||
13 | class FixtureContext extends BaseFixtureContext |
||||||
14 | { |
||||||
15 | /** |
||||||
16 | * @Given /(?:the|a) "([^"]+)" "([^"]+)" (?:with|has) a "([^"]+)" content element with "([^"]+)" content/ |
||||||
17 | * |
||||||
18 | * @param string $pageTitle |
||||||
19 | * @param string $type |
||||||
20 | * @param string $elementTitle |
||||||
21 | * @param string $elementContent |
||||||
22 | */ |
||||||
23 | public function theHasAContentElementWithContent($type, $pageTitle, $elementTitle, $elementContent) |
||||||
24 | { |
||||||
25 | // Create the page (ElementalArea is created on write and attached to it) |
||||||
26 | $targetClass = $this->convertTypeToClass($type); |
||||||
27 | |||||||
28 | $page = $this->getFixtureFactory()->get($targetClass, $pageTitle); |
||||||
29 | if (!$page) { |
||||||
0 ignored issues
–
show
introduced
by
Loading history...
|
|||||||
30 | $page = $this->getFixtureFactory()->createObject($targetClass, $pageTitle); |
||||||
31 | } |
||||||
32 | |||||||
33 | $elementalArea = $page->ElementalArea(); |
||||||
34 | $elementalArea->Elements()->add($this->getFixtureFactory()->createObject(ElementContent::class, $elementTitle)); |
||||||
35 | |||||||
36 | // Create element |
||||||
37 | $element = $this->getFixtureFactory()->get(ElementContent::class, $elementTitle); |
||||||
38 | |||||||
39 | if ($element) { |
||||||
0 ignored issues
–
show
|
|||||||
40 | $element->HTML = $elementContent; |
||||||
41 | $element->write(); |
||||||
42 | } else { |
||||||
43 | $element = $this->getFixtureFactory()->createObject(ElementContent::class, $elementTitle, [ |
||||||
44 | 'Title' => $elementTitle, |
||||||
45 | 'HTML' => $elementContent |
||||||
46 | ]); |
||||||
47 | $element->write(); |
||||||
48 | } |
||||||
49 | } |
||||||
50 | |||||||
51 | /** |
||||||
52 | * @Given content blocks are not in-line editable |
||||||
53 | * |
||||||
54 | * @param $elementTitle |
||||||
55 | */ |
||||||
56 | public function contentBlocksAreNotInLineEditable() |
||||||
57 | { |
||||||
58 | $contentBlockClass = ElementContent::class; |
||||||
59 | $config = <<<YAML |
||||||
60 | --- |
||||||
61 | Name: testonly-content-blocks-not-inline-editable |
||||||
62 | --- |
||||||
63 | $contentBlockClass: |
||||||
64 | inline_editable: false |
||||||
65 | YAML; |
||||||
66 | |||||||
67 | $file = 'content-blocks-not-inline-editable.yml'; |
||||||
68 | $path = $this->getDestinationConfigFolder($file); |
||||||
0 ignored issues
–
show
The method
getDestinationConfigFolder() does not exist on DNADesign\Elemental\Test...\Context\FixtureContext .
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces. This is most likely a typographical error or the method has been renamed.
Loading history...
|
|||||||
69 | file_put_contents($path, $config); |
||||||
70 | |||||||
71 | $this->activatedConfigFiles[] = $path; |
||||||
0 ignored issues
–
show
|
|||||||
72 | |||||||
73 | $this->getMainContext()->visit('/?flush'); |
||||||
74 | } |
||||||
75 | } |
||||||
76 |