Changeset 339

Show
Ignore:
Timestamp:
03/06/07 16:32:01 (2 years ago)
Author:
mikey
Message:

add a RequestValueError? with the same id only once to the same value

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/docroot/xml.php

    r338 r339  
    4545        } 
    4646        $request->getFilteredValue(new TestFilter(), 'foo_bar'); 
     47        $request->getFilteredValue(new TestFilter(), 'foo_bar'); 
    4748        $pageFactory = new stubXJConfPageFactory(stubXJConfLoader::getInstance()); 
    4849        $processor   = new stubXMLProcessor($request, $session, $response, $pageFactory); 
  • trunk/src/main/php/net/stubbles/ipo/request/stubAbstractRequest.php

    r298 r339  
    267267            $error =& $this->getErrors($source); 
    268268            if (isset($error[$valueName]) == false) { 
    269                 $error[$valueName] = array(); 
     269                $error[$valueName] = array($fe->getError()); 
     270            } else { 
     271                $ids = array(); 
     272                foreach ($error[$valueName] as $errorValue) { 
     273                    $ids[] = $errorValue->getId(); 
     274                } 
     275                 
     276                if (in_array($fe->getError()->getId(), $ids) == false) { 
     277                    $error[$valueName][] = $fe->getError(); 
     278                } 
    270279            } 
    271280             
    272             $error[$valueName][] = $fe->getError(); 
    273281            return null; 
    274282        } 
  • trunk/src/test/php/net/stubbles/ipo/request/stubAbstractRequestTestCase.php

    r318 r339  
    77 * @subpackage  ipo_test 
    88 */ 
    9 stubClassLoader::load('net.stubbles.ipo.request.stubAbstractRequest'); 
     9stubClassLoader::load('net.stubbles.ipo.request.stubAbstractRequest', 
     10                      'net.stubbles.ipo.request.filters.stubAbstractFilter' 
     11); 
    1012Mock::generate('stubValidator'); 
    1113Mock::generate('stubFilter'); 
    1214Mock::generate('stubEventListener'); 
     15class stubTestExceptionFilter extends stubAbstractFilter 
     16{ 
     17    public function execute($value) 
     18    { 
     19        throw new stubFilterException(new stubRequestValueError('foo', array())); 
     20    } 
     21} 
    1322class stubTestRequest extends stubAbstractRequest 
    1423{ 
     
    294303        $this->assertEqual($this->request->getValueErrors(stubRequest::SOURCE_COOKIE), array('foo' => array($errorValue))); 
    295304    } 
     305     
     306    /** 
     307     * assure that the same error occurs only once in list of errors for a value 
     308     */ 
     309   public function testErrorOnlyAddedOnce() 
     310    { 
     311        $errorValue = new stubRequestValueError('foo', array()); 
     312        $this->request->setValueError('foo', $errorValue); 
     313        $this->assertEqual($this->request->getValueError('foo'), array($errorValue)); 
     314        $this->request->getFilteredValue(new stubTestExceptionFilter(), 'foo'); 
     315        $this->assertEqual($this->request->getValueError('foo'), array($errorValue)); 
     316    } 
    296317} 
    297318?>