Changeset 1584
- Timestamp:
- 05/24/08 02:50:30 (3 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/main/php/net/stubbles/ipo/request/stubRequestValueError.php
r1326 r1584 7 7 * @subpackage ipo_request 8 8 */ 9 stubClassLoader::load('net::stubbles::lang::stubClonable', 9 stubClassLoader::load('net::stubbles::ipo::request::stubRequestValueErrorMessage', 10 'net::stubbles::lang::stubClonable', 10 11 'net::stubbles::lang::exceptions::stubIllegalArgumentException' 11 12 ); … … 107 108 * returns all messages 108 109 * 109 * @return array<st ring,string>110 * @return array<stubRequestValueErrorMessage> 110 111 * @XMLTag(tagName='messages') 111 112 */ … … 118 119 } 119 120 120 $messages[ $locale] = $message;121 $messages[] = new stubRequestValueErrorMessage($locale, $message); 121 122 } 122 123 trunk/src/main/resources/xsl/stub.xsl
r1583 r1584 442 442 <xsl:text>']/errors/error</xsl:text> 443 443 </xsl:attribute> 444 <br /><span class="form_error"> 445 <ixsl:value-of> 446 <xsl:attribute name="select"> 447 <xsl:text>/document/request/value[@name = '</xsl:text> 448 <xsl:value-of select="$id"/> 449 <xsl:text>_</xsl:text> 450 <xsl:value-of select="@name"/> 451 <xsl:text>']/errors/error/messages/</xsl:text> 452 <xsl:choose> 453 <xsl:when test="$lang"> 444 <br/><span class="form_error"> 445 <ixsl:choose> 446 <ixsl:when> 447 <xsl:attribute name="test"> 448 <xsl:text>messages/message[@locale = '</xsl:text> 449 <xsl:value-of select="$lang"/> 450 <xsl:text>']</xsl:text> 451 </xsl:attribute> 452 <ixsl:value-of> 453 <xsl:attribute name="select"> 454 <xsl:text>messages/message[@locale = '</xsl:text> 454 455 <xsl:value-of select="$lang"/> 455 </xsl:when> 456 <xsl:when test="$lang_base"> 456 <xsl:text>']/content</xsl:text> 457 </xsl:attribute> 458 </ixsl:value-of> 459 </ixsl:when> 460 <ixsl:when> 461 <xsl:attribute name="test"> 462 <xsl:text>messages/message[@locale = '</xsl:text> 463 <xsl:value-of select="$lang_base"/> 464 <xsl:text>']</xsl:text> 465 </xsl:attribute> 466 <ixsl:value-of> 467 <xsl:attribute name="select"> 468 <xsl:text>messages/message[@locale = '</xsl:text> 457 469 <xsl:value-of select="$lang_base"/> 458 </xsl:when> 459 <xsl:otherwise> 460 <xsl:text>default</xsl:text> 461 </xsl:otherwise> 462 </xsl:choose> 463 </xsl:attribute> 464 </ixsl:value-of> 470 <xsl:text>']/content</xsl:text> 471 </xsl:attribute> 472 </ixsl:value-of> 473 </ixsl:when> 474 <ixsl:otherwise> 475 <ixsl:value-of select="messages/message[@locale = 'default']/content"/> 476 </ixsl:otherwise> 477 </ixsl:choose> 465 478 </span> 466 479 </ixsl:for-each> trunk/src/test/php/net/stubbles/ipo/request/stubRequestValueErrorTestCase.php
r1326 r1584 41 41 public function setUp() 42 42 { 43 $messages = array('en_ EN'=> 'This is an error with criteria {foo} regarding {bar}.',43 $messages = array('en_*' => 'This is an error with criteria {foo} regarding {bar}.', 44 44 'de_DE' => 'Dies ist ein Fehler des Kriteriums {foo} betreffend {bar}.' 45 45 ); 46 46 $this->withValueKeys = new stubRequestValueError('foo', $messages, array('foo', 'bar')); 47 $this->withoutValueKeys = new stubRequestValueError('bar', array('en_ EN' => 'This is an error message.'));47 $this->withoutValueKeys = new stubRequestValueError('bar', array('en_*' => 'This is an error message.')); 48 48 } 49 49 … … 66 66 public function hasMessages() 67 67 { 68 $this->assertTrue($this->withValueKeys->hasMessage('en_ EN'));68 $this->assertTrue($this->withValueKeys->hasMessage('en_*')); 69 69 $this->assertTrue($this->withValueKeys->hasMessage('de_DE')); 70 70 $this->assertFalse($this->withValueKeys->hasMessage('fr_FR')); 71 71 72 $this->assertTrue($this->withoutValueKeys->hasMessage('en_ EN'));72 $this->assertTrue($this->withoutValueKeys->hasMessage('en_*')); 73 73 $this->assertFalse($this->withoutValueKeys->hasMessage('de_DE')); 74 74 $this->assertFalse($this->withoutValueKeys->hasMessage('fr_FR')); … … 82 82 public function getMessage() 83 83 { 84 $this->assertEquals('This is an error with criteria regarding .', $this->withValueKeys->getMessage('en_ EN'));84 $this->assertEquals('This is an error with criteria regarding .', $this->withValueKeys->getMessage('en_*')); 85 85 $this->assertEquals('Dies ist ein Fehler des Kriteriums betreffend .', $this->withValueKeys->getMessage('de_DE')); 86 86 $this->assertNull($this->withValueKeys->getMessage('fr_FR')); 87 87 88 88 $this->withValueKeys->setValues(array('foo' => 'dummy1', 'bar' => 'dummy2')); 89 $this->assertEquals('This is an error with criteria dummy1 regarding dummy2.', $this->withValueKeys->getMessage('en_ EN'));89 $this->assertEquals('This is an error with criteria dummy1 regarding dummy2.', $this->withValueKeys->getMessage('en_*')); 90 90 $this->assertEquals('Dies ist ein Fehler des Kriteriums dummy1 betreffend dummy2.', $this->withValueKeys->getMessage('de_DE')); 91 91 $this->assertNull($this->withValueKeys->getMessage('fr_FR')); 92 92 93 93 $this->withValueKeys->setValues(array('foo' => array('dummy3', 'dummy4'), 'bar' => 'dummy2')); 94 $this->assertEquals('This is an error with criteria dummy3, dummy4 regarding dummy2.', $this->withValueKeys->getMessage('en_ EN'));94 $this->assertEquals('This is an error with criteria dummy3, dummy4 regarding dummy2.', $this->withValueKeys->getMessage('en_*')); 95 95 $this->assertEquals('Dies ist ein Fehler des Kriteriums dummy3, dummy4 betreffend dummy2.', $this->withValueKeys->getMessage('de_DE')); 96 96 $this->assertNull($this->withValueKeys->getMessage('fr_FR')); 97 97 98 98 $this->withValueKeys->setValues(array('foo' => new stdClass(), 'bar' => new TestRequestValueErrorCriteria())); 99 $this->assertEquals('This is an error with criteria stdClass regarding very hypercritical stuff.', $this->withValueKeys->getMessage('en_ EN'));99 $this->assertEquals('This is an error with criteria stdClass regarding very hypercritical stuff.', $this->withValueKeys->getMessage('en_*')); 100 100 $this->assertEquals('Dies ist ein Fehler des Kriteriums stdClass betreffend very hypercritical stuff.', $this->withValueKeys->getMessage('de_DE')); 101 101 $this->assertNull($this->withValueKeys->getMessage('fr_FR')); 102 102 103 $this->assertEquals('This is an error message.', $this->withoutValueKeys->getMessage('en_ EN'));103 $this->assertEquals('This is an error message.', $this->withoutValueKeys->getMessage('en_*')); 104 104 $this->assertNull($this->withoutValueKeys->getMessage('de_DE')); 105 105 $this->assertNull($this->withoutValueKeys->getMessage('fr_FR')); … … 113 113 public function getMessages() 114 114 { 115 $result = $this->withValueKeys->setValues(array('foo' => 'dummy1', 'bar' => 'dummy2')); 116 $messages = array('en_EN' => 'This is an error with criteria dummy1 regarding dummy2.', 117 'de_DE' => 'Dies ist ein Fehler des Kriteriums dummy1 betreffend dummy2.' 118 ); 119 $this->assertEquals($messages, $this->withValueKeys->getMessages()); 115 $result = $this->withValueKeys->setValues(array('foo' => 'dummy1', 'bar' => 'dummy2')); 116 $messages = $this->withValueKeys->getMessages(); 117 $this->assertEquals(2, count($messages)); 118 $this->assertEquals('en_*', $messages[0]->getLocale()); 119 $this->assertEquals('This is an error with criteria dummy1 regarding dummy2.', $messages[0]->getMessage()); 120 $this->assertEquals('de_DE', $messages[1]->getLocale()); 121 $this->assertEquals('Dies ist ein Fehler des Kriteriums dummy1 betreffend dummy2.', $messages[1]->getMessage()); 120 122 $this->assertSame($this->withValueKeys, $result); 121 123 122 $result = $this->withoutValueKeys->setValues(array('foo' => 'dummy1', 'bar' => 'dummy2')); 123 $this->assertEquals(array('en_EN' => 'This is an error message.'), $this->withoutValueKeys->getMessages()); 124 $result = $this->withoutValueKeys->setValues(array('foo' => 'dummy1', 'bar' => 'dummy2')); 125 $messages = $this->withoutValueKeys->getMessages(); 126 $this->assertEquals(1, count($messages)); 127 $this->assertEquals('en_*', $messages[0]->getLocale()); 128 $this->assertEquals('This is an error message.', $messages[0]->getMessage()); 124 129 $this->assertSame($this->withoutValueKeys, $result); 125 130 }
