Permalink
Browse files

Add methods to CakeTestCase

Add assertTextEquals, and assertTextNotEquals for doing
platform independant text comparisons.

Refs #2148
  • Loading branch information...
1 parent 29514b0 commit bd0104d9727c8c15d01694ee52615b90103f2664 @markstory markstory committed Jan 25, 2012
Showing with 50 additions and 6 deletions.
  1. +22 −6 lib/Cake/Test/Case/TestSuite/CakeTestCaseTest.php
  2. +28 −0 lib/Cake/TestSuite/CakeTestCase.php
@@ -22,12 +22,6 @@
App::uses('Controller', 'Controller');
App::uses('CakeHtmlReporter', 'TestSuite/Reporter');
-if (!class_exists('AppController', false)) {
- require_once CAKE . 'Controller' . DS . 'AppController.php';
-} elseif (!defined('APP_CONTROLLER_EXISTS')) {
- define('APP_CONTROLLER_EXISTS', true);
-}
-
/**
* CakeTestCaseTest
*
@@ -240,4 +234,26 @@ public function testSetupBackUpValues() {
$this->assertArrayHasKey('debug', $this->_configure);
$this->assertArrayHasKey('Plugin', $this->_pathRestore);
}
+
+/**
+ * test assertTextNotEquals()
+ *
+ * @return void
+ */
+ public function testAssertTextNotEquals() {
+ $one = "\r\nOne\rTwooo";
+ $two = "\nOne\nTwo";
+ $this->assertTextNotEquals($one, $two);
+ }
+
+/**
+ * test assertTextEquals()
+ *
+ * @return void
+ */
+ public function testAssertTextEquals() {
+ $one = "\r\nOne\rTwo";
+ $two = "\nOne\nTwo";
+ $this->assertTextEquals($one, $two);
+ }
}
@@ -193,6 +193,34 @@ public function loadFixtures() {
}
/**
+ * Assert text equality, ignoring differences in newlines.
+ * Helpful for doing cross platform tests of blocks of text.
+ *
+ * @param string $expected The expected value.
+ * @param string $result The actual value.
+ * @param message The message to use for failure.
+ */
+ public function assertTextNotEquals($expected, $result, $message = '') {
+ $expected = str_replace(array("\r\n", "\r"), "\n", $expected);
+ $result = str_replace(array("\r\n", "\r"), "\n", $result);
+ return $this->assertNotEquals($expected, $result, $message);
+ }
+
+/**
+ * Assert text equality, ignoring differences in newlines.
+ * Helpful for doing cross platform tests of blocks of text.
+ *
+ * @param string $expected The expected value.
+ * @param string $result The actual value.
+ * @param message The message to use for failure.
+ */
+ public function assertTextEquals($expected, $result, $message = '') {
+ $expected = str_replace(array("\r\n", "\r"), "\n", $expected);
+ $result = str_replace(array("\r\n", "\r"), "\n", $result);
+ return $this->assertEquals($expected, $result, $message);
+ }
+
+/**
* Takes an array $expected and generates a regex from it to match the provided $string.
* Samples for $expected:
*

0 comments on commit bd0104d

Please sign in to comment.