From 2c8a93b6d996d242c48e53b1d4980ccf6c6cfc4a Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Wed, 6 Nov 2013 11:46:56 +0100 Subject: [PATCH 1/3] [ticket/181] Add functional tests for portal redirect --- tests/functional/portal_redirect_test.php | 44 +++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 tests/functional/portal_redirect_test.php diff --git a/tests/functional/portal_redirect_test.php b/tests/functional/portal_redirect_test.php new file mode 100644 index 00000000..420455cc --- /dev/null +++ b/tests/functional/portal_redirect_test.php @@ -0,0 +1,44 @@ +login(); + $this->admin_login(); + $this->add_lang(array('mods/portal')); + $this->enable_board3_portal_ext(); + } + + protected function enable_board3_portal_ext() + { + $crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&sid=' . $this->sid); + $crawler->filter('tr.ext_disabled')->each(function ($node, $i) + { + if (strpos($node->text(), 'Board3 Portal') !== false) + { + $crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=enable_pre&ext_name=board3%2fportal&sid=' . $this->sid); + $form = $crawler->selectButton('Enable')->form(); + $crawler = self::submit($form); + $this->assertContains('The extension was enabled successfully', $crawler->text()); + } + }); + } + + public function test_redirect() + { + $crawler = self::request('GET', ''); + $this->assertContains('Board3 Portal', $crawler->text()); + } +} From 04f6d4018f5b2d807e6e6cf23affb71e54397c27 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Wed, 6 Nov 2013 12:19:57 +0100 Subject: [PATCH 2/3] [ticket/181] Check if mod_rewrite is enabled in functional tests --- tests/functional/portal_redirect_test.php | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/tests/functional/portal_redirect_test.php b/tests/functional/portal_redirect_test.php index 420455cc..83e338ba 100644 --- a/tests/functional/portal_redirect_test.php +++ b/tests/functional/portal_redirect_test.php @@ -38,7 +38,20 @@ class phpbb_functional_portal_redirect_test extends \board3\portal\tests\testfra public function test_redirect() { - $crawler = self::request('GET', ''); - $this->assertContains('Board3 Portal', $crawler->text()); + if (function_exists('apache_get_modules')) + { + $modules = apache_get_modules(); + $mod_rewrite = in_array('mod_rewrite', $modules); + } + else + { + $mod_rewrite = (getenv('HTTP_MOD_REWRITE')=='On') ? true : false; + } + + if ($mod_rewrite) + { + $crawler = self::request('GET', ''); + $this->assertContains('Board3 Portal', $crawler->text()); + } } } From 9adf059eaa20d992093e76167d13af7b35d083bb Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Wed, 6 Nov 2013 16:20:50 +0100 Subject: [PATCH 3/3] [ticket/181] Correctly check if Board3 Portal extension is disabled --- tests/functional/portal_redirect_test.php | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/tests/functional/portal_redirect_test.php b/tests/functional/portal_redirect_test.php index 83e338ba..e2c2cb56 100644 --- a/tests/functional/portal_redirect_test.php +++ b/tests/functional/portal_redirect_test.php @@ -23,17 +23,24 @@ class phpbb_functional_portal_redirect_test extends \board3\portal\tests\testfra protected function enable_board3_portal_ext() { + $enable_portal = false; $crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&sid=' . $this->sid); - $crawler->filter('tr.ext_disabled')->each(function ($node, $i) + $disabled_extensions = $crawler->filter('tr.ext_disabled')->extract(array('_text')); + foreach ($disabled_extensions as $extension) { - if (strpos($node->text(), 'Board3 Portal') !== false) + if (strpos($extension, 'Board3 Portal') !== false) { - $crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=enable_pre&ext_name=board3%2fportal&sid=' . $this->sid); - $form = $crawler->selectButton('Enable')->form(); - $crawler = self::submit($form); - $this->assertContains('The extension was enabled successfully', $crawler->text()); + $enable_portal = true; } - }); + } + + if ($enable_portal) + { + $crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=enable_pre&ext_name=board3%2fportal&sid=' . $this->sid); + $form = $crawler->selectButton('Enable')->form(); + $crawler = self::submit($form); + $this->assertContains('The extension was enabled successfully', $crawler->text()); + } } public function test_redirect()