_validator = new Zend_Validate_NotEmpty(); } /** * Ensures that the validator follows expected behavior * * ZF-6708 introduces a change for validating integer 0; it is a valid * integer value. '0' is also valid. * * @group ZF-6708 * @return void */ public function testBasic() { $valuesExpected = array( array('word', true), array('', false), array(' ', false), array(' word ', true), array('0', true), array(1, true), array(0, true), array(true, true), array(false, false), array(null, false), array(array(), false), array(array(5), true), ); foreach ($valuesExpected as $i => $element) { $this->assertEquals($element[1], $this->_validator->isValid($element[0]), "Failed test #$i"); } } /** * Ensures that the validator follows expected behavior * * @return void */ public function testOnlyBoolean() { $this->_validator->setType(Zend_Validate_NotEmpty::BOOLEAN); $this->assertFalse($this->_validator->isValid(false)); $this->assertTrue($this->_validator->isValid(true)); $this->assertTrue($this->_validator->isValid(0)); $this->assertTrue($this->_validator->isValid(1)); $this->assertTrue($this->_validator->isValid(0.0)); $this->assertTrue($this->_validator->isValid(1.0)); $this->assertTrue($this->_validator->isValid('')); $this->assertTrue($this->_validator->isValid('abc')); $this->assertTrue($this->_validator->isValid('0')); $this->assertTrue($this->_validator->isValid('1')); $this->assertTrue($this->_validator->isValid(array())); $this->assertTrue($this->_validator->isValid(array('xxx'))); $this->assertTrue($this->_validator->isValid(null)); } /** * Ensures that the validator follows expected behavior * * @return void */ public function testOnlyInteger() { $this->_validator->setType(Zend_Validate_NotEmpty::INTEGER); $this->assertTrue($this->_validator->isValid(false)); $this->assertTrue($this->_validator->isValid(true)); $this->assertFalse($this->_validator->isValid(0)); $this->assertTrue($this->_validator->isValid(1)); $this->assertTrue($this->_validator->isValid(0.0)); $this->assertTrue($this->_validator->isValid(1.0)); $this->assertTrue($this->_validator->isValid('')); $this->assertTrue($this->_validator->isValid('abc')); $this->assertTrue($this->_validator->isValid('0')); $this->assertTrue($this->_validator->isValid('1')); $this->assertTrue($this->_validator->isValid(array())); $this->assertTrue($this->_validator->isValid(array('xxx'))); $this->assertTrue($this->_validator->isValid(null)); } /** * Ensures that the validator follows expected behavior * * @return void */ public function testOnlyFloat() { $this->_validator->setType(Zend_Validate_NotEmpty::FLOAT); $this->assertTrue($this->_validator->isValid(false)); $this->assertTrue($this->_validator->isValid(true)); $this->assertTrue($this->_validator->isValid(0)); $this->assertTrue($this->_validator->isValid(1)); $this->assertFalse($this->_validator->isValid(0.0)); $this->assertTrue($this->_validator->isValid(1.0)); $this->assertTrue($this->_validator->isValid('')); $this->assertTrue($this->_validator->isValid('abc')); $this->assertTrue($this->_validator->isValid('0')); $this->assertTrue($this->_validator->isValid('1')); $this->assertTrue($this->_validator->isValid(array())); $this->assertTrue($this->_validator->isValid(array('xxx'))); $this->assertTrue($this->_validator->isValid(null)); } /** * Ensures that the validator follows expected behavior * * @return void */ public function testOnlyString() { $this->_validator->setType(Zend_Validate_NotEmpty::STRING); $this->assertTrue($this->_validator->isValid(false)); $this->assertTrue($this->_validator->isValid(true)); $this->assertTrue($this->_validator->isValid(0)); $this->assertTrue($this->_validator->isValid(1)); $this->assertTrue($this->_validator->isValid(0.0)); $this->assertTrue($this->_validator->isValid(1.0)); $this->assertFalse($this->_validator->isValid('')); $this->assertTrue($this->_validator->isValid('abc')); $this->assertTrue($this->_validator->isValid('0')); $this->assertTrue($this->_validator->isValid('1')); $this->assertTrue($this->_validator->isValid(array())); $this->assertTrue($this->_validator->isValid(array('xxx'))); $this->assertTrue($this->_validator->isValid(null)); } /** * Ensures that the validator follows expected behavior * * @return void */ public function testOnlyZero() { $this->_validator->setType(Zend_Validate_NotEmpty::ZERO); $this->assertTrue($this->_validator->isValid(false)); $this->assertTrue($this->_validator->isValid(true)); $this->assertTrue($this->_validator->isValid(0)); $this->assertTrue($this->_validator->isValid(1)); $this->assertTrue($this->_validator->isValid(0.0)); $this->assertTrue($this->_validator->isValid(1.0)); $this->assertTrue($this->_validator->isValid('')); $this->assertTrue($this->_validator->isValid('abc')); $this->assertFalse($this->_validator->isValid('0')); $this->assertTrue($this->_validator->isValid('1')); $this->assertTrue($this->_validator->isValid(array())); $this->assertTrue($this->_validator->isValid(array('xxx'))); $this->assertTrue($this->_validator->isValid(null)); } /** * Ensures that the validator follows expected behavior * * @return void */ public function testOnlyArray() { $this->_validator->setType(Zend_Validate_NotEmpty::EMPTY_ARRAY); $this->assertTrue($this->_validator->isValid(false)); $this->assertTrue($this->_validator->isValid(true)); $this->assertTrue($this->_validator->isValid(0)); $this->assertTrue($this->_validator->isValid(1)); $this->assertTrue($this->_validator->isValid(0.0)); $this->assertTrue($this->_validator->isValid(1.0)); $this->assertTrue($this->_validator->isValid('')); $this->assertTrue($this->_validator->isValid('abc')); $this->assertTrue($this->_validator->isValid('0')); $this->assertTrue($this->_validator->isValid('1')); $this->assertFalse($this->_validator->isValid(array())); $this->assertTrue($this->_validator->isValid(array('xxx'))); $this->assertTrue($this->_validator->isValid(null)); } /** * Ensures that the validator follows expected behavior * * @return void */ public function testOnlyNull() { $this->_validator->setType(Zend_Validate_NotEmpty::NULL); $this->assertTrue($this->_validator->isValid(false)); $this->assertTrue($this->_validator->isValid(true)); $this->assertTrue($this->_validator->isValid(0)); $this->assertTrue($this->_validator->isValid(1)); $this->assertTrue($this->_validator->isValid(0.0)); $this->assertTrue($this->_validator->isValid(1.0)); $this->assertTrue($this->_validator->isValid('')); $this->assertTrue($this->_validator->isValid('abc')); $this->assertTrue($this->_validator->isValid('0')); $this->assertTrue($this->_validator->isValid('1')); $this->assertTrue($this->_validator->isValid(array())); $this->assertTrue($this->_validator->isValid(array('xxx'))); $this->assertFalse($this->_validator->isValid(null)); } /** * Ensures that the validator follows expected behavior * * @return void */ public function testOnlyPHP() { $this->_validator->setType(Zend_Validate_NotEmpty::PHP); $this->assertFalse($this->_validator->isValid(false)); $this->assertTrue($this->_validator->isValid(true)); $this->assertFalse($this->_validator->isValid(0)); $this->assertTrue($this->_validator->isValid(1)); $this->assertFalse($this->_validator->isValid(0.0)); $this->assertTrue($this->_validator->isValid(1.0)); $this->assertFalse($this->_validator->isValid('')); $this->assertTrue($this->_validator->isValid('abc')); $this->assertFalse($this->_validator->isValid('0')); $this->assertTrue($this->_validator->isValid('1')); $this->assertFalse($this->_validator->isValid(array())); $this->assertTrue($this->_validator->isValid(array('xxx'))); $this->assertFalse($this->_validator->isValid(null)); } /** * Ensures that the validator follows expected behavior * * @return void */ public function testOnlySpace() { $this->_validator->setType(Zend_Validate_NotEmpty::SPACE); $this->assertTrue($this->_validator->isValid(false)); $this->assertTrue($this->_validator->isValid(true)); $this->assertTrue($this->_validator->isValid(0)); $this->assertTrue($this->_validator->isValid(1)); $this->assertTrue($this->_validator->isValid(0.0)); $this->assertTrue($this->_validator->isValid(1.0)); $this->assertTrue($this->_validator->isValid('')); $this->assertTrue($this->_validator->isValid('abc')); $this->assertTrue($this->_validator->isValid('0')); $this->assertTrue($this->_validator->isValid('1')); $this->assertTrue($this->_validator->isValid(array())); $this->assertTrue($this->_validator->isValid(array('xxx'))); $this->assertTrue($this->_validator->isValid(null)); } /** * Ensures that the validator follows expected behavior * * @return void */ public function testOnlyAll() { $this->_validator->setType(Zend_Validate_NotEmpty::ALL); $this->assertFalse($this->_validator->isValid(false)); $this->assertTrue($this->_validator->isValid(true)); $this->assertFalse($this->_validator->isValid(0)); $this->assertTrue($this->_validator->isValid(1)); $this->assertFalse($this->_validator->isValid(0.0)); $this->assertTrue($this->_validator->isValid(1.0)); $this->assertFalse($this->_validator->isValid('')); $this->assertTrue($this->_validator->isValid('abc')); $this->assertFalse($this->_validator->isValid('0')); $this->assertTrue($this->_validator->isValid('1')); $this->assertFalse($this->_validator->isValid(array())); $this->assertTrue($this->_validator->isValid(array('xxx'))); $this->assertFalse($this->_validator->isValid(null)); } /** * Ensures that the validator follows expected behavior * * @return void */ public function testArrayConstantNotation() { $filter = new Zend_Validate_NotEmpty( array( 'type' => array( Zend_Validate_NotEmpty::ZERO, Zend_Validate_NotEmpty::STRING, Zend_Validate_NotEmpty::BOOLEAN ) ) ); $this->assertFalse($filter->isValid(false)); $this->assertTrue($filter->isValid(true)); $this->assertTrue($filter->isValid(0)); $this->assertTrue($filter->isValid(1)); $this->assertTrue($filter->isValid(0.0)); $this->assertTrue($filter->isValid(1.0)); $this->assertFalse($filter->isValid('')); $this->assertTrue($filter->isValid('abc')); $this->assertFalse($filter->isValid('0')); $this->assertTrue($filter->isValid('1')); $this->assertTrue($filter->isValid(array())); $this->assertTrue($filter->isValid(array('xxx'))); $this->assertTrue($filter->isValid(null)); } /** * Ensures that the validator follows expected behavior * * @return void */ public function testArrayConfigNotation() { $filter = new Zend_Validate_NotEmpty( array( 'type' => array( Zend_Validate_NotEmpty::ZERO, Zend_Validate_NotEmpty::STRING, Zend_Validate_NotEmpty::BOOLEAN), 'test' => false ) ); $this->assertFalse($filter->isValid(false)); $this->assertTrue($filter->isValid(true)); $this->assertTrue($filter->isValid(0)); $this->assertTrue($filter->isValid(1)); $this->assertTrue($filter->isValid(0.0)); $this->assertTrue($filter->isValid(1.0)); $this->assertFalse($filter->isValid('')); $this->assertTrue($filter->isValid('abc')); $this->assertFalse($filter->isValid('0')); $this->assertTrue($filter->isValid('1')); $this->assertTrue($filter->isValid(array())); $this->assertTrue($filter->isValid(array('xxx'))); $this->assertTrue($filter->isValid(null)); } /** * Ensures that the validator follows expected behavior * * @return void */ public function testMultiConstantNotation() { $filter = new Zend_Validate_NotEmpty( Zend_Validate_NotEmpty::ZERO + Zend_Validate_NotEmpty::STRING + Zend_Validate_NotEmpty::BOOLEAN ); $this->assertFalse($filter->isValid(false)); $this->assertTrue($filter->isValid(true)); $this->assertTrue($filter->isValid(0)); $this->assertTrue($filter->isValid(1)); $this->assertTrue($filter->isValid(0.0)); $this->assertTrue($filter->isValid(1.0)); $this->assertFalse($filter->isValid('')); $this->assertTrue($filter->isValid('abc')); $this->assertFalse($filter->isValid('0')); $this->assertTrue($filter->isValid('1')); $this->assertTrue($filter->isValid(array())); $this->assertTrue($filter->isValid(array('xxx'))); $this->assertTrue($filter->isValid(null)); } /** * Ensures that the validator follows expected behavior * * @return void */ public function testStringNotation() { $filter = new Zend_Validate_NotEmpty( array( 'type' => array('zero', 'string', 'boolean') ) ); $this->assertFalse($filter->isValid(false)); $this->assertTrue($filter->isValid(true)); $this->assertTrue($filter->isValid(0)); $this->assertTrue($filter->isValid(1)); $this->assertTrue($filter->isValid(0.0)); $this->assertTrue($filter->isValid(1.0)); $this->assertFalse($filter->isValid('')); $this->assertTrue($filter->isValid('abc')); $this->assertFalse($filter->isValid('0')); $this->assertTrue($filter->isValid('1')); $this->assertTrue($filter->isValid(array())); $this->assertTrue($filter->isValid(array('xxx'))); $this->assertTrue($filter->isValid(null)); } /** * Ensures that the validator follows expected behavior * * @return void */ public function testSingleStringNotation() { $filter = new Zend_Validate_NotEmpty( 'boolean' ); $this->assertFalse($filter->isValid(false)); $this->assertTrue($filter->isValid(true)); $this->assertTrue($filter->isValid(0)); $this->assertTrue($filter->isValid(1)); $this->assertTrue($filter->isValid(0.0)); $this->assertTrue($filter->isValid(1.0)); $this->assertTrue($filter->isValid('')); $this->assertTrue($filter->isValid('abc')); $this->assertTrue($filter->isValid('0')); $this->assertTrue($filter->isValid('1')); $this->assertTrue($filter->isValid(array())); $this->assertTrue($filter->isValid(array('xxx'))); $this->assertTrue($filter->isValid(null)); } /** * Ensures that the validator follows expected behavior * * @return void */ public function testConfigObject() { require_once 'Zend/Config.php'; $options = array('type' => 'all'); $config = new Zend_Config($options); $filter = new Zend_Validate_NotEmpty( $config ); $this->assertFalse($filter->isValid(false)); $this->assertTrue($filter->isValid(true)); $this->assertFalse($filter->isValid(0)); $this->assertTrue($filter->isValid(1)); $this->assertFalse($filter->isValid(0.0)); $this->assertTrue($filter->isValid(1.0)); $this->assertFalse($filter->isValid('')); $this->assertTrue($filter->isValid('abc')); $this->assertFalse($filter->isValid('0')); $this->assertTrue($filter->isValid('1')); $this->assertFalse($filter->isValid(array())); $this->assertTrue($filter->isValid(array('xxx'))); $this->assertFalse($filter->isValid(null)); } /** * Ensures that the validator follows expected behavior * * @return void */ public function testSettingFalseType() { try { $this->_validator->setType(true); $this->fail(); } catch (Zend_Exception $e) { $this->assertContains('Unknown', $e->getMessage()); } } /** * Ensures that the validator follows expected behavior * * @return void */ public function testGetType() { $this->assertEquals(493, $this->_validator->getType()); } /** * @group ZF-3236 */ public function testStringWithZeroShouldNotBeTreatedAsEmpty() { $this->assertTrue($this->_validator->isValid('0')); } /** * Ensures that getMessages() returns expected default value * * @return void */ public function testGetMessages() { $this->assertEquals(array(), $this->_validator->getMessages()); } /** * @ZF-4352 */ public function testNonStringValidation() { $v2 = new Zend_Validate_NotEmpty(); $this->assertTrue($this->_validator->isValid($v2)); } /** * @ZF-8767 * * @return void */ public function testZF8767() { $valid = new Zend_Validate_NotEmpty(Zend_Validate_NotEmpty::STRING); $this->assertFalse($valid->isValid('')); $messages = $valid->getMessages(); $this->assertTrue(array_key_exists('isEmpty', $messages)); $this->assertContains("can't be empty", $messages['isEmpty']); } /** * @return void */ public function testObjects() { $valid = new Zend_Validate_NotEmpty(Zend_Validate_NotEmpty::STRING); $object = new ClassTest1(); $this->assertFalse($valid->isValid($object)); $valid = new Zend_Validate_NotEmpty(Zend_Validate_NotEmpty::OBJECT); $this->assertTrue($valid->isValid($object)); } /** * @return void */ public function testStringObjects() { $valid = new Zend_Validate_NotEmpty(Zend_Validate_NotEmpty::STRING); $object = new ClassTest2(); $this->assertFalse($valid->isValid($object)); $valid = new Zend_Validate_NotEmpty(Zend_Validate_NotEmpty::OBJECT_STRING); $this->assertTrue($valid->isValid($object)); $object = new ClassTest3(); $this->assertFalse($valid->isValid($object)); } } class ClassTest1 {} class ClassTest2 { public function __toString() { return 'Test'; } } class ClassTest3 { public function toString() { return ''; } } // Call Zend_Validate_NotEmptyTest::main() if this source file is executed directly. if (PHPUnit_MAIN_METHOD == "Zend_Validate_NotEmptyTest::main") { Zend_Validate_NotEmptyTest::main(); }