Example #1
0
    def do_register(self, *numbers):
        for i in numbers:
            print("Registering user %d" % i)

            self.get("/ucp.php?mode=register")
            self.assert_successish()

            assert "Registration" in self.response.body

            form = self.response.form(id="agreement")
            elements = form.elements.mutable
            elements.submit("agreed")
            self.post(form.computed_action, body=elements.params.list)
            self.assert_successish()

            assert "Username:"******"register")
            # for repeated runs
            suffix = self.random_suffix()
            params = {
                "username": "******" % i,
                "new_password": "******",
                "password_confirm": "test42",
                "email": "*****@*****.**" % i,
                "lang": "en",
                "tz": "UTC",
                "confirm_id": "",
                "confirm_code": "",
            }

            if self.phpbb_version < (3, 1, 0):
                params["email_confirm"] = params["email"]

            self.check_form_key_delay()

            elements = form.elements.mutable
            elements.submit("submit")
            params = webracer.extend_params(elements.params.dict, params)
            self.post(form.computed_action, body=params)
            self.assert_successish()

            assert "Registration" not in self.response.body
            assert "Thank you for registering" in self.response.body
            # check that there are no further actions needed
            assert "You may now login with your username" in self.response.body

            self.logout()
Example #2
0
 def test_register(self):
     self.get('/ucp.php?mode=register')
     self.assert_successish()
     
     assert 'Registration' in self.response.body
     
     form = self.response.form(id='agreement')
     elements = form.elements.mutable
     elements.submit('agreed')
     self.post(form.computed_action, body=elements.params.list)
     self.assert_successish()
     
     assert 'Username:'******'register')
     # for repeated runs
     #suffix = self.random_suffix()
     suffix = '43'
     params = {
         'username': '******' + suffix,
         'new_password': '******',
         'password_confirm': 'test42',
         'email': '*****@*****.**' % suffix,
         'lang': 'en',
         'tz': 'UTC',
         'confirm_id': '',
         'confirm_code': '',
     }
     
     if self.phpbb_version < (3, 1, 0):
         params['email_confirm'] = params['email']
     
     self.check_form_key_delay()
     
     elements = form.elements.mutable
     elements.submit('submit')
     params = webracer.extend_params(elements.params.dict, params)
     self.post(form.computed_action, body=params)
     self.assert_successish()
     
     assert 'Registration' not in self.response.body
     assert 'Thank you for registering' in self.response.body
     # check that there are no further actions needed
     assert 'You may now login with your username' in self.response.body
Example #3
0
 def test_acp_login(self):
     self.login('morpheus', 'morpheus')
     
     self.get('/')
     self.assert_successish()
     
     doc = self.response.lxml_etree
     acp_link = webracer.utils.xpath_first_check(doc, '//div[@class="copyright"]//a[text() = "Administration Control Panel"]').attrib['href']
     acp_link = self.response.urljoin(acp_link)
     
     self.get(acp_link)
     self.assert_successish()
     
     assert 'To administer the board you must re-authenticate yourself.' in self.response.body
     
     form = self.response.form(id='login')
     doc = self.response.lxml_etree
     password_name = webracer.utils.xpath_first_check(doc, '//input[@type="password"]').attrib['name']
     
     params = {
         'username': '******',
         password_name: 'morpheus',
     }
     
     params = webracer.extend_params(form.params.list, params)
     self.post(form.computed_action, body=params)
     self.assert_successish()
     
     assert 'You have successfully authenticated' in self.response.body
     
     doc = self.response.lxml_etree
     acp_link = webracer.utils.xpath_first_check(doc, '//div[@class="copyright"]//a[text() = "Administration Control Panel"]').attrib['href']
     # note: uses previous page's form's computed action
     acp_link = self.response.urljoin(acp_link)
     
     self.get(acp_link)
     self.assert_successish()
     
     assert 'Board statistics' in self.response.body
Example #4
0
 def acp_login(self, username, password):
     self.get_with_sid('/adm/index.php')
     self.assert_successish()
     
     assert 'To administer the board you must re-authenticate yourself.' in self.response.body
     
     form = self.response.form(id='login')
     
     doc = self.response.lxml_etree
     password_name = xpath_first_check(doc, '//input[@type="password"]').attrib['name']
     
     params = {
         'username': username,
         password_name: password,
     }
     
     params = webracer.extend_params(form.params.list, params)
     self.post(form.computed_action, body=params)
     self.assert_successish()
     
     assert 'You have successfully authenticated' in self.response.body
     
     self.find_sid()
Example #5
0
 def test_install(self):
     self.get('/')
     self.assert_redirected_to_uri('/install/index.php')
     
     self.follow_redirect()
     self.assert_successish()
     
     # clicking on install link
     self.get('/install/index.php?mode=install&language=en')
     self.assert_successish()
     
     assert 'Welcome to Installation' in self.response.body
     
     form = self.response.form(id='install_install')
     self.post(form.computed_action, body=form.params.list)
     self.assert_successish()
     
     assert 'Test again' not in self.response.body
     assert 'Start install' in self.response.body
     
     form = self.response.form()
     self.post(form.computed_action, body=form.params.list)
     self.assert_successish()
     
     assert 'Database type' in self.response.body
     
     #dbms = utils.current.dbms or self.conf.db.driver
     dbms = os.environ.get('DBMS') or self.conf.db.driver
     if dbms == 'postgres':
         assert 'PostgreSQL' in self.response.body
     else:
         assert 'MySQL with MySQLi Extension' in self.response.body
     
     db_params = {
         'dbms': dbms,
         'table_prefix': self.conf.db.table_prefix,
     }
     attr_map = dict(host='dbhost', port='dbport', dbname='dbname',
         user='******', password='******')
     attrs = getattr(self.conf, dbms)
     for fk in attr_map:
         lk = attr_map[fk]
         if fk in attrs:
             db_params[lk] = attrs.get(fk)
     
     form = self.response.form()
     params = webracer.extend_params(form.params.list, db_params)
     self.post(form.computed_action, body=params)
     self.assert_successish()
     
     if 'Could not connect to the database' in self.response.body:
         self._fail_db_connection()
     if 'Successful connection' not in self.response.body:
         self._fail_db_connection()
     
     form = self.response.form()
     self.post(form.computed_action, body=form.params.list)
     self.assert_successish()
     
     assert 'Administrator configuration' in self.response.body
     
     admin_params = {
         'admin_name': 'morpheus',
         'admin_pass1': 'morpheus',
         'admin_pass2': 'morpheus',
         'board_email': '*****@*****.**',
     }
     
     if self.phpbb_version < (3, 1, 0):
         admin_params['board_email1'] = admin_params['board_email']
         admin_params['board_email2'] = admin_params['board_email']
     
     form = self.response.form()
     params = webracer.extend_params(form.params.list, admin_params)
     self.post(form.computed_action, body=params)
     self.assert_successish()
     
     assert 'Tests passed' in self.response.body
     
     form = self.response.form()
     self.post(form.computed_action, body=form.params.list)
     self.assert_successish()
     
     assert 'The configuration file has been written' in self.response.body
     
     form = self.response.form()
     
     self.post(form.computed_action, body=form.params.list)
     self.assert_successish()
     
     assert 'The settings on this page are only necessary' in self.response.body
     
     # it's a giant form that we don't care for, just submit it
     form = self.response.form()
     self.post(form.computed_action, body=form.params.list)
     self.assert_successish()
     
     assert 'Proceed to the next screen to finish installing' in self.response.body
     
     form = self.response.form()
     self.post(form.computed_action, body=form.params.list)
     self.assert_successish()
     
     assert 'You have successfully installed' in self.response.body
     
     # have to submit this form also
     
     form = self.response.form()
     self.post(form.computed_action, body=form.params.list)
     self.assert_successish()
     
     assert 'Send statistical information' in self.response.body
     
     self._enable_debug()
Example #6
0
 def _check(self, target, extra, expected):
     actual = webracer.extend_params(target, extra)
     self.assertEqual(utils.listit(expected), utils.listit(actual))