public function testMaximumErrorMessageLength() { if (!extension_loaded('intl')) { $this->markTestSkipped('ext/intl not enabled'); } $this->assertEquals(-1, AbstractValidator::getMessageLength()); AbstractValidator::setMessageLength(10); $this->assertEquals(10, AbstractValidator::getMessageLength()); $loader = new TestAsset\ArrayTranslator(); $loader->translations = array('Invalid type given. String expected' => 'This is the translated message for %value%'); $translator = new TestAsset\Translator(); $translator->getPluginManager()->setService('default', $loader); $translator->addTranslationFile('default', null); $this->validator->setTranslator($translator); $this->assertFalse($this->validator->isValid(123)); $messages = $this->validator->getMessages(); $this->assertTrue(array_key_exists(Alpha::INVALID, $messages)); $this->assertEquals('This is...', $messages[Alpha::INVALID]); }
/** * @group ZF-2861 */ public function testHostnameValidatorMessagesShouldBeTranslated() { if (!extension_loaded('intl')) { $this->markTestSkipped('ext/intl not enabled'); } $hostnameValidator = new Hostname(); $translations = array('hostnameIpAddressNotAllowed' => 'hostnameIpAddressNotAllowed translation', 'hostnameUnknownTld' => 'The input appears to be a DNS hostname but cannot match TLD against known list', 'hostnameDashCharacter' => 'hostnameDashCharacter translation', 'hostnameInvalidHostnameSchema' => 'hostnameInvalidHostnameSchema translation', 'hostnameUndecipherableTld' => 'hostnameUndecipherableTld translation', 'hostnameInvalidHostname' => 'hostnameInvalidHostname translation', 'hostnameInvalidLocalName' => 'hostnameInvalidLocalName translation', 'hostnameLocalNameNotAllowed' => 'hostnameLocalNameNotAllowed translation'); $loader = new TestAsset\ArrayTranslator(); $loader->translations = $translations; $translator = new TestAsset\Translator(); $translator->getPluginManager()->setService('test', $loader); $translator->addTranslationFile('test', null); $this->validator->setTranslator($translator)->setHostnameValidator($hostnameValidator); $this->validator->isValid('_XX.!!3xx@0.239,512.777'); $messages = $hostnameValidator->getMessages(); $found = false; foreach ($messages as $code => $message) { if (array_key_exists($code, $translations)) { $this->assertEquals($translations[$code], $message); $found = true; break; } } $this->assertTrue($found); }
/** * Test changed with ZF-6676, as IP check is only involved when IP patterns match * * @group ZF-2861 * @group ZF-6676 */ public function testValidatorMessagesShouldBeTranslated() { if (!extension_loaded('intl')) { $this->markTestSkipped('ext/intl not enabled'); } $translations = array('hostnameInvalidLocalName' => 'The input does not appear to be a valid local network name'); $loader = new TestAsset\ArrayTranslator(); $loader->translations = $translations; $translator = new TestAsset\Translator(); $translator->getPluginManager()->setService('default', $loader); $translator->addTranslationFile('default', null); $this->validator->setTranslator($translator); $this->validator->isValid('0.239,512.777'); $messages = $this->validator->getMessages(); $found = false; foreach ($messages as $code => $message) { if (array_key_exists($code, $translations)) { $found = true; break; } } $this->assertTrue($found); $this->assertEquals($translations[$code], $message); }
public function testCanDisableTranslator() { if (!extension_loaded('intl')) { $this->markTestSkipped('ext/intl not enabled'); } $loader = new TestAsset\ArrayTranslator(); $loader->translations = array('%value% was passed' => 'This is the translated message for %value%'); $translator = new TestAsset\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']); }