Skip to content

Commit

Permalink
Add methods to CakeTestCase
Browse files Browse the repository at this point in the history
Add assertTextEquals, and assertTextNotEquals for doing
platform independant text comparisons.

Refs #2148
  • Loading branch information
markstory committed Jan 25, 2012
1 parent 29514b0 commit bd0104d
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 6 deletions.
28 changes: 22 additions & 6 deletions lib/Cake/Test/Case/TestSuite/CakeTestCaseTest.php
Expand Up @@ -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
*
Expand Down Expand Up @@ -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);
}
}
28 changes: 28 additions & 0 deletions lib/Cake/TestSuite/CakeTestCase.php
Expand Up @@ -192,6 +192,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:
Expand Down

0 comments on commit bd0104d

Please sign in to comment.