public function testControlWithNonExistentPluginActivated() { $data[] = FixtureBuilder::build('instances', array('network_user_id' => '10', 'network_username' => 'ev', 'is_public' => 1, 'network' => 'twitter')); $data[] = FixtureBuilder::build('posts', array('post_id' => '1001', 'author_user_id' => '10', 'author_username' => 'ev', 'post_text' => 'This is a test post', 'retweet_count_cache' => '5', 'network' => 'twitter', 'is_protected' => 0)); $data[] = FixtureBuilder::build('users', array('user_id' => '10', 'username' => 'ev', 'is_protected' => '0', 'network' => 'twitter')); $data[] = FixtureBuilder::build('plugins', array('name' => "Nonexistent", 'folder_name' => 'idontexist', 'is_active' => 1)); $_GET["t"] = '1001'; $controller = new PostController(true); $results = $controller->go(); $this->assertPattern("/This is a test post/", $results); $this->assertNoPattern("/No plugin object defined for/", $results); //assert plugin has been deactivated $sql = "SELECT * FROM " . $this->table_prefix . "plugins WHERE folder_name='idontexist';"; $stmt = PluginMySQLDAO::$PDO->query($sql); $data = $stmt->fetch(PDO::FETCH_ASSOC); $this->assertEqual(0, $data['is_active']); }
/** * Test controller when logged in but a non-numeric post ID */ public function testControlLoggedInWithNonNumericPostID() { $this->simulateLogin('*****@*****.**'); $_GET["t"] = 'notapostID45'; $controller = new PostController(true); $results = $controller->go(); $this->assertTrue(strpos($results, "Post not found") > 0, "no post"); }
/** * Test controller when logged in but a non-numeric post ID */ function testControlLoggedInWithNonNumericPostID() { $_SESSION['user'] = '******'; $_REQUEST["t"] = 'notapostID45'; $controller = new PostController(true); $results = $controller->go(); $this->assertTrue(strpos($results, "Post not found") > 0, "no post"); }
<?php chdir(".."); require_once 'init.php'; require_once 'controller/class.PostController.php'; $controller = new PostController(); echo $controller->go();
public function testLoggedInPostWithViewsSpecified() { $builders = $this->buildPublicPostWithMixedAccessResponses(); $_GET["t"] = '1001'; $_GET['n'] = 'twitter'; //Log in and see private replies and retweets $this->simulateLogin('*****@*****.**'); //default menu item $_GET["v"] = 'default'; $controller = new PostController(true); $results = $controller->go(); $this->assertPattern("/This is a test post/", $results); $this->assertPattern("/This is a public reply to 1001/", $results); $this->assertPattern("/This is a private reply to 1001/", $results); //retweets menu item $this->simulateLogin('*****@*****.**'); $_GET["v"] = 'fwds'; $controller = new PostController(true); $results = $controller->go(); $this->assertPattern("/This is a test post/", $results); //shouldn't see replies, just retweets $this->assertNoPattern("/This is a public reply to 1001/", $results); $this->assertNoPattern("/This is a private reply to 1001/", $results); $this->assertPattern("/This is a public retweet of 1001/", $results); //logged in, should see private responses $this->assertPattern("/This is a private retweet of 1001/", $results); //non-existent menu item $_GET["v"] = 'idontexist'; $controller = new PostController(true); $results = $controller->go(); $this->assertPattern("/This is a test post/", $results); }
public function testPluginMenuGeneration() { $instance_builder = FixtureBuilder::build('instances', array('network_user_id' => '10', 'network_username' => 'ev', 'is_public' => 1, 'network' => 'facebook')); $post_builder = FixtureBuilder::build('posts', array('id' => 1, 'post_id' => '1001', 'author_user_id' => '10', 'author_username' => 'ev', 'post_text' => 'This is a test post', 'retweet_count_cache' => '5', 'network' => 'facebook', 'is_protected' => 0, 'location' => 'Clarence, NY 14031, USA')); $user_builder = FixtureBuilder::build('users', array('user_id' => '10', 'username' => 'ev', 'is_protected' => '0', 'network' => 'facebook')); $data[] = FixtureBuilder::build('plugins', array('name' => "Facebook", 'folder_name' => 'facebook', 'is_active' => 1)); $data[] = FixtureBuilder::build('plugins', array('name' => "YouTube", 'folder_name' => 'youtube', 'is_active' => 1)); // Disable debug (because then the controller sets reporting to E_STRICT) and enable warnings $this->config->setValue('debug', 0); $old_level = error_reporting(); error_reporting(E_WARNING); $_GET['t'] = '1001'; $_GET['n'] = 'facebook'; $_GET['v'] = 'likes'; $controller = new PostController(true); $results = $controller->go(); $this->assertNoPattern("/PHP error/", $results); $this->assertPattern("/n=facebook.*Replies/", $results); error_reporting($old_level); }
public function testCleanXSS() { $with_xss = true; $builders = $this->buildPublicPostWithMixedAccessResponses($with_xss); $_GET["t"] = '1001'; $_GET['n'] = 'twitter'; //Log in and see private replies and retweets $this->simulateLogin('*****@*****.**'); //default menu item $_GET["v"] = 'default'; $controller = new PostController(true); $results = $controller->go(); $this->assertPattern("/This is a test post<script>alert\\('wa'\\);<\\/script>/", $results); }
public function testPublicPostWithMixedAccessRepliesLoggedIn() { $this->simulateLogin('*****@*****.**'); $builders = $this->buildPublicPostWithMixedAccessResponses(); $_GET["t"] = '1001'; $controller = new PostController(true); $results = $controller->go(); $this->assertPattern("/This is a test post/", $results); $this->assertPattern("/This is a public reply to 1001/", $results); $this->assertPattern("/This is a private reply to 1001/", $results); $this->assertPattern("/This is a private retweet of 1001/", $results); }