To test flash message, check session: $this->assertEqual($this->TestController->Session->read('Message.flash.message'), __('Saved.'));
On Sunday, March 11, 2012 10:13:10 PM UTC+1, andrewperk wrote: > > In case someone finds this post later, I found an easier way to test html > tags rather than using assertTags from the view by using assertRegExp or > assertPattern: > > $result = $this->testAction('url', array('return'=>'view')); > $this->assertRegExp('/<input name="data\[Model\]\[field\]"/', $result); > > Just remember the pattern passed in as the first param if it uses any > brackets like the data[Model][field] does you need to escape them first > otherwise it picks it up as a delimiter. > > I still haven't found a way to test what the setFlash messages are, only > that the method has been called. > > $this->view and $this->contents are always null as well when using > redirect. > > On Saturday, March 10, 2012 7:56:37 PM UTC-8, andrewperk wrote: >> >> Hello, >> >> I have a couple of questions about testing certain things: >> >> Flash Messages: I know how to test that the setFlash method has ran >> using mocks, but is there a way to verify that it contains the correct >> message? >> >> assertTags() Views: I use testAction to return the view then use >> assertTags to test that the view contains certain HTML. But, Is there >> a way to just test that the view contains only a part of the html >> rather than having to test the whole view? >> >> Currently when I use assertTags I have to be exact, all the way down >> to the attribute of the element and any nested elements. I would just >> like to test that a view contains just a few elements on the page, not >> every single one with all attributes as this takes forever to build >> out this array on a complex view. >> >> For instance, I would just like to test that the view contains a >> certain input with an id of post_id, but I can't do this if any html >> comes before it, it wants me to match the entire thing. >> >> $result = $this->testAction('/url/page_with_form', >> array('return'=>'view')); >> $expected = array( >> array('input'=>array('id'=>'post_id')), >> ); >> >> This will not work because I didn't include the array structure for >> the form thats wrapped around it, if I add the entire form and all the >> divs that the form helper generates it works just fine. >> >> Thanks, >> >> Andrew >> >> >> >> >> -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php