Changeset 1418
- Timestamp:
- 03/13/08 22:27:02 (4 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/main/php/net/stubbles/websites/xml/global/stubPageXMLElement.php
r1415 r1418 102 102 103 103 $xmlSerializer->serialize($formValues, $xmlStreamWriter, array(stubXMLSerializer::OPT_ROOT_TAG => 'forms')); 104 105 // write resources 106 $xmlStreamWriter->writeStartElement('resources'); 107 foreach ($this->page->getResources() as $name => $interface) { 108 $xmlSerializer->serialize($this->injector->getInstance($interface), $xmlStreamWriter, array(stubXMLSerializer::OPT_ROOT_TAG => $name)); 109 } 110 111 $xmlStreamWriter->writeEndElement(); 104 112 } 105 113 } trunk/src/main/php/net/stubbles/websites/xml/stubXMLProcessor.php
r1417 r1418 11 11 'net::stubbles::websites::xml::stubXMLResponse', 12 12 'net::stubbles::ioc::stubBinder', 13 'net::stubbles::lang::exceptions::stubRuntimeException', 13 14 'net::stubbles::util::stubRegistry', 14 15 'net::stubbles::xml::stubXMLStreamWriterFactory', … … 28 29 * @var array<string> 29 30 */ 30 protected $globalElements = array('net::stubbles::websites::xml::global::stubSessionXMLElement', 31 'net::stubbles::websites::xml::global::stubPageXMLElement', 32 'net::stubbles::websites::xml::global::stubRequestXMLElement' 33 ); 31 protected $globalElements = array(); 34 32 35 33 /** … … 46 44 parent::__construct($request, $session, $response, $pageFactory); 47 45 $this->pageDirPrefix = 'conf/'; 46 $this->configureGlobalElements(); 47 } 48 49 /** 50 * configured the global elements 51 */ 52 protected function configureGlobalElements() 53 { 54 $this->globalElements = array('net::stubbles::websites::xml::global::stubSessionXMLElement', 55 'net::stubbles::websites::xml::global::stubPageXMLElement', 56 'net::stubbles::websites::xml::global::stubRequestXMLElement' 57 ); 48 58 } 49 59 … … 51 61 * does the real processing 52 62 * 53 * @param stubPage $page the page to process 54 * @param string $pageName name of the page to process 63 * @param stubPage $page the page to process 64 * @param string $pageName name of the page to process 65 * @throws stubRuntimeException 55 66 */ 56 67 protected function doProcess(stubPage $page, $pageName) 57 68 { 58 $xmlSerializer = $this->createXMLSerializer();59 $xmlStreamWriter = $this->createXMLStreamWriter();60 $this->response->setPage($page);61 $xmlStreamWriter->writeStartElement('document');62 $xmlStreamWriter->writeAttribute('page', $pageName);63 69 $binder = stubRegistry::get(stubBinder::REGISTRY_KEY); 64 70 if (($binder instanceof stubBinder) === false) { … … 67 73 68 74 $binder->bind('stubPage')->toInstance($page); 69 $injector = $binder->getInjector(); 70 // write resources 71 $xmlStreamWriter->writeStartElement('resources'); 72 foreach ($page->getResources() as $name => $interface) { 73 $xmlSerializer->serialize($injector->getInstance($interface), $xmlStreamWriter, array(stubXMLSerializer::OPT_ROOT_TAG => $name)); 74 } 75 76 $xmlStreamWriter->writeEndElement(); 77 // write global elements 75 $injector = $binder->getInjector(); 76 $xmlStreamWriter = $this->createXMLStreamWriter(); 77 $this->response->setPage($page); 78 $xmlStreamWriter->writeStartElement('document'); 79 $xmlStreamWriter->writeAttribute('page', $pageName); 80 $xmlSerializer = $this->createXMLSerializer(); 78 81 foreach ($this->globalElements as $globalElementClassName) { 79 82 $globalElement = $injector->getInstance($globalElementClassName); … … 101 104 protected function createXMLSerializer() 102 105 { 103 $xmlSerializer = new stubXMLSerializer(); 104 return $xmlSerializer; 106 return new stubXMLSerializer(); 105 107 } 106 108 } trunk/src/test/php/net/stubbles/websites/xml/global/stubPageXMLElementTestCase.php
r1415 r1418 89 89 90 90 /** 91 * page with no elements : nothing to serialize91 * page with no elements and no resources: nothing to serialize 92 92 * 93 93 * @test 94 94 */ 95 public function pageWithoutElements ()95 public function pageWithoutElementsAndRespources() 96 96 { 97 97 $this->mockRequest->expects($this->never())->method('isCancelled'); … … 100 100 ->method('serialize') 101 101 ->with($this->equalTo(array()), $this->equalTo($this->mockXMLStreamWriter)); 102 $this->mockXMLStreamWriter->expects($this->once())->method('writeStartElement'); 103 $this->mockXMLStreamWriter->expects($this->once())->method('writeEndElement'); 102 104 $this->pageXMLElement->append($this->mockXMLStreamWriter, $this->mockXMLSerializer); 103 105 } 104 106 105 107 /** 106 * page with elements : serialize return values108 * page with elements but without resources: serialize return values 107 109 * 108 110 */ 109 public function pageWithElements ()111 public function pageWithElementsAndWithoutResources() 110 112 { 111 113 $this->mockRequest->expects($this->once())->method('isCancelled')->will($this->returnValue(false)); … … 137 139 ->method('serialize') 138 140 ->with($this->equalTo(array('baz' => array('foo'))), $this->equalTo($this->mockXMLStreamWriter)); 141 $this->mockXMLStreamWriter->expects($this->once())->method('writeStartElement'); 142 $this->mockXMLStreamWriter->expects($this->once())->method('writeEndElement'); 139 143 $this->pageXMLElement->append($this->mockXMLStreamWriter, $this->mockXMLSerializer); 140 144 } … … 161 165 162 166 $this->mockXMLSerializer->expects($this->never())->method('serialize'); 167 $this->mockXMLStreamWriter->expects($this->never())->method('writeStartElement'); 168 $this->mockXMLStreamWriter->expects($this->never())->method('writeEndElement'); 163 169 $this->pageXMLElement->append($this->mockXMLStreamWriter, $this->mockXMLSerializer); 170 } 171 172 /** 173 * page with resources but no elements: serialize resources 174 * 175 * @test 176 */ 177 public function pageWithResources() 178 { 179 $this->page->setResources(array('foo' => 'stdClass')); 180 181 $this->mockRequest->expects($this->never())->method('isCancelled'); 182 $this->mockInjector->expects($this->never())->method('handleInjections'); 183 $resource = new stdClass(); 184 $this->mockInjector->expects($this->once())->method('getInstance')->with($this->equalTo('stdClass'))->will($this->returnValue($resource)); 185 $this->mockXMLSerializer->expects($this->at(0)) 186 ->method('serialize') 187 ->with($this->equalTo(array()), $this->equalTo($this->mockXMLStreamWriter)); 188 $this->mockXMLSerializer->expects($this->at(1)) 189 ->method('serialize') 190 ->with($this->equalTo($resource), $this->equalTo($this->mockXMLStreamWriter), $this->equalTo(array(stubXMLSerializer::OPT_ROOT_TAG => 'foo'))); 191 $this->mockXMLStreamWriter->expects($this->once())->method('writeStartElement'); 192 $this->mockXMLStreamWriter->expects($this->once())->method('writeEndElement'); 193 $this->pageXMLElement->append($this->mockXMLStreamWriter, $this->mockXMLSerializer); 194 164 195 } 165 196 }
