Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Add methods to CakeTestCase

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

Refs #2148
  • Loading branch information...
commit bd0104d9727c8c15d01694ee52615b90103f2664 1 parent 29514b0
@markstory markstory authored
View
28 lib/Cake/Test/Case/TestSuite/CakeTestCaseTest.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);
+ }
}
View
28 lib/Cake/TestSuite/CakeTestCase.php
@@ -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:
*
Please sign in to comment.
Something went wrong with that request. Please try again.