Skip to content
This repository was archived by the owner on Nov 21, 2019. It is now read-only.

Commit 7302e3b

Browse files
Use and improve XmlTestCase (#39)
1 parent f825056 commit 7302e3b

File tree

14 files changed

+76
-131
lines changed

14 files changed

+76
-131
lines changed

phpstan.neon.dist

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
parameters:
22
ignoreErrors:
3-
- '~^Access to an undefined property FluentDOM\\DOM\\Xpath::\$registerNodeNamespaces\.$~'
43
- '~^Call to an undefined method FluentDOM\\DOM\\Node\\.+?::getNodePath\(\)\.$~'
54
- '~^Cannot cast FluentDOM\\DOM\\Node\\.+? to string\.$~'
65
- '~^Cannot call method ([a-z]+)Node\(\) on Symfony\\Component\\Config\\Definition\\Builder\\NodeParentInterface\|null\.$~'

vendor-extra/ContentPageBundle/tests/XmlTestCase.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,22 @@
55
namespace tests\Libero\ContentPageBundle;
66

77
use FluentDOM;
8+
use FluentDOM\DOM\Document;
89
use FluentDOM\DOM\Element;
910

1011
trait XmlTestCase
1112
{
12-
final protected function loadXml(string $xml) : Element
13+
final protected function loadDocument(string $xml) : Document
1314
{
1415
$xml = FluentDOM::load($xml);
1516
$xml->xpath()->registerNamespace('libero', 'http://libero.pub');
1617
$xml->xpath()->registerNamespace('jats', 'http://jats.nlm.nih.gov');
1718

18-
return $xml->documentElement;
19+
return $xml;
20+
}
21+
22+
final protected function loadElement(string $xml) : Element
23+
{
24+
return $this->loadDocument($xml)->documentElement;
1925
}
2026
}

vendor-extra/JatsContentBundle/tests/EventListener/ContentHeaderListenerTest.php

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,17 @@
44

55
namespace tests\Libero\JatsContentBundle\EventListener;
66

7-
use FluentDOM;
87
use Libero\ContentPageBundle\Event\CreateContentPageEvent;
98
use Libero\JatsContentBundle\EventListener\ContentHeaderListener;
109
use Libero\ViewsBundle\Views\View;
1110
use PHPUnit\Framework\TestCase;
1211
use tests\Libero\ContentPageBundle\ViewConvertingTestCase;
12+
use tests\Libero\ContentPageBundle\XmlTestCase;
1313

1414
final class ContentHeaderListenerTest extends TestCase
1515
{
1616
use ViewConvertingTestCase;
17+
use XmlTestCase;
1718

1819
/**
1920
* @test
@@ -22,7 +23,7 @@ public function it_does_nothing_if_it_does_not_find_the_front() : void
2223
{
2324
$listener = new ContentHeaderListener($this->createFailingConverter());
2425

25-
$document = FluentDOM::load(
26+
$document = $this->loadDocument(
2627
<<<XML
2728
<?xml version="1.0" encoding="UTF-8"?>
2829
<libero:item xmlns:libero="http://libero.pub" xmlns:jats="http://jats.nlm.nih.gov">
@@ -33,7 +34,6 @@ public function it_does_nothing_if_it_does_not_find_the_front() : void
3334
</libero:item>
3435
XML
3536
);
36-
$document->xpath()->registerNodeNamespaces = true;
3737

3838
$event = new CreateContentPageEvent($document);
3939
$originalEvent = clone $event;
@@ -55,10 +55,7 @@ public function it_sets_the_title_and_adds_a_content_header(
5555
) : void {
5656
$listener = new ContentHeaderListener($this->createDumpingConverter());
5757

58-
$document = FluentDOM::load($xml);
59-
$document->xpath()->registerNodeNamespaces = true;
60-
61-
$event = new CreateContentPageEvent($document, $context);
58+
$event = new CreateContentPageEvent($this->loadDocument($xml), $context);
6259
$listener->onCreatePage($event);
6360

6461
$this->assertSame($expectedTitle, $event->getTitle());
@@ -205,7 +202,7 @@ public function it_does_not_replace_an_existing_title() : void
205202
{
206203
$listener = new ContentHeaderListener($this->createDumpingConverter());
207204

208-
$document = FluentDOM::load(
205+
$document = $this->loadDocument(
209206
<<<XML
210207
<?xml version="1.0" encoding="UTF-8"?>
211208
<libero:item xmlns:libero="http://libero.pub" xmlns:jats="http://jats.nlm.nih.gov">
@@ -224,7 +221,6 @@ public function it_does_not_replace_an_existing_title() : void
224221
</libero:item>
225222
XML
226223
);
227-
$document->xpath()->registerNodeNamespaces = true;
228224

229225
$event = new CreateContentPageEvent($document);
230226
$event->setTitle('Existing Title');

vendor-extra/JatsContentBundle/tests/ViewConverter/ArticleTitleHeadingVisitorTest.php

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44

55
namespace tests\Libero\JatsContentBundle\ViewConverter;
66

7-
use FluentDOM;
8-
use FluentDOM\DOM\Element;
97
use Libero\JatsContentBundle\ViewConverter\ArticleTitleHeadingVisitor;
108
use Libero\ViewsBundle\Views\View;
119
use PHPUnit\Framework\TestCase;
1210
use tests\Libero\ContentPageBundle\ViewConvertingTestCase;
11+
use tests\Libero\ContentPageBundle\XmlTestCase;
1312

1413
final class ArticleTitleHeadingVisitorTest extends TestCase
1514
{
1615
use ViewConvertingTestCase;
16+
use XmlTestCase;
1717

1818
/**
1919
* @test
@@ -23,9 +23,7 @@ public function it_does_nothing_if_it_is_not_a_jats_article_title_element(string
2323
{
2424
$visitor = new ArticleTitleHeadingVisitor($this->createFailingConverter());
2525

26-
$xml = FluentDOM::load("<foo>${xml}</foo>");
27-
/** @var Element $element */
28-
$element = $xml->documentElement->firstChild;
26+
$element = $this->loadElement($xml);
2927

3028
$newContext = [];
3129
$view = $visitor->visit($element, new View('@LiberoPatterns/heading.html.twig'), $newContext);
@@ -48,9 +46,7 @@ public function it_does_nothing_if_is_not_the_heading_template() : void
4846
{
4947
$visitor = new ArticleTitleHeadingVisitor($this->createFailingConverter());
5048

51-
$xml = FluentDOM::load('<article-title xmlns="http://jats.nlm.nih.gov">foo</article-title>');
52-
/** @var Element $element */
53-
$element = $xml->documentElement;
49+
$element = $this->loadElement('<article-title xmlns="http://jats.nlm.nih.gov">foo</article-title>');
5450

5551
$newContext = [];
5652
$view = $visitor->visit($element, new View('template'), $newContext);
@@ -67,9 +63,7 @@ public function it_does_nothing_if_there_is_already_text_set() : void
6763
{
6864
$visitor = new ArticleTitleHeadingVisitor($this->createFailingConverter());
6965

70-
$xml = FluentDOM::load('<article-title xmlns="http://jats.nlm.nih.gov">foo</article-title>');
71-
/** @var Element $element */
72-
$element = $xml->documentElement;
66+
$element = $this->loadElement('<article-title xmlns="http://jats.nlm.nih.gov">foo</article-title>');
7367

7468
$newContext = [];
7569
$view = $visitor->visit(
@@ -90,15 +84,13 @@ public function it_sets_the_text_argument() : void
9084
{
9185
$visitor = new ArticleTitleHeadingVisitor($this->createDumpingConverter());
9286

93-
$xml = FluentDOM::load(
87+
$element = $this->loadElement(
9488
<<<XML
9589
<jats:article-title xmlns:jats="http://jats.nlm.nih.gov">
9690
foo <jats:italic>bar</jats:italic> baz
9791
</jats:article-title>
9892
XML
9993
);
100-
/** @var Element $element */
101-
$element = $xml->documentElement;
10294

10395
$newContext = ['qux' => 'quux'];
10496
$view = $visitor->visit($element, new View('@LiberoPatterns/heading.html.twig'), $newContext);

vendor-extra/JatsContentBundle/tests/ViewConverter/BoldVisitorTest.php

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44

55
namespace tests\Libero\JatsContentBundle\ViewConverter;
66

7-
use FluentDOM;
8-
use FluentDOM\DOM\Element;
97
use Libero\JatsContentBundle\ViewConverter\BoldVisitor;
108
use Libero\ViewsBundle\Views\View;
119
use PHPUnit\Framework\TestCase;
1210
use tests\Libero\ContentPageBundle\ViewConvertingTestCase;
11+
use tests\Libero\ContentPageBundle\XmlTestCase;
1312

1413
final class BoldVisitorTest extends TestCase
1514
{
1615
use ViewConvertingTestCase;
16+
use XmlTestCase;
1717

1818
/**
1919
* @test
@@ -23,9 +23,7 @@ public function it_does_nothing_if_it_is_not_a_jats_bold_element(string $xml) :
2323
{
2424
$visitor = new BoldVisitor($this->createFailingConverter());
2525

26-
$xml = FluentDOM::load("<foo>${xml}</foo>");
27-
/** @var Element $element */
28-
$element = $xml->documentElement->firstChild;
26+
$element = $this->loadElement($xml);
2927

3028
$newContext = [];
3129
$view = $visitor->visit($element, new View(null), $newContext);
@@ -48,9 +46,7 @@ public function it_does_nothing_if_is_not_the_bold_template() : void
4846
{
4947
$visitor = new BoldVisitor($this->createFailingConverter());
5048

51-
$xml = FluentDOM::load('<bold xmlns="http://jats.nlm.nih.gov">foo</bold>');
52-
/** @var Element $element */
53-
$element = $xml->documentElement;
49+
$element = $this->loadElement('<bold xmlns="http://jats.nlm.nih.gov">foo</bold>');
5450

5551
$newContext = [];
5652
$view = $visitor->visit($element, new View('template'), $newContext);
@@ -67,9 +63,7 @@ public function it_does_nothing_if_there_is_already_text_set() : void
6763
{
6864
$visitor = new BoldVisitor($this->createFailingConverter());
6965

70-
$xml = FluentDOM::load('<bold xmlns="http://jats.nlm.nih.gov">foo</bold>');
71-
/** @var Element $element */
72-
$element = $xml->documentElement;
66+
$element = $this->loadElement('<bold xmlns="http://jats.nlm.nih.gov">foo</bold>');
7367

7468
$newContext = [];
7569
$view = $visitor->visit($element, new View(null, ['text' => 'bar']), $newContext);
@@ -86,15 +80,13 @@ public function it_sets_the_template_and_text_argument() : void
8680
{
8781
$visitor = new BoldVisitor($this->createDumpingConverter());
8882

89-
$xml = FluentDOM::load(
83+
$element = $this->loadElement(
9084
<<<XML
9185
<jats:bold xmlns:jats="http://jats.nlm.nih.gov">
9286
foo <jats:italic>bar</jats:italic> baz
9387
</jats:bold>
9488
XML
9589
);
96-
/** @var Element $element */
97-
$element = $xml->documentElement;
9890

9991
$newContext = ['qux' => 'quux'];
10092
$view = $visitor->visit($element, new View(null), $newContext);

vendor-extra/JatsContentBundle/tests/ViewConverter/FrontContentHeaderVisitorTest.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public function it_does_nothing_if_it_is_not_a_jats_front_element(string $xml) :
2323
{
2424
$visitor = new FrontContentHeaderVisitor($this->createFailingConverter());
2525

26-
$element = $this->loadXml($xml);
26+
$element = $this->loadElement($xml);
2727

2828
$newContext = [];
2929
$view = $visitor->visit($element, new View('@LiberoPatterns/content-header.html.twig'), $newContext);
@@ -46,7 +46,7 @@ public function it_does_nothing_if_is_not_the_content_header_template() : void
4646
{
4747
$visitor = new FrontContentHeaderVisitor($this->createFailingConverter());
4848

49-
$element = $this->loadXml(
49+
$element = $this->loadElement(
5050
<<<XML
5151
<?xml version="1.0" encoding="UTF-8"?>
5252
<front xmlns="http://jats.nlm.nih.gov">
@@ -74,7 +74,7 @@ public function it_does_nothing_if_there_is_no_title_group() : void
7474
{
7575
$visitor = new FrontContentHeaderVisitor($this->createFailingConverter());
7676

77-
$element = $this->loadXml('<front xmlns="http://jats.nlm.nih.gov"><article-meta/></front>');
77+
$element = $this->loadElement('<front xmlns="http://jats.nlm.nih.gov"><article-meta/></front>');
7878

7979
$newContext = [];
8080
$view = $visitor->visit(
@@ -95,7 +95,7 @@ public function it_does_nothing_if_there_is_already_a_content_title_set() : void
9595
{
9696
$visitor = new FrontContentHeaderVisitor($this->createFailingConverter());
9797

98-
$element = $this->loadXml(
98+
$element = $this->loadElement(
9999
<<<XML
100100
<?xml version="1.0" encoding="UTF-8"?>
101101
<front xmlns="http://jats.nlm.nih.gov">
@@ -127,7 +127,7 @@ public function it_sets_the_text_argument() : void
127127
{
128128
$visitor = new FrontContentHeaderVisitor($this->createDumpingConverter());
129129

130-
$element = $this->loadXml(
130+
$element = $this->loadElement(
131131
<<<XML
132132
<?xml version="1.0" encoding="UTF-8"?>
133133
<jats:front xmlns:jats="http://jats.nlm.nih.gov">

vendor-extra/JatsContentBundle/tests/ViewConverter/ItalicVisitorTest.php

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44

55
namespace tests\Libero\JatsContentBundle\ViewConverter;
66

7-
use FluentDOM;
8-
use FluentDOM\DOM\Element;
97
use Libero\JatsContentBundle\ViewConverter\ItalicVisitor;
108
use Libero\ViewsBundle\Views\View;
119
use PHPUnit\Framework\TestCase;
1210
use tests\Libero\ContentPageBundle\ViewConvertingTestCase;
11+
use tests\Libero\ContentPageBundle\XmlTestCase;
1312

1413
final class ItalicVisitorTest extends TestCase
1514
{
1615
use ViewConvertingTestCase;
16+
use XmlTestCase;
1717

1818
/**
1919
* @test
@@ -23,9 +23,7 @@ public function it_does_nothing_if_it_is_not_a_jats_italic_element(string $xml)
2323
{
2424
$visitor = new ItalicVisitor($this->createFailingConverter());
2525

26-
$xml = FluentDOM::load("<foo>${xml}</foo>");
27-
/** @var Element $element */
28-
$element = $xml->documentElement->firstChild;
26+
$element = $this->loadElement($xml);
2927

3028
$newContext = [];
3129
$view = $visitor->visit($element, new View(null), $newContext);
@@ -48,9 +46,7 @@ public function it_does_nothing_if_is_not_the_italic_template() : void
4846
{
4947
$visitor = new ItalicVisitor($this->createFailingConverter());
5048

51-
$xml = FluentDOM::load('<italic xmlns="http://jats.nlm.nih.gov">foo</italic>');
52-
/** @var Element $element */
53-
$element = $xml->documentElement;
49+
$element = $this->loadElement('<italic xmlns="http://jats.nlm.nih.gov">foo</italic>');
5450

5551
$newContext = [];
5652
$view = $visitor->visit($element, new View('template'), $newContext);
@@ -67,9 +63,7 @@ public function it_does_nothing_if_there_is_already_text_set() : void
6763
{
6864
$visitor = new ItalicVisitor($this->createFailingConverter());
6965

70-
$xml = FluentDOM::load('<italic xmlns="http://jats.nlm.nih.gov">foo</italic>');
71-
/** @var Element $element */
72-
$element = $xml->documentElement;
66+
$element = $this->loadElement('<italic xmlns="http://jats.nlm.nih.gov">foo</italic>');
7367

7468
$newContext = [];
7569
$view = $visitor->visit($element, new View(null, ['text' => 'bar']), $newContext);
@@ -86,15 +80,13 @@ public function it_sets_the_template_and_text_argument() : void
8680
{
8781
$visitor = new ItalicVisitor($this->createDumpingConverter());
8882

89-
$xml = FluentDOM::load(
83+
$element = $this->loadElement(
9084
<<<XML
9185
<jats:italic xmlns:jats="http://jats.nlm.nih.gov">
9286
foo <jats:bold>bar</jats:bold> baz
9387
</jats:italic>
9488
XML
9589
);
96-
/** @var Element $element */
97-
$element = $xml->documentElement;
9890

9991
$newContext = ['qux' => 'quux'];
10092
$view = $visitor->visit($element, new View(null), $newContext);

0 commit comments

Comments
 (0)