Changeset 317

Show
Ignore:
Timestamp:
03/01/07 23:52:08 (2 years ago)
Author:
mikey
Message:

added net.stubbles.websites.stubPageElement::isAvailable(stubRequest $request, stubSession $session, stubResponse $response)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/main/php/net/stubbles/websites/memphis/stubMemphisProcessor.php

    r315 r317  
    5757        foreach ($elements as $name => $element) { 
    5858            $prefixRequest->setPrefix($name); 
     59            if ($element->isAvailable($prefixRequest, $this->session, $this->response) == false) { 
     60                continue; 
     61            } 
     62             
    5963            $element->process($prefixRequest, $this->session, $this->response); 
    6064        } 
  • trunk/src/main/php/net/stubbles/websites/stubAbstractPageElement.php

    r288 r317  
    4242        return $this->name; 
    4343    } 
     44     
     45    /** 
     46     * checks whether the page element is available or not 
     47     * 
     48     * @param   stubRequest   $request   the request data 
     49     * @param   stubSession   $session   current session 
     50     * @param   stubResponse  $response  contains response data 
     51     * @return  bool 
     52     */ 
     53    public function isAvailable(stubRequest $request, stubSession $session, stubResponse $response) 
     54    { 
     55        return true; 
     56    } 
    4457} 
    4558?> 
  • trunk/src/main/php/net/stubbles/websites/stubPageElement.php

    r267 r317  
    3232     */ 
    3333    public function getName(); 
     34     
     35    /** 
     36     * checks whether the page element is available or not 
     37     * 
     38     * @param   stubRequest   $request   the request data 
     39     * @param   stubSession   $session   current session 
     40     * @param   stubResponse  $response  contains response data 
     41     * @return  bool 
     42     */ 
     43    public function isAvailable(stubRequest $request, stubSession $session, stubResponse $response); 
    3444 
    3545    /** 
  • trunk/src/main/php/net/stubbles/websites/xml/stubXMLProcessor.php

    r315 r317  
    6262        foreach ($elements as $name => $element) { 
    6363            $prefixRequest->setPrefix($name); 
     64            if ($element->isAvailable($prefixRequest, $this->session, $this->response) == false) { 
     65                continue; 
     66            } 
     67             
    6468            $data = $element->process($prefixRequest, $this->session, $this->response); 
    6569            $xmlSerializer->serialize($data, $xmlStreamWriter, array(stubXMLSerializer::OPT_ROOT_TAG => $name)); 
  • trunk/src/test/php/net/stubbles/websites/memphis/stubMemphisProcessorTestCase.php

    r315 r317  
    9797        $pageElement1 = new MockstubPageElement(); 
    9898        $response = $this->memphisProcessor->getResponse(); 
     99        $pageElement1->setReturnValue('isAvailable', true); 
    99100        $pageElement1->expectOnce('process'); 
    100101        $pageElement2 = new MockstubPageElement(); 
     102        $pageElement2->setReturnValue('isAvailable', true); 
    101103        $pageElement2->expectOnce('process'); 
    102         $this->mockPage->setReturnValue('getElements', array('foo' => $pageElement1, 'bar' => $pageElement2)); 
     104        $pageElement3 = new MockstubPageElement(); 
     105        $pageElement3->setReturnValue('isAvailable', false); 
     106        $pageElement3->expectNever('process'); 
     107        $this->mockPage->setReturnValue('getElements', array('foo' => $pageElement1, 'bar' => $pageElement2, 'baz' => $pageElement3)); 
    103108        $return = $this->memphisProcessor->process(); 
    104109        $this->assertReference($this->memphisProcessor, $return); 
  • trunk/src/test/php/net/stubbles/websites/memphis/stubSimpleHTMLMemphisPageElementTestCase.php

    r289 r317  
    7676     
    7777    /** 
     78     * assure that a simple html memphis page element is always available 
     79     */ 
     80    public function testIsAvailable() 
     81    { 
     82        $this->assertTrue($this->simpleHTMLMemphisPageElement->isAvailable($this->mockRequest, $this->mockSession, $this->mockResponse)); 
     83    } 
     84     
     85    /** 
    7886     * assure that processing works as expected 
    7987     */ 
  • trunk/src/test/php/net/stubbles/websites/xml/stubXMLProcessorTestCase.php

    r315 r317  
    143143        $pageElement1->setReturnValue('getName', 'foo'); 
    144144        $pageElement1->setReturnValue('process', 'foo'); 
     145        $pageElement1->setReturnValue('isAvailable', true); 
    145146        $pageElement1->expectOnce('process'); 
    146147        $pageElement2 = new MockstubPageElement(); 
    147148        $pageElement2->setReturnValue('getName', 'bar'); 
    148149        $pageElement2->setReturnValue('process', 'bar'); 
     150        $pageElement2->setReturnValue('isAvailable', true); 
    149151        $pageElement2->expectOnce('process'); 
     152        $pageElement3 = new MockstubPageElement(); 
     153        $pageElement3->setReturnValue('getName', 'baz'); 
     154        $pageElement3->setReturnValue('process', 'baz'); 
     155        $pageElement3->setReturnValue('isAvailable', false); 
     156        $pageElement3->expectNever('process'); 
    150157        $this->page->addElement($pageElement1); 
    151158        $this->page->addElement($pageElement2); 
     159        $this->page->addElement($pageElement3); 
    152160        $this->mockXMLStreamWriter->expectCallcount('writeStartElement', 4); 
    153161        $this->mockXMLStreamWriter->expectCallcount('writeEndElement', 4);