public function testAddAndDeleteHashtagSearch()
 {
     $this->debug(__METHOD__);
     //Hashtag does not exist
     $hashtag_dao = new HashtagMySQLDAO();
     $instance_hashtag_dao = new InstanceHashtagMySQLDAO();
     $hashtag = $hashtag_dao->getHashtag($_POST['new_hashtag_name'], 'twitter');
     $this->assertNull($hashtag);
     $instance_hashtag = $instance_hashtag_dao->getByInstance(1);
     $this->assertEqual(sizeof($instance_hashtag), 0);
     //Add hashtag
     $this->simulateLogin('*****@*****.**', true, true);
     $_POST['action'] = 'Save search';
     $_POST['new_hashtag_name'] = '#Messi';
     $_POST['instance_id'] = 1;
     $_POST['csrf_token'] = parent::CSRF_TOKEN;
     $controller = new AccountConfigurationController(true);
     $results = $controller->go();
     $this->debug($results);
     $hashtag = $hashtag_dao->getHashtag($_POST['new_hashtag_name'], 'twitter');
     $this->assertNotNull($hashtag);
     $this->assertEqual($hashtag->id, 1);
     $this->assertEqual($hashtag->hashtag, $_POST['new_hashtag_name']);
     $this->assertEqual($hashtag->network, 'twitter');
     $this->assertEqual($hashtag->count_cache, 0);
     $instance_hashtag = $instance_hashtag_dao->getByInstance(1);
     $this->assertNotNull($instance_hashtag);
     $this->assertEqual(sizeof($instance_hashtag), 1);
     $this->assertEqual($instance_hashtag[0]->instance_id, 1);
     $this->assertEqual($instance_hashtag[0]->hashtag_id, 1);
     $this->assertEqual($instance_hashtag[0]->last_post_id, 0);
     $this->assertEqual($instance_hashtag[0]->earliest_post_id, 0);
     $v_mgr = $controller->getViewManager();
     $success_msgs = $v_mgr->getTemplateDataItem('success_msgs');
     $this->assertNotNull($success_msgs);
     $this->assertEqual($success_msgs['account'], 'Saved search for #Messi.');
     $this->assertNull($v_mgr->getTemplateDataItem('error_msg'));
     //Search tweets
     //Saved search tweets do not exist
     $posts_dao = new PostMySQLDAO();
     $links_dao = new LinkMySQLDAO();
     $users_dao = new UserMySQLDAO();
     $hashtagpost_dao = new HashtagPostMySQLDAO();
     $hashtags_posts = $hashtagpost_dao->getHashtagsForPost(1, 'twitter');
     $this->assertEqual(sizeof($hashtags_posts), 0);
     $posts = $posts_dao->getAllPostsByHashtagId(1, 'twitter', 20);
     $this->assertEqual(sizeof($posts), 0);
     $posts = $posts_dao->getAllPostsByUsername('vetcastellnou', 'twitter');
     $this->assertEqual(sizeof($posts), 0);
     $links = $links_dao->getLinksForPost(1);
     $this->assertEqual(sizeof($links), 0);
     $this->assertFalse($users_dao->isUserInDB(100, 'twitter'));
     $this->assertFalse($users_dao->isUserInDB(101, 'twitter'));
     $builder = $this->buildSearchData();
     //Saved search tweets do exist
     $hashtags_posts = $hashtagpost_dao->getHashtagsForPost(1, 'twitter');
     $this->assertEqual(sizeof($hashtags_posts), 1);
     $posts = $posts_dao->getAllPostsByHashtagId(1, 'twitter', 20);
     $this->assertEqual(sizeof($posts), 2);
     $posts = $posts_dao->getAllPostsByUsername('vetcastellnou', 'twitter');
     $this->assertEqual(sizeof($posts), 1);
     $links = $links_dao->getLinksForPost(1);
     $this->assertEqual(sizeof($links), 2);
     $this->assertTrue($users_dao->isUserInDB(100, 'twitter'));
     $this->assertTrue($users_dao->isUserInDB(101, 'twitter'));
     //Delete hashtag
     $new_hashtag_name = $_POST['new_hashtag_name'];
     unset($_POST['new_hashtag_name']);
     $_POST['action'] = 'Delete';
     $_POST['instance_id'] = 1;
     $_POST['hashtag_id'] = 1;
     $_POST['csrf_token'] = parent::CSRF_TOKEN;
     $controller = new AccountConfigurationController(true);
     $controller->go();
     $hashtags_posts = $hashtagpost_dao->getHashtagsForPost(1, 'twitter');
     $this->assertEqual(sizeof($hashtags_posts), 0);
     $posts = $posts_dao->getAllPostsByHashtagId(1, 'twitter', 20);
     $this->assertEqual(sizeof($posts), 0);
     $posts = $posts_dao->getAllPostsByUsername('vetcastellnou', 'twitter');
     $this->assertEqual(sizeof($posts), 1);
     $links = $links_dao->getLinksForPost(1);
     //Don't delete links
     $this->assertEqual(sizeof($links), 2);
     //Don't delete users
     $this->assertTrue($users_dao->isUserInDB(100, 'twitter'));
     $this->assertTrue($users_dao->isUserInDB(101, 'twitter'));
     $hashtag = $hashtag_dao->getHashtag($new_hashtag_name);
     $this->assertNull($hashtag);
     $instance_hashtag = $instance_hashtag_dao->getByInstance(1);
     $this->assertEqual(sizeof($instance_hashtag), 0);
     $v_mgr = $controller->getViewManager();
     $success_msgs = $v_mgr->getTemplateDataItem('success_msgs');
     $this->assertNotNull($success_msgs);
     $this->assertEqual($success_msgs['account'], 'Deleted saved search.');
     $this->assertNull($v_mgr->getTemplateDataItem('error_msg'));
 }