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')); }