From 9869e5f7f9b92a02040c38e8ff1ed35d40b3b23f Mon Sep 17 00:00:00 2001 From: Jeremy Harris Date: Thu, 10 May 2018 08:57:19 -0500 Subject: [PATCH] Added constraints for template/layout files --- .../Constraint/View/LayoutFileEquals.php | 31 ++++++++++ .../Constraint/View/TemplateFileEquals.php | 61 +++++++++++++++++++ src/TestSuite/IntegrationTestTrait.php | 12 ++-- 3 files changed, 96 insertions(+), 8 deletions(-) create mode 100644 src/TestSuite/Constraint/View/LayoutFileEquals.php create mode 100644 src/TestSuite/Constraint/View/TemplateFileEquals.php diff --git a/src/TestSuite/Constraint/View/LayoutFileEquals.php b/src/TestSuite/Constraint/View/LayoutFileEquals.php new file mode 100644 index 00000000000..69f6dc538a8 --- /dev/null +++ b/src/TestSuite/Constraint/View/LayoutFileEquals.php @@ -0,0 +1,31 @@ +filename); + } +} diff --git a/src/TestSuite/Constraint/View/TemplateFileEquals.php b/src/TestSuite/Constraint/View/TemplateFileEquals.php new file mode 100644 index 00000000000..a84a0c4ce38 --- /dev/null +++ b/src/TestSuite/Constraint/View/TemplateFileEquals.php @@ -0,0 +1,61 @@ +filename = $filename; + } + + /** + * Checks assertion + * + * @param mixed $other Expected filename + * @return bool + */ + public function matches($other) + { + return strpos($this->filename, $other) !== false; + } + + /** + * Assertion message + * + * @return string + */ + public function toString() + { + return sprintf('equals template file `%s`', $this->filename); + } +} diff --git a/src/TestSuite/IntegrationTestTrait.php b/src/TestSuite/IntegrationTestTrait.php index 3ba0cd8ccba..a13bf367956 100644 --- a/src/TestSuite/IntegrationTestTrait.php +++ b/src/TestSuite/IntegrationTestTrait.php @@ -26,6 +26,8 @@ use Cake\TestSuite\Constraint\Response\StatusFailure; use Cake\TestSuite\Constraint\Response\StatusOk; use Cake\TestSuite\Constraint\Response\StatusSuccess; +use Cake\TestSuite\Constraint\View\TemplateFileEquals; +use Cake\TestSuite\Constraint\View\LayoutFileEquals; use Cake\TestSuite\Stub\TestExceptionRenderer; use Cake\Utility\CookieCryptTrait; use Cake\Utility\Hash; @@ -975,10 +977,7 @@ public function assertResponseEmpty($message = '') */ public function assertTemplate($content, $message = '') { - if (!$this->_viewName) { - $this->fail('No view name stored. ' . $message); - } - $this->assertContains($content, $this->_viewName, $message); + $this->assertThat($content, new TemplateFileEquals($this->_viewName), $message); } /** @@ -990,10 +989,7 @@ public function assertTemplate($content, $message = '') */ public function assertLayout($content, $message = '') { - if (!$this->_layoutName) { - $this->fail('No layout name stored. ' . $message); - } - $this->assertContains($content, $this->_layoutName, $message); + $this->assertThat($content, new LayoutFileEquals($this->_layoutName), $message); } /**