/** * Saves the record on an edit form submit * * @acces public * @since 1.5 */ function save() { // Check for request forgeries JRequest::checkToken() or jexit('Invalid Token'); // Get some objects from the JApplication $db =& JFactory::getDBO(); $user =& JFactory::getUser(); // Must be logged in if ($user->get('id') < 1) { JError::raiseError(403, JText::_('ALERTNOTAUTH')); return; } //get data from the request $post = JRequest::getVar('jform', array(), 'post', 'array'); $model = $this->getModel('weblink'); if ($model->store($post)) { $msg = JText::_('Weblink Saved'); } else { $msg = JText::_('Error Saving Weblink'); } // Check the table in so it can be edited.... we are done with it anyway $model->checkin(); // admin users gid $gid = 25; // list of admins $query = 'SELECT email, name' . ' FROM #__users' . ' WHERE gid = ' . $gid . ' AND sendEmail = 1'; $db->setQuery($query); if (!$db->query()) { JError::raiseError(500, $db->stderr(true)); return; } $adminRows = $db->loadObjectList(); // send email notification to admins foreach ($adminRows as $adminRow) { JUtility::sendAdminMail($adminRow->name, $adminRow->email, '', JText::_('Web Link'), $post['title'] . " URL link " . $post[url], $user->get('username'), JURI::base()); } $this->setRedirect(JRoute::_('index.php?option=com_weblinks&view=category&id=' . $post['catid'], false), $msg); }
/** * Testing sendAdminMail(). * * @param array Arguments for method call * @param array Arguments received by method * @param bool Expected return from call * * @return void * * @dataProvider casesSendAdminMail */ public function testSendAdminMail($args, $expectedArgs, $expResult) { $mockMailer = $this->getMock('JMail', array('sendAdminMail')); $mockMailer->expects($this->once())->method('sendAdminMail')->with($this->equalTo($expectedArgs['adminName']), $this->equalTo($expectedArgs['adminEmail']), $this->equalTo($expectedArgs['email']), $this->equalTo($expectedArgs['type']), $this->equalTo($expectedArgs['title']), $this->equalTo($expectedArgs['author']), $this->equalTo($expectedArgs['url']))->will($this->returnValue($expResult)); JFactory::$mailer = $mockMailer; $this->assertThat(JUtility::sendAdminMail($args['adminName'], $args['adminEmail'], $args['email'], $args['type'], $args['title'], $args['author'], $args['url']), $this->equalTo($expResult)); }