View = new View(); $this->Flash = new FlashHelper($this->View); } /** * FlashHelperTest::testFlashMessage() * * @return void */ public function testMessage() { $result = $this->Flash->message(h('Foo & bar'), 'success'); $expected = '
'; $this->assertEquals($expected, $result); } /** * FlashHelperTest::testFlash() * * @return void */ public function testFlash() { $this->Flash->addTransientMessage(h('Foo & bar'), 'success'); $result = $this->Flash->flash(); $expected = ''; $this->assertEquals($expected, $result); $this->Flash->addTransientMessage('I am an error', 'error'); $this->Flash->addTransientMessage('I am a warning', 'warning'); $this->Flash->addTransientMessage('I am some info', 'info'); $this->Flash->addTransientMessage('I am also some info'); $this->Flash->addTransientMessage('I am sth custom', 'custom'); $result = $this->Flash->flash(); $this->assertTextContains('message error', $result); $this->assertTextContains('message warning', $result); $this->assertTextContains('message info', $result); $this->assertTextContains('message custom', $result); $result = substr_count($result, 'message info'); $this->assertSame(2, $result); } /** * FlashComponentTest::testFlashMessage() * * @return void */ public function testFlashComplex() { $this->Flash->settings['useElements'] = true; FlashComponent::transientMessage('efg', ['type' => 'success', 'escape' => true, 'useElements' => true, 'params' => ['foo' => 'bar']]); $res = $this->Flash->flash(); $this->assertTrue(!empty($res)); $expected = ''; $this->assertSame($expected, $res); } /** * FlashComponentTest::testFlashMessage() * * @return void */ public function testFlashHtml() { $this->Flash->settings['useElements'] = true; FlashComponent::transientMessage('OK', ['type' => 'success', 'escape' => false, 'useElements' => true, 'params' => ['foo' => 'bar']]); FlashComponent::transientMessage('Error', ['type' => 'error', 'escape' => true, 'useElements' => true, 'params' => ['foo' => 'bar']]); $res = $this->Flash->flash(); $this->assertTrue(!empty($res)); $expected = ''; $this->assertTextEquals($expected, $res); } /** * FlashComponentTest::testFlashMessage() * * @return void */ public function testFlashComplexMocked() { $this->View = $this->getMock('View', ['element']); $this->Flash = new FlashHelper($this->View); $this->Flash->settings['useElements'] = true; FlashComponent::transientMessage('efg', ['type' => 'success', 'escape' => true, 'useElements' => true, 'element' => 'PluginName.default_element', 'params' => ['foo' => 'bar']]); $this->View->expects($this->once()) ->method('element') ->with('PluginName.Flash/default_element') ->will($this->returnValue('xyz')); $res = $this->Flash->flash(); $this->assertTrue(!empty($res)); $expected = ''; $this->assertSame($expected, $res); } /** * Test that you can define your own order or just output a subpart of * the types. * * @return void */ public function testFlashWithStringTypes() { $this->Flash->addTransientMessage('I am an error', 'error'); $this->Flash->addTransientMessage('I am a warning', 'warning'); $this->Flash->addTransientMessage('I am some info', 'info'); $this->Flash->addTransientMessage('I am also some info'); $this->Flash->addTransientMessage('I am sth custom', 'custom'); $result = $this->Flash->flash(['warning', 'error']); $expected = ''; $this->assertEquals($expected, $result); $result = $this->Flash->flash(['info']); $expected = ''; $this->assertEquals($expected, $result); $result = $this->Flash->flash(); $expected = ''; $this->assertEquals($expected, $result); } /** * TearDown method * * @return void */ public function tearDown() { parent::tearDown(); unset($this->Flash); } }