public function testFromName() { $config = Config::getInstance(); $config->setValue("app_title_prefix", "My Crazy Custom "); $_SERVER['HTTP_HOST'] = "my_thinkup_hostname"; Mailer::mail('*****@*****.**', 'Testing 123', 'Me worky, yo?'); $email_body = Mailer::getLastMail(); $this->debug($email_body); $this->assertPattern('/From: "My Crazy Custom ThinkUp" <notifications@my_thinkup_hostname>/', $email_body); $config->setValue("app_title_prefix", "My Other Installation of "); $_SERVER['HTTP_HOST'] = "my_other_hostname"; Mailer::mail('*****@*****.**', 'Testing 123', 'Me worky, yo?'); $email_body = Mailer::getLastMail(); $this->debug($email_body); $this->assertPattern('/From: "My Other Installation of ThinkUp" <notifications@my_other_hostname>/', $email_body); }
public function testForgotPasswordSuccess() { $config = Config::getInstance(); $this->get($this->url . '/session/login.php'); $this->click('Forgot your password?'); $this->assertTitle($config->getValue('app_title_prefix') . 'ThinkUp'); $this->assertText('Reset your password'); $this->setField('email', '*****@*****.**'); $this->click('Send'); $this->assertPattern('/Password recovery information has been sent to your email address./'); $email_file = Mailer::getLastMail(); preg_match('/reset it:\\n(http.*)/m', $email_file, $urls); $this->get($urls[1]); $this->assertNoPattern('/You have reached this page in error/'); $this->assertText('Reset your password'); $this->setField('password', 'abc123'); $this->setField('password_confirm', 'abc123'); $this->click('Send'); //Doesn't work b/c it's a JS message? //$this->assertPattern('/You have changed your password/'); //No longer at the reset page $this->assertPattern('/Log in/'); }
public function testOfControllerWithValidEmailAddressAndSSL() { $config = Config::getInstance(); $config->setValue('app_title_prefix', ''); $site_root_path = $config->getValue('site_root_path'); $_POST['email'] = '*****@*****.**'; $_POST['Submit'] = "Send"; $_SERVER['HTTP_HOST'] = "mytestthinkup"; $_SERVER['HTTPS'] = true; $controller = new ForgotPasswordController(true); $result = $controller->go(); $this->assertTrue(strpos($result, 'Password recovery information has been sent to your email address.') > 0); $actual_forgot_email = Mailer::getLastMail(); $this->debug($actual_forgot_email); $expected_forgot_email_pattern = '/to: me@example.com subject: ThinkUp Password Recovery message: Hi there! Looks like you forgot your ThinkUp password. Go to this URL to reset it: https:\\/\\/mytestthinkup' . str_replace('/', '\\/', $site_root_path) . 'session\\/reset.php/'; $this->assertPattern($expected_forgot_email_pattern, $actual_forgot_email); }
public function testInviteUser() { $config = Config::getInstance(); $site_root_path = $config->getValue('site_root_path'); $builders = array(); // make sure registration is closed $builders[] = FixtureBuilder::build('options', array('namespace' => OptionDAO::APP_OPTIONS, 'option_name' => 'is_registration_open', 'option_value' => 'false')); $builders[] = FixtureBuilder::build('invites', array('invite_code' => '0123456789', 'created_time' => '-3s')); $_SERVER['HTTP_HOST'] = "mythinkup"; $_GET['code'] = '0123456789'; $_POST['Submit'] = 'Register'; $_POST['full_name'] = "Angelina Jolie"; $_POST['email'] = '*****@*****.**'; $_POST['user_code'] = '123456'; $_POST['pass1'] = 'mypass'; $_POST['pass2'] = 'mypass'; $controller = new RegisterController(true); $results = $controller->go(); $this->debug($results); $v_mgr = $controller->getViewManager(); $this->assertEqual($v_mgr->getTemplateDataItem('controller_title'), 'Register'); $this->assertEqual($v_mgr->getTemplateDataItem('success_msg'), 'Success! Check your email for an activation link.'); $expected_reg_email_pattern = '/to: angie@example.com subject: Activate Your ThinkUp Account message: Click on the link below to activate your new ThinkUp account: http:\\/\\/mythinkup' . str_replace('/', '\\/', $site_root_path) . 'session\\/activate.php\\?usr=angie%40example.com/'; $actual_reg_email = Mailer::getLastMail(); $this->debug($actual_reg_email); $this->assertPattern($expected_reg_email_pattern, $actual_reg_email); }
public function testCrawlWithAuthError() { //build active instance owned by a owner $instance_with_autherror = array('id' => 5, 'network_username' => 'Liz Lemon', 'network_user_id' => '123456', 'network_viewer_id' => '123456', 'last_post_id' => '0', 'total_posts_in_system' => '0', 'total_replies_in_system' => '0', 'total_follows_in_system' => '0', 'is_archive_loaded_replies' => '0', 'is_archive_loaded_follows' => '0', 'crawler_last_run' => '', 'earliest_reply_in_system' => '', 'avg_replies_per_day' => '2', 'is_public' => '0', 'is_active' => '1', 'network' => 'facebook', 'last_favorite_id' => '0', 'owner_favs_in_system' => '0', 'total_posts_by_owner' => 0, 'posts_per_day' => 1, 'posts_per_week' => 1, 'percentage_replies' => 50, 'percentage_links' => 50, 'earliest_post_in_system' => '2009-01-01 13:48:05', 'favorites_profile' => '0'); $instance_builder_1 = FixtureBuilder::build('instances', $instance_with_autherror); $builders = array(); $builders[] = FixtureBuilder::build('owners', array('id' => 1, 'full_name' => 'ThinkUp J. User', 'email' => '*****@*****.**', 'is_activated' => 1)); $builders[] = FixtureBuilder::build('owner_instances', array('owner_id' => 1, 'instance_id' => 5, 'auth_error' => '')); //assert invalid_oauth_email_sent_timestamp option is not set $option_dao = DAOFactory::getDAO('OptionDAO'); $plugin_dao = DAOFactory::getDAO('PluginDAO'); $plugin_id = $plugin_dao->getPluginId('facebook'); $last_email_timestamp = $option_dao->getOptionByName(OptionDAO::PLUGIN_OPTIONS . '-' . $plugin_id, 'invalid_oauth_email_sent_timestamp'); $this->assertNull($last_email_timestamp); //log in as that owner $this->simulateLogin('*****@*****.**'); $_SERVER['HTTP_HOST'] = "mytestthinkup"; //run the crawl $fb_plugin = new FacebookPlugin(); $fb_plugin->crawl(); //assert that APIOAuthException was caught and recorded in owner_instances table $owner_instance_dao = new OwnerInstanceMySQLDAO(); $owner_instance = $owner_instance_dao->get(1, 5); $this->assertEqual($owner_instance->auth_error, 'Error validating access token: Session has expired at unix ' . 'time SOME_TIME. The current unix time is SOME_TIME.'); //assert that the email notification was sent to the user $expected_reg_email_pattern = '/to: me@example.com subject: Please re-authorize ThinkUp to access Liz Lemon on Facebook message: Hi! Your ThinkUp installation is no longer connected to the Liz Lemon Facebook account./'; $actual_reg_email = Mailer::getLastMail(); $this->debug($actual_reg_email); $this->assertPattern($expected_reg_email_pattern, $actual_reg_email); //assert invalid_oauth_email_sent_timestamp option has been set $last_email_timestamp = $option_dao->getOptionByName(OptionDAO::PLUGIN_OPTIONS . '-' . $plugin_id, 'invalid_oauth_email_sent_timestamp'); $this->assertNotNull($last_email_timestamp); //Delete last mail file $test_email_file = FileDataManager::getDataPath(Mailer::EMAIL); unlink($test_email_file); $actual_reg_email = Mailer::getLastMail(); //Assert it's been deleted $this->assertEqual($actual_reg_email, ''); //Crawl again $fb_plugin->crawl(); //Assert email has not been resent $actual_reg_email = Mailer::getLastMail(); $this->debug($actual_reg_email); $this->assertEqual($actual_reg_email, ''); }
public function testFreshInstallStep3SuccessfulInstall() { self::time(__METHOD__); //get valid credentials $config = Config::getInstance(); $valid_db_username = $config->getValue('db_user'); $valid_db_pwd = $config->getValue('db_password'); $valid_db_name = $config->getValue('db_name'); $valid_db_host = $config->getValue('db_host'); $valid_db_socket = $config->getValue('db_socket'); //drop DB $this->testdb_helper->drop($this->test_database_name); //remove config file $config = null; Config::destroyInstance(); //unset PDO so it must be recreated InstallerMySQLDAO::$PDO = null; //remove config file $this->removeConfigFile(); //force a refresh of getTables Installer::$show_tables = null; //set param for step 3 $_GET['step'] = '3'; //set post values from form $_POST['site_email'] = "*****@*****.**"; $_POST['password'] = "******"; $_POST['confirm_password'] = "******"; $_POST['db_user'] = $valid_db_username; $_POST['db_passwd'] = $valid_db_pwd; $_POST['db_name'] = $valid_db_name; //$_POST['db_name'] = 'thinkup_install'; $_POST['db_type'] = "mysql"; $_POST['db_host'] = $valid_db_host; $_POST['db_socket'] = $valid_db_socket; $_POST['db_port'] = ""; $_POST['db_prefix'] = "tu_"; $_POST['full_name'] = "My Full Name"; $_POST['timezone'] = "America/Los_Angeles"; $_SERVER['HTTP_HOST'] = "example.com"; $controller = new InstallerController(true); $this->assertTrue(isset($controller)); $result = $controller->go(); $this->debug($result); $this->assertPattern('/ThinkUp has been successfully installed./', $result); $option_dao = DAOFactory::getDAO('OptionDAO'); $current_stored_server_name = $option_dao->getOptionByName(OptionDAO::APP_OPTIONS, 'server_name'); $this->assertNotNull($current_stored_server_name); $this->assertEqual($current_stored_server_name->option_value, 'example.com'); $this->assertEqual($current_stored_server_name->option_name, 'server_name'); $install_email = Mailer::getLastMail(); $this->debug($install_email); $this->assertPattern("/http:\\/\\/example.com\\/session\\/activate.php\\?usr=you\\%40example.com\\&code\\=/", $install_email); $this->restoreConfigFile(); //echo $result; }
public function testNoTimezoneHandling() { $tz = date_default_timezone_get(); unlink(FileDataManager::getDataPath(Mailer::EMAIL)); $builders = array(); $builders[] = FixtureBuilder::build('owners', array('id' => 1, 'full_name' => 'ThinkUp J. User', 'is_admin' => 1, 'email' => '*****@*****.**', 'is_activated' => 1, 'email_notification_frequency' => 'daily', 'timezone' => '')); $builders[] = FixtureBuilder::build('owner_instances', array('owner_id' => 1, 'instance_id' => 5, 'auth_error' => '')); $builders[] = FixtureBuilder::build('instances', array('network_username' => 'cdmoyer', 'id' => 5, 'network' => 'twitter', 'is_activated' => 1, 'is_public' => 1)); $builders[] = FixtureBuilder::build('insights', array('id' => 1, 'instance_id' => 5, 'slug' => 'new_group_memberships', 'prefix' => 'Made the List:', 'text' => 'CDMoyer is on 29 new lists', 'time_generated' => date('Y-m-d 03:00:00'))); $builders[] = FixtureBuilder::build('insights', array('id' => 2, 'instance_id' => 5, 'slug' => 'new_group_memberships', 'prefix' => 'Made the List:', 'text' => 'CDMoyer is on 99 new lists', 'time_generated' => date('Y-m-d 01:00:00'))); $plugin_option_dao = DAOFactory::GetDAO('PluginOptionDAO'); $options = $plugin_option_dao->getOptionsHash($plugin->folder_name, true); $this->assertEqual(count($options), 0); $config = Config::getInstance(); date_default_timezone_set($config->getValue('timezone')); $this->simulateLogin('*****@*****.**'); $plugin = new InsightsGeneratorPlugin(); $plugin->current_timestamp = strtotime('3am'); // Should not set yet $plugin->crawl(); $sent = Mailer::getLastMail(); $this->assertEqual('', $sent); $plugin_option_dao = DAOFactory::GetDAO('PluginOptionDAO'); $options = $plugin_option_dao->getOptionsHash($plugin->folder_name, true); $this->assertEqual(count($options), 0); $plugin->current_timestamp = strtotime('5am'); // SHould send $plugin->crawl(); $sent = Mailer::getLastMail(); $this->assertNotEqual('', $sent); $plugin_option_dao = DAOFactory::GetDAO('PluginOptionDAO'); $options = $plugin_option_dao->getOptionsHash($plugin->folder_name, true); $this->assertTrue(count($options) > 0); date_default_timezone_set($tz); }
public function testTokenEmailWithSSL() { $config = Config::getInstance(); $site_root_path = $config->getValue('site_root_path'); // build 1 valid admin and two invalid admins $builder1 = FixtureBuilder::build('owners', array('is_admin' => 1, 'is_activated' => 1, 'email' => '*****@*****.**')); $builder2 = FixtureBuilder::build('owners', array('is_admin' => 0, 'is_activated' => 1, 'email' => '*****@*****.**')); $builder3 = FixtureBuilder::build('owners', array('is_admin' => 1, 'is_activated' => 0, 'email' => '*****@*****.**')); $_SERVER['HTTP_HOST'] = "mytestthinkup"; $_SERVER['HTTPS'] = "mytestthinkup"; $controller = new UpgradeDatabaseController(true); $results = $controller->go(); $this->assertTrue(file_exists($this->token_file)); $this->assertPattern('/<!-- we are upgrading -->/', $results); $this->assertTrue(file_exists($this->token_file)); $token = file_get_contents($this->token_file); $this->assertPattern('/^[\\da-f]{32}$/', $token); $email_file = Mailer::getLastMail(); $this->debug($email_file); $this->assertPattern('/to\\: m@w\\.nz\\s/', $email_file); $this->assertPattern('/subject\\: Upgrade Your ThinkUp Database/', $email_file); $token_regex = '/https:\\/\\/mytestthinkup' . str_replace('/', '\\/', $site_root_path) . 'install\\/upgrade-database.php\\?upgrade_token=' . $token . '/'; $this->assertPattern($token_regex, $email_file); // build 1 more valid admin, should have two to emails $test_email = FileDataManager::getDataPath(Mailer::EMAIL); unlink($test_email); unlink($this->token_file); $builder4 = FixtureBuilder::build('owners', array('is_admin' => 1, 'is_activated' => 1, 'email' => '*****@*****.**')); $results = $controller->go(); $this->assertTrue(file_exists($this->token_file)); $this->assertPattern('/<!-- we are upgrading -->/', $results); $this->assertTrue(file_exists($this->token_file)); $token = file_get_contents($this->token_file); $this->assertPattern('/^[\\da-f]{32}$/', $token); $email_file = Mailer::getLastMail(); $this->assertPattern('/to\\: m@w\\.nz,m4@w\\.nz\\s/', $email_file); $this->assertPattern('/subject\\: Upgrade Your ThinkUp Database/', $email_file); $token_regex = '/\\/install\\/upgrade-database.php\\?upgrade_token=' . $token . '/'; $this->assertPattern($token_regex, $email_file); // should not send email if a token file exists $test_email = FileDataManager::getDataPath(Mailer::EMAIL); unlink($test_email); $results = $controller->go(); $this->assertFalse(file_exists($test_email)); }
public function testMandrillHTMLWithExceptions() { unlink(FileDataManager::getDataPath(Mailer::EMAIL)); $plugin = new InsightsGeneratorPlugin(); $config = Config::getInstance(); $config->setValue('mandrill_api_key', '1234'); $plugin_dao = DAOFactory::getDAO('PluginDAO'); $plugin_id = $plugin_dao->getPluginId($plugin->folder_name); $plugin_option_dao = DAOFactory::GetDAO('PluginOptionDAO'); $plugin_option_dao->insertOption($plugin_id, 'mandrill_template', $template = 'my_template'); $long_ago = date('Y-m-d', strtotime('last year')); // When in test mode, the mailHTMLViaMandrill method will throw a Template Not Found exception // if the email address contains "templateerror". $builders = array(); $builders[] = FixtureBuilder::build('owners', array('id' => 1, 'full_name' => 'ThinkUp Q. User', 'is_admin' => 1, 'email' => '*****@*****.**', 'is_activated' => 1, 'email_notification_frequency' => 'daily')); $builders[] = FixtureBuilder::build('instances', array('network_username' => 'cdmoyer', 'id' => 6, 'network' => 'twitter', 'is_activated' => 1, 'is_public' => 1)); $builders[] = FixtureBuilder::build('owner_instances', array('owner_id' => 1, 'instance_id' => 6, 'id' => 1)); $builders[] = FixtureBuilder::build('insights', array('id' => 2, 'instance_id' => 6, 'slug' => 'new_group_memberships', 'prefix' => 'Made the List:', 'text' => 'Joe Test is on 1234 new lists', 'time_generated' => date('Y-m-d 03:00:00', strtotime('1am')))); $this->simulateLogin('*****@*****.**'); $plugin->current_timestamp = strtotime('5pm'); $exception = null; try { $plugin->crawl(); } catch (Exception $e) { $exception = $e; } $this->assertNull($e, 'Should not get Mandrill template error'); $sent = Mailer::getLastMail(); //Sent plain text email $this->assertNotEqual($sent, ''); $decoded = json_decode($sent); //Not HTML email via JSON $this->assertNull($decoded->global_merge_vars); //Check user got a log message $config = Config::getInstance(); $logger_file = $config->getValue('log_location'); $log = file($logger_file); $last_log = join("\n", array_slice($log, -10)); $this->assertPattern('/invalid mandrill template/i', $last_log); }
public function testHTMLViaMandrillTemplate() { $config = Config::getInstance(); $config->setValue("app_title_prefix", "Prefix "); $config->setValue("mandrill_api_key", "asdfasdfasdfadsfasd"); $_SERVER['HTTP_HOST'] = "thinkup.com"; Mailer::mailHTMLViaMandrillTemplate($to = '*****@*****.**', $subject = 'Test Subject', 'thinkup-digest', array('insights' => 'test insights', 'merge2' => 'Some other text')); $email_body = Mailer::getLastMail(); $decoded = json_decode($email_body); $this->assertEqual($subject, $decoded->subject); $this->assertEqual($to, $decoded->to[0]->email); $this->assertEqual(2, count($decoded->global_merge_vars)); }
public function testCrawlWithAuthError() { //build active instance owned by a owner $instance_with_autherror = array('id' => 5, 'network_username' => 'Liz Lemon', 'network_user_id' => '123456', 'network_viewer_id' => '123456', 'last_post_id' => '0', 'last_page_fetched_replies' => 0, 'last_page_fetched_tweets' => '0', 'total_posts_in_system' => '0', 'total_replies_in_system' => '0', 'total_follows_in_system' => '0', 'is_archive_loaded_replies' => '0', 'is_archive_loaded_follows' => '0', 'crawler_last_run' => '', 'earliest_reply_in_system' => '', 'avg_replies_per_day' => '2', 'is_public' => '0', 'is_active' => '1', 'network' => 'facebook', 'last_favorite_id' => '0', 'last_unfav_page_checked' => '0', 'last_page_fetched_favorites' => '0', 'owner_favs_in_system' => '0', 'total_posts_by_owner' => 0, 'posts_per_day' => 1, 'posts_per_week' => 1, 'percentage_replies' => 50, 'percentage_links' => 50, 'earliest_post_in_system' => '01-01-2009', 'favorites_profile' => '0'); $instance_builder_1 = FixtureBuilder::build('instances', $instance_with_autherror); $builders = array(); $builders[] = FixtureBuilder::build('owners', array('id' => 1, 'full_name' => 'ThinkUp J. User', 'email' => '*****@*****.**', 'is_activated' => 1)); $builders[] = FixtureBuilder::build('owner_instances', array('owner_id' => 1, 'instance_id' => 5, 'auth_error' => '')); //log in as that owner $this->simulateLogin('*****@*****.**'); $_SERVER['HTTP_HOST'] = "mytestthinkup"; //run the crawl $fb_plugin = new FacebookPlugin(); $fb_plugin->crawl(); //assert that APIOAuthException was caught and recorded in owner_instances table $owner_instance_dao = new OwnerInstanceMySQLDAO(); $owner_instance = $owner_instance_dao->get(1, 5); $this->assertEqual($owner_instance->auth_error, 'Error validating access token: Session has expired at unix ' . 'time SOME_TIME. The current unix time is SOME_TIME.'); //assert that the email notification was sent to the user $expected_reg_email_pattern = '/to: me@example.com subject: Please re-authorize ThinkUp to access Liz Lemon on Facebook message: Hi! Your ThinkUp installation is no longer connected to the Liz Lemon Facebook account./'; $actual_reg_email = Mailer::getLastMail(); $this->debug($actual_reg_email); $this->assertPattern($expected_reg_email_pattern, $actual_reg_email); }
public function testCrawlWithUnexpectedErrorPleaseTryAgain() { //build active instance owned by a owner $instance_with_autherror = array('id' => 5, 'network_username' => 'Liz Lemon', 'network_user_id' => '123456-app-throttled', 'network_viewer_id' => '123456-unexpected-error-try-again', 'last_post_id' => '0', 'total_posts_in_system' => '0', 'total_replies_in_system' => '0', 'total_follows_in_system' => '0', 'is_archive_loaded_replies' => '0', 'is_archive_loaded_follows' => '0', 'crawler_last_run' => '', 'earliest_reply_in_system' => '', 'avg_replies_per_day' => '2', 'is_public' => '0', 'is_active' => '1', 'network' => 'facebook', 'last_favorite_id' => '0', 'owner_favs_in_system' => '0', 'total_posts_by_owner' => 0, 'posts_per_day' => 1, 'posts_per_week' => 1, 'percentage_replies' => 50, 'percentage_links' => 50, 'earliest_post_in_system' => '2009-01-01 13:48:05', 'favorites_profile' => '0'); $instance_builder_1 = FixtureBuilder::build('instances', $instance_with_autherror); $builders = array(); $builders[] = FixtureBuilder::build('owners', array('id' => 1, 'full_name' => 'ThinkUp J. User', 'email' => '*****@*****.**', 'is_activated' => 1, 'is_admin' => 1)); $builders[] = FixtureBuilder::build('owners', array('id' => 2, 'full_name' => 'ThinkUp K. User', 'email' => '*****@*****.**', 'is_activated' => 1)); $builders[] = FixtureBuilder::build('owner_instances', array('owner_id' => 2, 'instance_id' => 5, 'auth_error' => '', 'oauth_access_token' => 'zL11BPY2fZPPyYY', 'oauth_access_token_secret' => '')); //assert invalid_oauth_email_sent_timestamp option is not set $option_dao = DAOFactory::getDAO('OptionDAO'); $plugin_dao = DAOFactory::getDAO('PluginDAO'); $plugin_id = $plugin_dao->getPluginId('facebook'); $last_email_timestamp = $option_dao->getOptionByName(OptionDAO::PLUGIN_OPTIONS . '-' . $plugin_id, 'invalid_oauth_email_sent_timestamp'); $this->assertNull($last_email_timestamp); //log in as that owner $this->simulateLogin('*****@*****.**'); $_SERVER['HTTP_HOST'] = "mytestthinkup"; //run the crawl $fb_plugin = new FacebookPlugin(); $fb_plugin->crawl(); //assert that APIOAuthException was caught and recorded in owner_instances table $owner_instance_dao = new OwnerInstanceMySQLDAO(); $owner_instance = $owner_instance_dao->get(2, 5); $this->debug(Utils::varDumpToString($owner_instance)); //assert that the application request throttling error was not saved $this->assertEqual($owner_instance->auth_error, ''); //assert that the reauth email notification was not sent to user $actual_reg_email = Mailer::getLastMail(); $this->debug($actual_reg_email); $this->assertEqual($actual_reg_email, ''); }
public function testHandlingLastSentTime() { $tz = date_default_timezone_get(); unlink(FileDataManager::getDataPath(Mailer::EMAIL)); $builders = array(); $builders[] = FixtureBuilder::build('owners', array('id' => 1, 'full_name' => 'ThinkUp J. User', 'is_admin' => 1, 'email' => '*****@*****.**', 'is_activated' => 1, 'email_notification_frequency' => 'daily', 'timezone' => 'America/New_York')); $builders[] = FixtureBuilder::build('owner_instances', array('owner_id' => 1, 'instance_id' => 5, 'auth_error' => '')); $builders[] = FixtureBuilder::build('instances', array('network_username' => 'cdmoyer', 'id' => 5, 'network' => 'twitter', 'is_activated' => 1, 'is_public' => 1)); $builders[] = FixtureBuilder::build('insights', array('id' => 1, 'instance_id' => 5, 'slug' => 'new_group_memberships', 'headline' => 'Made the List:', 'related_data' => null, 'text' => 'CDMoyer is on 29 new lists', 'time_generated' => date('Y-m-d 4:00', strtotime('-49 hour')))); $builders[] = FixtureBuilder::build('insights', array('id' => 2, 'instance_id' => 5, 'slug' => 'new_group_memberships', 'headline' => 'Made the List:', 'related_data' => null, 'text' => 'CDMoyer is on 99 new lists', 'time_generated' => date('Y-m-d H:00:00', strtotime('-45 hour')))); $builders[] = FixtureBuilder::build('insights', array('id' => 3, 'instance_id' => 5, 'slug' => 'new_group_memberships', 'headline' => 'Made the List:', 'related_data' => null, 'text' => 'CDMoyer is on 42 new lists', 'time_generated' => date('Y-m-d H:00:00', strtotime('-42 hour')))); $plugin_option_dao = DAOFactory::GetDAO('PluginOptionDAO'); $options = $plugin_option_dao->getOptionsHash($plugin->folder_name, true); $this->assertEqual(count($options), 0); $config = Config::getInstance(); //date_default_timezone_set($config->getValue('timezone')); $this->simulateLogin('*****@*****.**'); $plugin = new InsightsGeneratorPlugin(); $plugin->current_timestamp = strtotime('Yesterday 4am'); // Should send $plugin->crawl(); $sent = Mailer::getLastMail(); $this->assertNoPattern('/29 new lists/', $sent); unlink(FileDataManager::getDataPath(Mailer::EMAIL)); $plugin->current_timestamp = strtotime('4am'); // Should send $plugin_dao = DAOFactory::getDAO('PluginDAO'); $plugin_id = $plugin_dao->getPluginId($plugin->folder_name); $options = $plugin_option_dao->getOptionsHash($plugin->folder_name, true); $plugin_option_dao->updateOption($options['last_daily_email']->id, 'last_daily_email', date('Y-m-d H:00:00', strtotime('-43 hour'))); $options = $plugin_option_dao->getOptionsHash($plugin->folder_name, true); $plugin->crawl(); $sent = Mailer::getLastMail(); $this->assertNoPattern('/29 new lists/', $sent); $this->assertNoPattern('/99 new lists/', $sent); $this->assertPattern('/42 new lists/', $sent); }
public function testSpaceInHostName() { // make sure registration is on... $bvalues = array('namespace' => OptionDAO::APP_OPTIONS, 'option_name' => 'is_registration_open', 'option_value' => 'true'); $bdata = FixtureBuilder::build('options', $bvalues); $_SERVER['HTTP_HOST'] = "mytestthinkup/"; $_POST['Submit'] = 'Register'; $_POST['full_name'] = "Angelina Jolie"; $_POST['email'] = '*****@*****.**'; $_POST['user_code'] = '123456'; $_POST['pass1'] = 'mypass'; $_POST['pass2'] = 'mypass'; $config = Config::getInstance(); $config->setValue('site_root_path', 'test url with spaces/'); $controller = new RegisterController(true); $results = $controller->go(); $email = Mailer::getLastMail(); $this->debug("Email contents: " . $email); $this->assertPattern('/test%20url%20with%20spaces/', $email, 'Spaces found in activation URL.'); }