From ff83580af1af7623012843c56fba605ec2ad7df1 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Sat, 15 Dec 2012 13:45:33 -0500 Subject: [ticket/10758] Add a test for acp login. PHPBB3-10758 --- tests/functional/auth_test.php | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'tests/functional') diff --git a/tests/functional/auth_test.php b/tests/functional/auth_test.php index 662b1bd38b..f92a4a2210 100644 --- a/tests/functional/auth_test.php +++ b/tests/functional/auth_test.php @@ -49,4 +49,15 @@ class phpbb_functional_auth_test extends phpbb_functional_test_case $this->assert_response_success(); $this->assertContains($this->lang('REGISTER'), $crawler->filter('.navbar')->text()); } + + public function test_acp_login() + { + $this->login(); + $this->admin_login(); + + // check that we are logged in + $crawler = $this->request('GET', 'adm/index.php?sid=' . $this->sid); + $this->assert_response_success(); + $this->assertContains($this->lang('ADMIN_PANEL'), $crawler->filter('h1')->text()); + } } -- cgit v1.2.1 From 7b9092ea3b4ea63bd8c20c1b66b8bd4240e2c497 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Sat, 15 Dec 2012 16:17:18 -0500 Subject: [ticket/10758] Functional test for changing a user's permission. PHPBB3-10758 --- tests/functional/acp_permissions_test.php | 53 +++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 tests/functional/acp_permissions_test.php (limited to 'tests/functional') diff --git a/tests/functional/acp_permissions_test.php b/tests/functional/acp_permissions_test.php new file mode 100644 index 0000000000..4c5ae9bbb1 --- /dev/null +++ b/tests/functional/acp_permissions_test.php @@ -0,0 +1,53 @@ +login(); + $this->admin_login(); + $this->add_lang('acp/permissions'); + + // Permissions tab + // XXX hardcoded ids + $crawler = $this->request('GET', 'adm/index.php?i=16&sid=' . $this->sid); + $this->assert_response_success(); + // these language strings are html + $this->assertContains($this->lang('ACP_PERMISSIONS_EXPLAIN'), $this->client->getResponse()->getContent()); + + // User permissions + $crawler = $this->request('GET', 'adm/index.php?i=acp_permissions&icat=16&mode=setting_user_global&sid=' . $this->sid); + $this->assert_response_success(); + $this->assertContains($this->lang('ACP_USERS_PERMISSIONS_EXPLAIN'), $this->client->getResponse()->getContent()); + + // Select admin + $form = $crawler->selectButton($this->lang('SUBMIT'))->form(); + $data = array('username[0]' => 'admin'); + $form->setValues($data); + $crawler = $this->client->submit($form); + $this->assert_response_success(); + $this->assertContains($this->lang('ACL_SET'), $crawler->filter('h1')->eq(1)->text()); + + // Set u_hideonline to never + $form = $crawler->selectButton($this->lang('APPLY_PERMISSIONS'))->form(); + // initially it should be a yes + $values = $form->getValues(); + $this->assertEquals(1, $values['setting[2][0][u_hideonline]']); + // set to never + $data = array('setting[2][0][u_hideonline]' => '0'); + $form->setValues($data); + $crawler = $this->client->submit($form); + $this->assert_response_success(); + $this->assertContains($this->lang('AUTH_UPDATED'), $crawler->text()); + } +} -- cgit v1.2.1 From ac3e69cb0856779016dcc02060e8e30b804fcd67 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Wed, 19 Dec 2012 21:49:41 -0500 Subject: [ticket/10758] Check that acl was changed in the test. PHPBB3-10758 --- tests/functional/acp_permissions_test.php | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'tests/functional') diff --git a/tests/functional/acp_permissions_test.php b/tests/functional/acp_permissions_test.php index 4c5ae9bbb1..0fa7898963 100644 --- a/tests/functional/acp_permissions_test.php +++ b/tests/functional/acp_permissions_test.php @@ -19,7 +19,7 @@ class phpbb_functional_acp_permissions_test extends phpbb_functional_test_case $this->add_lang('acp/permissions'); // Permissions tab - // XXX hardcoded ids + // XXX hardcoded id $crawler = $this->request('GET', 'adm/index.php?i=16&sid=' . $this->sid); $this->assert_response_success(); // these language strings are html @@ -38,6 +38,17 @@ class phpbb_functional_acp_permissions_test extends phpbb_functional_test_case $this->assert_response_success(); $this->assertContains($this->lang('ACL_SET'), $crawler->filter('h1')->eq(1)->text()); + // XXX globals for phpbb_auth, refactor it later + global $db, $cache; + $db = $this->get_db(); + $cache = new phpbb_mock_null_cache; + + $auth = new phpbb_auth; + // XXX hardcoded id + $user_data = $auth->obtain_user_data(2); + $auth->acl($user_data); + $this->assertEquals(1, $auth->acl_get('u_hideonline')); + // Set u_hideonline to never $form = $crawler->selectButton($this->lang('APPLY_PERMISSIONS'))->form(); // initially it should be a yes @@ -49,5 +60,12 @@ class phpbb_functional_acp_permissions_test extends phpbb_functional_test_case $crawler = $this->client->submit($form); $this->assert_response_success(); $this->assertContains($this->lang('AUTH_UPDATED'), $crawler->text()); + + // check acl again + $auth = new phpbb_auth; + // XXX hardcoded id + $user_data = $auth->obtain_user_data(2); + $auth->acl($user_data); + $this->assertEquals(0, $auth->acl_get('u_hideonline')); } } -- cgit v1.2.1 From 3327a4676ce2f894881485aa8f5a5c40c9ea260e Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Sat, 15 Dec 2012 17:26:48 -0500 Subject: [ticket/10758] Test moderator and admin permissions. PHPBB3-10758 --- tests/functional/acp_permissions_test.php | 65 ++++++++++++++++++++++++++++--- 1 file changed, 60 insertions(+), 5 deletions(-) (limited to 'tests/functional') diff --git a/tests/functional/acp_permissions_test.php b/tests/functional/acp_permissions_test.php index 0fa7898963..511306ac84 100644 --- a/tests/functional/acp_permissions_test.php +++ b/tests/functional/acp_permissions_test.php @@ -12,19 +12,27 @@ */ class phpbb_functional_acp_permissions_test extends phpbb_functional_test_case { - public function test_set_permission() + public function setUp() { + parent::setUp(); + $this->login(); $this->admin_login(); $this->add_lang('acp/permissions'); + } + public function test_permissions_tab() + { // Permissions tab // XXX hardcoded id $crawler = $this->request('GET', 'adm/index.php?i=16&sid=' . $this->sid); $this->assert_response_success(); // these language strings are html $this->assertContains($this->lang('ACP_PERMISSIONS_EXPLAIN'), $this->client->getResponse()->getContent()); + } + public function test_select_user() + { // User permissions $crawler = $this->request('GET', 'adm/index.php?i=acp_permissions&icat=16&mode=setting_user_global&sid=' . $this->sid); $this->assert_response_success(); @@ -37,6 +45,53 @@ class phpbb_functional_acp_permissions_test extends phpbb_functional_test_case $crawler = $this->client->submit($form); $this->assert_response_success(); $this->assertContains($this->lang('ACL_SET'), $crawler->filter('h1')->eq(1)->text()); + } + + public function permissions_data() + { + return array( + // description + // permission type + // permission name + // mode + // object name + // object id + array( + 'user permission', + 'u_', + 'u_hideonline', + 'setting_user_global', + 'user_id', + 2, + ), + array( + 'moderator permission', + 'm_', + 'm_ban', + 'setting_mod_global', + 'group_id', + 4, + ), + array( + 'admin permission', + 'a_', + 'a_forum', + 'setting_admin_global', + 'group_id', + 5, + ), + ); + } + + /** + * @dataProvider permissions_data + */ + public function test_change_permission($description, $permission_type, $permission, $mode, $object_name, $object_id) + { + // Get the form + $crawler = $this->request('GET', "adm/index.php?i=acp_permissions&icat=16&mode=$mode&${object_name}[0]=$object_id&type=$permission_type&sid=" . $this->sid); + $this->assert_response_success(); + $this->assertContains($this->lang('ACL_SET'), $crawler->filter('h1')->eq(1)->text()); // XXX globals for phpbb_auth, refactor it later global $db, $cache; @@ -47,15 +102,15 @@ class phpbb_functional_acp_permissions_test extends phpbb_functional_test_case // XXX hardcoded id $user_data = $auth->obtain_user_data(2); $auth->acl($user_data); - $this->assertEquals(1, $auth->acl_get('u_hideonline')); + $this->assertEquals(1, $auth->acl_get($permission)); // Set u_hideonline to never $form = $crawler->selectButton($this->lang('APPLY_PERMISSIONS'))->form(); // initially it should be a yes $values = $form->getValues(); - $this->assertEquals(1, $values['setting[2][0][u_hideonline]']); + $this->assertEquals(1, $values["setting[$object_id][0][$permission]"]); // set to never - $data = array('setting[2][0][u_hideonline]' => '0'); + $data = array("setting[$object_id][0][$permission]" => '0'); $form->setValues($data); $crawler = $this->client->submit($form); $this->assert_response_success(); @@ -66,6 +121,6 @@ class phpbb_functional_acp_permissions_test extends phpbb_functional_test_case // XXX hardcoded id $user_data = $auth->obtain_user_data(2); $auth->acl($user_data); - $this->assertEquals(0, $auth->acl_get('u_hideonline')); + $this->assertEquals(0, $auth->acl_get($permission)); } } -- cgit v1.2.1 From f9cee47003ad76c124822675cf4db0406af1bd70 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Sat, 15 Dec 2012 17:33:07 -0500 Subject: [ticket/10758] Admin is not working yet. PHPBB3-10758 --- tests/functional/acp_permissions_test.php | 2 ++ 1 file changed, 2 insertions(+) (limited to 'tests/functional') diff --git a/tests/functional/acp_permissions_test.php b/tests/functional/acp_permissions_test.php index 511306ac84..f7fd44fc89 100644 --- a/tests/functional/acp_permissions_test.php +++ b/tests/functional/acp_permissions_test.php @@ -72,6 +72,7 @@ class phpbb_functional_acp_permissions_test extends phpbb_functional_test_case 'group_id', 4, ), + /* Admin does not work yet, probably because founder can do everything array( 'admin permission', 'a_', @@ -80,6 +81,7 @@ class phpbb_functional_acp_permissions_test extends phpbb_functional_test_case 'group_id', 5, ), + */ ); } -- cgit v1.2.1