public function testGetMessages() { $getMessages = self::getMethod('getMessages'); $messages = $getMessages->invokeArgs($this->action, array($this->request)); $this->assertEquals(0, $messages->size()); $messages = new \Phruts\Action\ActionMessages(); $messages->add('key1', new \Phruts\Action\ActionMessage('message')); $messages->add('key2', new \Phruts\Action\ActionMessage('message')); $saveMessages = self::getMethod('saveMessages'); $saveMessages->invokeArgs($this->action, array($this->request, $messages)); $this->assertNotEmpty($this->request->attributes->get(\Phruts\Util\Globals::MESSAGE_KEY)); $result = $getMessages->invokeArgs($this->action, array($this->request)); $this->assertNotEmpty($result); $this->assertEquals(2, $result->size()); }
/** * Adds the specified messages keys into the appropriate request * attribute for use by the <html:messages> tag (if * messages="true" is set), if any messages are required. * Initialize the attribute if it has not already been. * Otherwise, ensure that the request attribute is not set. * * @param \Symfony\Component\HttpFoundation\Request request The actionKernel request we are processing * @param \Phruts\Action\ActionMessages messages Messages object * @since Struts 1.2.1 */ protected function addMessages(Request $request, ActionMessages $messages) { // get any existing errors from the request, or make a new one $requestMessages = $request->attributes->get(\Phruts\Util\Globals::MESSAGE_KEY); //\Phruts\Action\ActionMessages if ($requestMessages == null) { $requestMessages = new \Phruts\Action\ActionMessages(); } // add incoming errors $requestMessages->addMessages($messages); // if still empty, just wipe it out from the request if ($requestMessages->isEmpty()) { $request->attributes->remove(\Phruts\Util\Globals::MESSAGE_KEY); return; } // Save the errors $request->attributes->set(\Phruts\Util\Globals::MESSAGE_KEY, $requestMessages); }