Skip to content
This repository has been archived by the owner on Jan 31, 2020. It is now read-only.

Commit

Permalink
[zendframework/zendframework#2414] move test to correct directory
Browse files Browse the repository at this point in the history
- was in tests/Zend/ instead of tests/ZendTest/
  • Loading branch information
Show file tree
Hide file tree
Showing 72 changed files with 27,119 additions and 0 deletions.
244 changes: 244 additions & 0 deletions test/AbstractTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,244 @@
<?php
/**
* Zend Framework (http://framework.zend.com/)
*
* @link http://github.com/zendframework/zf2 for the canonical source repository
* @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @package Zend_Validator
*/

namespace ZendTest\Validator;

use Zend\I18n\Translator\Translator;
use Zend\Validator\AbstractValidator;

/**
* @category Zend
* @package Zend_Validator
* @subpackage UnitTests
* @group Zend_Validator
*/
class AbstractTest extends \PHPUnit_Framework_TestCase
{
/** @var AbstractValidator */
public $validator;

/**
* Whether an error occurred
*
* @var boolean
*/
protected $errorOccurred = false;

public function setUp()
{
$this->validator = new TestAsset\ConcreteValidator();
}

public function tearDown()
{
AbstractValidator::setDefaultTranslator(null, 'default');
}

public function testTranslatorNullByDefault()
{
$this->assertNull($this->validator->getTranslator());
}

public function testCanSetTranslator()
{
$this->testTranslatorNullByDefault();
set_error_handler(array($this, 'errorHandlerIgnore'));
$translator = new Translator();
restore_error_handler();
$this->validator->setTranslator($translator);
$this->assertSame($translator, $this->validator->getTranslator());
}

public function testCanSetTranslatorToNull()
{
$this->testCanSetTranslator();
set_error_handler(array($this, 'errorHandlerIgnore'));
$this->validator->setTranslator(null);
restore_error_handler();
$this->assertNull($this->validator->getTranslator());
}

public function testGlobalDefaultTranslatorNullByDefault()
{
$this->assertNull(AbstractValidator::getDefaultTranslator());
}

public function testErrorMessagesAreTranslatedWhenTranslatorPresent()
{
$loader = new TestAsset\ArrayTranslator();
$loader->translations = array(
'fooMessage' => 'This is the translated message for %value%',
);
$translator = new Translator();
$translator->getPluginManager()->setService('default', $loader);
$translator->addTranslationFile('default', null);

$this->validator->setTranslator($translator);
$this->assertFalse($this->validator->isValid('bar'));
$messages = $this->validator->getMessages();
$this->assertTrue(array_key_exists('fooMessage', $messages));
$this->assertContains('bar', $messages['fooMessage'], var_export($messages, 1));
$this->assertContains('This is the translated message for ', $messages['fooMessage']);
}

public function testCanTranslateMessagesInsteadOfKeys()
{
$loader = new TestAsset\ArrayTranslator();
$loader->translations = array(
'%value% was passed' => 'This is the translated message for %value%',
);
$translator = new Translator();
$translator->getPluginManager()->setService('default', $loader);
$translator->addTranslationFile('default', null);

$this->validator->setTranslator($translator);
$this->assertFalse($this->validator->isValid('bar'));
$messages = $this->validator->getMessages();
$this->assertTrue(array_key_exists('fooMessage', $messages));
$this->assertContains('bar', $messages['fooMessage'], var_export($messages, 1));
$this->assertContains('This is the translated message for ', $messages['fooMessage']);
}

public function testObscureValueFlagFalseByDefault()
{
$this->assertFalse($this->validator->isValueObscured());
}

public function testCanSetValueObscuredFlag()
{
$this->testObscureValueFlagFalseByDefault();
$this->validator->setValueObscured(true);
$this->assertTrue($this->validator->isValueObscured());
$this->validator->setValueObscured(false);
$this->assertFalse($this->validator->isValueObscured());
}

public function testValueIsObfuscatedWheObscureValueFlagIsTrue()
{
$this->validator->setValueObscured(true);
$this->assertFalse($this->validator->isValid('foobar'));
$messages = $this->validator->getMessages();
$this->assertTrue(isset($messages['fooMessage']));
$message = $messages['fooMessage'];
$this->assertNotContains('foobar', $message);
$this->assertContains('******', $message);
}

/**
* @group ZF-4463
*/
public function testDoesNotFailOnObjectInput()
{
$this->assertFalse($this->validator->isValid(new \stdClass()));
$messages = $this->validator->getMessages();
$this->assertTrue(array_key_exists('fooMessage', $messages));
}

public function testTranslatorEnabledPerDefault()
{
set_error_handler(array($this, 'errorHandlerIgnore'));
$translator = new Translator();
$this->validator->setTranslator($translator);
$this->assertTrue($this->validator->isTranslatorEnabled());
}

public function testCanDisableTranslator()
{
$loader = new TestAsset\ArrayTranslator();
$loader->translations = array(
'%value% was passed' => 'This is the translated message for %value%',
);
$translator = new Translator();
$translator->getPluginManager()->setService('default', $loader);
$translator->addTranslationFile('default', null);
$this->validator->setTranslator($translator);

$this->assertFalse($this->validator->isValid('bar'));
$messages = $this->validator->getMessages();
$this->assertTrue(array_key_exists('fooMessage', $messages));
$this->assertContains('bar', $messages['fooMessage']);
$this->assertContains('This is the translated message for ', $messages['fooMessage']);

$this->validator->setTranslatorEnabled(false);
$this->assertFalse($this->validator->isTranslatorEnabled());

$this->assertFalse($this->validator->isValid('bar'));
$messages = $this->validator->getMessages();
$this->assertTrue(array_key_exists('fooMessage', $messages));
$this->assertContains('bar', $messages['fooMessage']);
$this->assertContains('bar was passed', $messages['fooMessage']);
}

public function testGetMessageTemplates()
{
$messages = $this->validator->getMessageTemplates();
$this->assertEquals(
array('fooMessage' => '%value% was passed'), $messages);

$this->assertEquals(
array(TestAsset\ConcreteValidator::FOO_MESSAGE => '%value% was passed'),
$messages
);
}

public function testInvokeProxiesToIsValid()
{
$validator = new TestAsset\ConcreteValidator;
$this->assertFalse($validator('foo'));
$this->assertContains("foo was passed", $validator->getMessages());
}

public function testTranslatorMethods()
{
$translatorMock = $this->getMock('Zend\I18n\Translator\Translator');
$this->validator->setTranslator($translatorMock, 'foo');

$this->assertEquals($translatorMock, $this->validator->getTranslator());
$this->assertEquals('foo', $this->validator->getTranslatorTextDomain());
$this->assertTrue($this->validator->hasTranslator());
$this->assertTrue($this->validator->isTranslatorEnabled());

$this->validator->setTranslatorEnabled(false);
$this->assertFalse($this->validator->isTranslatorEnabled());
}

public function testDefaultTranslatorMethods()
{
$this->assertFalse(AbstractValidator::hasDefaultTranslator());
$this->assertNull(AbstractValidator::getDefaultTranslator());
$this->assertEquals('default', AbstractValidator::getDefaultTranslatorTextDomain());

$this->assertFalse($this->validator->hasTranslator());

$translatorMock = $this->getMock('Zend\I18n\Translator\Translator');
AbstractValidator::setDefaultTranslator($translatorMock, 'foo');

$this->assertEquals($translatorMock, AbstractValidator::getDefaultTranslator());
$this->assertEquals($translatorMock, $this->validator->getTranslator());
$this->assertEquals('foo', AbstractValidator::getDefaultTranslatorTextDomain());
$this->assertEquals('foo', $this->validator->getTranslatorTextDomain());
$this->assertTrue(AbstractValidator::hasDefaultTranslator());
}

/**
* Ignores a raised PHP error when in effect, but throws a flag to indicate an error occurred
*
* @param integer $errno
* @param string $errstr
* @param string $errfile
* @param integer $errline
* @param array $errcontext
* @return void
*/
public function errorHandlerIgnore($errno, $errstr, $errfile, $errline, array $errcontext)
{
$this->errorOccurred = true;
}
}
Loading

0 comments on commit 49fd3be

Please sign in to comment.