function assert_attr_read_only($obj, $attr_name, $test_value, $msg = null)
 {
     if (is_null($msg)) {
         $msg = 'Exepected %s not to change but [got: %s] after setting [to: %s] [from: %s]';
     }
     $old_value = @$obj->{$attr_name};
     $this->expectError();
     $obj->{$attr_name} = $test_value;
     $new_value = @$obj->{$attr_name};
     $dumper = new SimpleDumper();
     $msg = sprintf($msg, get_class($obj) . '::$' . $attr_name, $dumper->describeValue($new_value), $dumper->describeValue($test_value), $dumper->describeValue($old_value));
     $this->assertEqual($old_value, $new_value, $msg);
 }
Esempio n. 2
0
 /**
  *    Uses a stack trace to find the line of an assertion.
  *    @param array $stack      Stack frames top most first. Only
  *                             needed if not using the PHP
  *                             backtrace function.
  *    @return string           Location of first expect*
  *                             method embedded in format string.
  *    @access public
  *    @static
  */
 function getExpectationLine($stack = false)
 {
     if ($stack === false) {
         $stack = SimpleTestCompatibility::getStackTrace();
     }
     return SimpleDumper::getFormattedAssertionLine($stack);
 }
Esempio n. 3
0
 public function testDescribeObject()
 {
     $dumper = new SimpleDumper();
     $this->assertPattern('/object/i', $dumper->describeValue(new DumperDummy()));
     $this->assertPattern('/DumperDummy/i', $dumper->describeValue(new DumperDummy()));
 }
 function dump($variable, $message = false)
 {
     $formatted = SimpleDumper::dump($variable);
     if ($message) {
         $formatted = $message . "\n" . $formatted;
     }
     $this->_runner->paintFormattedMessage($formatted);
     return $variable;
 }
Esempio n. 5
0
 /**
  *    Renders the argument list as a string for
  *    messages.
  *    @param array $args    Incoming arguments.
  *    @return string        Simple description of type and value.
  */
 protected function renderArguments($args)
 {
     $descriptions = array();
     if (is_array($args)) {
         foreach ($args as $arg) {
             $dumper = new SimpleDumper();
             $descriptions[] = $dumper->describeValue($arg);
         }
     }
     return implode(', ', $descriptions);
 }
Esempio n. 6
0
 /**
  *    Extracts the last assertion that was not within
  *    Simpletest itself. The name must start with "assert".
  *    @param array $stack      List of stack frames.
  *    @access public
  *    @static
  */
 function getFormattedAssertionLine($stack)
 {
     foreach ($stack as $frame) {
         if (isset($frame['file'])) {
             if (strpos($frame['file'], SIMPLE_TEST) !== false) {
                 if (dirname($frame['file']) . '/' == SIMPLE_TEST) {
                     continue;
                 }
             }
         }
         if (SimpleDumper::_stackFrameIsAnAssertion($frame)) {
             return ' at [' . $frame['file'] . ' line ' . $frame['line'] . ']';
         }
     }
     return '';
 }
Esempio n. 7
0
 /**
  *    Will trigger a pass if both parameters refer
  *    to different variables. Fail otherwise. The objects
  *    have to be identical references though.
  *    This will fail under E_STRICT with objects. Use
  *    assertClone() for this.
  *    @param mixed $first           Object reference to check.
  *    @param mixed $second          Hopefully not the same object.
  *    @param string $message        Message to display.
  *    @return boolean               True on pass
  *    @access public
  */
 function assertCopy(&$first, &$second, $message = "%s")
 {
     $dumper = new SimpleDumper();
     $message = sprintf($message, "[" . $dumper->describeValue($first) . "] and [" . $dumper->describeValue($second) . "] should not be the same object");
     return $this->assertFalse(SimpleTestCompatibility::isReference($first, $second), $message);
 }
Esempio n. 8
0
 /**
  * Inverted identity test.
  *
  * @param $first          First object handle.
  * @param $second         Hopefully a different handle.
  * @param $message        Message to display.
  */
 public function assertNotSame($first, $second, $message = '%s')
 {
     $dumper = new SimpleDumper();
     $message = sprintf($message, '[' . $dumper->describeValue($first) . '] and [' . $dumper->describeValue($second) . '] should not be the same object');
     return $this->assert(new falseExpectation(), SimpleTestCompatibility::isReference($first, $second), $message);
 }
Esempio n. 9
0
 function contain($subject, $target, $message = '%s')
 {
     $dumper = new SimpleDumper();
     $message = "[ {$dumper->describeValue($subject)}] should contain [{$dumper->describeValue($target)}]";
     if (is_array($subject) && is_array($target)) {
         return $this->be_true(array_intersect($target, $subject) == $target, $message);
     } elseif (is_array($subject)) {
         return $this->be_true(in_array($target, $subject), $message);
     } elseif (is_string($subject)) {
         return $this->be_true(strpos($target, $subject) !== false, $message);
     }
 }
Esempio n. 10
0
 /**
  * Will be true if the value is not empty.
  *
  * @param  mixed  $value   Supposedly not empty value.
  * @param  string $message Message to display.
  *
  * @return boolean True on pass.
  *
  * @access public
  */
 public function assertNotEmpty($value, $message = '%s')
 {
     $dumper = new SimpleDumper();
     $message = sprintf($message, '[' . $dumper->describeValue($value) . '] should not be empty');
     return $this->assertFalse(empty($value), $message);
 }
Esempio n. 11
0
 public static function dump($data)
 {
     echo '<pre style="white-space: pre;padding:10px;font-family:Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;margin-bottom:10px;background-color:#eee">';
     SimpleDumper::dump($data);
     echo '</pre>';
 }
Esempio n. 12
0
 function assertNotNull($value, $message = '%s')
 {
     $dumper = new SimpleDumper();
     $message = sprintf($message, '[' . $dumper->describeValue($value) . '] should not be null');
     return $this->assertTrue(isset($value), $message);
 }
 /**
  *    Will be true if the value is not empty.
  *    @param mixed $value           Supposedly set value.
  *    @param string $message        Message to display.
  *    @return boolean               True on pass.
  *    @access public
  */
 function assertNotEmpty($value, $message = "%s")
 {
     $dumper = new SimpleDumper();
     $message = sprintf($message, "[" . $dumper->describeValue($value) . "] should not be null");
     return $this->assertTrue(!empty($value), $message);
 }
 /**
  *    Creates a human readable description of the
  *    difference between two variables. Uses a
  *    dynamic call.
  *    @param mixed $first        First variable.
  *    @param mixed $second       Value to compare with.
  *    @param boolean $identical  If true then type anomolies count.
  *    @return string             Description of difference.
  *    @access public
  */
 function describeDifference($first, $second, $identical = false)
 {
     $difference = parent::describeDifference($first, $second, $identical);
     $difference = htmlentities($difference, ENT_COMPAT, 'UTF-8');
     if ($this->getType($first) == 'String') {
         $diff = $this->describeStringDifferenceAsADiff($first, $second, $identical);
         if ($diff) {
             $difference .= PHP_EOL . PHP_EOL;
             $difference .= '<fieldset><legend>Unified diff</legend>';
             $difference .= '<div class="diff">' . $diff . '</div>';
             $difference .= '</fieldset>';
         }
     }
     return $difference;
 }