aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMarc Alexander <admin@m-a-styles.de>2019-11-14 21:32:50 +0100
committerMarc Alexander <admin@m-a-styles.de>2019-11-14 21:32:50 +0100
commit7b428641f04766ea8711cb47e76bbe2b52638abe (patch)
tree689e252600228fcbe83a31bc31c283c25c25ea07 /tests
parent0641c209d73d56cbbb00e7f8bc4b64c8a0c9f902 (diff)
downloadforums-7b428641f04766ea8711cb47e76bbe2b52638abe.tar
forums-7b428641f04766ea8711cb47e76bbe2b52638abe.tar.gz
forums-7b428641f04766ea8711cb47e76bbe2b52638abe.tar.bz2
forums-7b428641f04766ea8711cb47e76bbe2b52638abe.tar.xz
forums-7b428641f04766ea8711cb47e76bbe2b52638abe.zip
[ticket/16211] Prevent skipping COPPA via URL parameter
PHPBB3-16211
Diffstat (limited to 'tests')
-rw-r--r--tests/functional/registration_test.php55
1 files changed, 55 insertions, 0 deletions
diff --git a/tests/functional/registration_test.php b/tests/functional/registration_test.php
index 690f4ae9f2..be6dd50203 100644
--- a/tests/functional/registration_test.php
+++ b/tests/functional/registration_test.php
@@ -36,6 +36,10 @@ class phpbb_functional_registration_test extends phpbb_functional_test_case
{
$this->add_lang('ucp');
+ // Check that we can't skip
+ self::request('GET', 'ucp.php?mode=register&agreed=1');
+ $this->assertContainsLang('AGREE', $this->get_content());
+
$crawler = self::request('GET', 'ucp.php?mode=register');
$this->assertContainsLang('REGISTRATION', $crawler->filter('div.content h2')->text());
@@ -64,4 +68,55 @@ class phpbb_functional_registration_test extends phpbb_functional_test_case
$this->assert_checkbox_is_checked($crawler, 'notification.type.post_notification.method.email');
$this->assert_checkbox_is_checked($crawler, 'notification.type.topic_notification.method.email');
}
+
+ /**
+ * @depends test_disable_captcha_on_registration
+ */
+ public function test_register_coppa_account()
+ {
+ $this->login();
+ $this->admin_login();
+
+ $crawler = self::request('GET', "adm/index.php?i=acp_board&mode=registration&sid={$this->sid}");
+ $form = $crawler->selectButton('Submit')->form();
+ $form['config[coppa_enable]']->setValue('1');
+ $crawler = self::submit($form);
+
+ $this->assertContainsLang('CONFIG_UPDATED', $crawler->filter('#main .successbox')->text());
+ $this->logout();
+
+ $this->add_lang('ucp');
+
+ // Check that we can't skip
+ $crawler = self::request('GET', 'ucp.php?mode=register&coppa=1');
+ $this->assertContainsLang('COPPA_BIRTHDAY', $crawler->html());
+
+ $agreement_url = $crawler->filter('#agreement')->filter('a')->links()[0]->getUri();
+ preg_match('/(&hash=\w+)/', $agreement_url, $matches);
+ $crawler = self::request('GET', 'ucp.php?mode=register&coppa=1' . $matches[1]);
+
+ $this->assertContainsLang('REGISTRATION', $crawler->filter('div.content h2')->text());
+
+ $form = $crawler->selectButton('I agree to these terms')->form();
+ $crawler = self::submit($form);
+
+ $form = $crawler->selectButton('Submit')->form(array(
+ 'username' => 'user-coppa-test',
+ 'email' => 'user-coppa-test@phpbb.com',
+ 'new_password' => 'user-coppa-testuser-coppa-test',
+ 'password_confirm' => 'user-coppa-testuser-coppa-test',
+ ));
+ $form['tz']->select('Europe/Berlin');
+ $crawler = self::submit($form);
+
+ $this->assertContainsLang('ACCOUNT_COPPA', $crawler->filter('#message')->text());
+
+ $this->login();
+ $this->admin_login();
+
+ $crawler = self::request('GET', "adm/index.php?i=acp_board&mode=registration&sid={$this->sid}");
+ $form = $crawler->selectButton('Submit')->form();
+ $form['config[coppa_enable]']->setValue('0');
+ $crawler = self::submit($form);
+ }
}