def test_user_change_password(self):
     if self.check_user_logged_in('admin',True):
         self.logout()
     self.goto_page('unlogged_login')
     self.login('admin','admin123')
     self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
     self.fill_view_config({'passwd_role': 1})
     self.logout()
     self.assertEqual(u'flash_success',self.register(u'upasswd', '*****@*****.**'))
     self.assertTrue(wait_Email_received(self.email_server.handler.check_email_received))
     user, passw = self.email_server.handler.extract_register_info()
     self.email_server.handler.reset_email_received()
     self.assertTrue(self.login(user, passw))
     self.assertTrue(self.change_current_user_password('new_passwd'))
     self.logout()
     self.assertTrue(self.login(user, 'new_passwd'))
     self.logout()
     self.assertTrue(self.forgot_password(u'upasswd'))
     self.assertTrue(wait_Email_received(self.email_server.handler.check_email_received))
     user, passw = self.email_server.handler.extract_register_info()
     self.email_server.handler.reset_email_received()
     self.assertTrue(self.login(user, passw))
     self.logout()
     # admin resents password
     self.login('admin', 'admin123')
     self.assertTrue(self.edit_user(u'upasswd', { 'resend_password': 1}))
     self.logout()
     self.assertTrue(wait_Email_received(self.email_server.handler.check_email_received))
     user, passw = self.email_server.handler.extract_register_info()
     self.email_server.handler.reset_email_received()
     self.assertTrue(self.login(user, passw))
     self.logout()
 def test_SSL_non_admin_user(self):
     self.create_user(
         'ssl_email', {
             'password': '******',
             'email': '*****@*****.**',
             'kindle_mail': '*****@*****.**',
             'download_role': 1
         })
     self.setup_server(False, {'mail_use_ssl': 'SSL/TLS'})
     self.logout()
     self.login("ssl_email", "123")
     tasks = self.check_tasks()
     details = self.get_book_details(7)
     details['kindlebtn'].click()
     conv = self.check_element_on_page(
         (By.LINK_TEXT, details['kindle'][0].text))
     self.assertTrue(conv)
     conv.click()
     self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
     i = 0
     while i < 10:
         time.sleep(2)
         task_len, ret = self.check_tasks(tasks)
         if task_len == 1:
             if ret[-1]['result'] == 'Finished' or ret[-1][
                     'result'] == 'Failed':
                 break
         i += 1
     self.assertEqual(ret[-1]['result'], 'Finished')
     self.assertTrue(
         wait_Email_received(
             self.email_server.handler.check_email_received))
     self.logout()
     self.login("admin", "admin123")
     self.edit_user('ssl_email', {'delete': 1})
 def test_registering_user(self):
     if self.check_user_logged_in('admin', True):
         self.logout()
     self.assertEqual(u'flash_success',self.register(u'u1', '*****@*****.**'))
     self.assertTrue(wait_Email_received(self.email_server.handler.check_email_received))
     user, passw = self.email_server.handler.extract_register_info()
     self.email_server.handler.reset_email_received()
     self.assertTrue(self.login(user, passw))
     self.logout()
     self.assertEqual(u'flash_success',self.register(u'ü执1', u'*****@*****.**'))
     self.assertTrue(wait_Email_received(self.email_server.handler.check_email_received))
     user, passw = self.email_server.handler.extract_register_info()
     self.assertTrue(self.login(user, passw))
     self.logout()
     self.assertEqual(u'flash_danger',self.register(u'guest','*****@*****.**'))
     self.assertEqual(u'flash_danger', self.register(u' guest ', '*****@*****.**'))
 def test_registering_user_fail(self):
     if self.check_user_logged_in('admin',True):
         self.logout()
     self.email_server.handler.reset_email_received()
     self.assertEqual(u'flash_success',self.register(u'udouble', '*****@*****.**'))
     self.assertTrue(wait_Email_received(self.email_server.handler.check_email_received))
     self.email_server.handler.reset_email_received()
     self.assertEqual(u'flash_danger',self.register(u'udouble', '*****@*****.**'))
     self.email_server.handler.reset_email_received()
     self.assertEqual(u'flash_danger',self.register(u'udoubl', '*****@*****.**'))
     self.email_server.handler.reset_email_received()
     self.assertEqual(u'flash_danger',self.register(u'UdoUble', '*****@*****.**'))
     self.email_server.handler.reset_email_received()
     self.assertEqual(u'flash_danger',self.register(u'UdoUble', '*****@*****.**'))
     self.email_server.handler.reset_email_received()
     self.assertEqual(u'flash_danger',self.register(u'UdoUble', 'huJ@de'))
 def test_registering_only_email(self):
     if not self.check_user_logged_in('admin',True):
         self.login('admin', 'admin123')
         self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
     self.fill_basic_config({'config_register_email': 1})
     self.logout()
     self.assertEqual(u'flash_success', self.register(u'', '*****@*****.**'))
     self.assertTrue(wait_Email_received(self.email_server.handler.check_email_received))
     user, passw = self.email_server.handler.extract_register_info()
     self.assertEqual('*****@*****.**', user)
     self.email_server.handler.reset_email_received()
     self.assertTrue(self.login(user, passw))
     self.logout()
     self.login('admin', 'admin123')
     self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
     self.fill_basic_config({'config_register_email': 0})
     self.logout()
 def test_STARTTLS_resend_password(self):
     self.create_user('paswd_resend', {
         'password': '******',
         'email': '*****@*****.**',
         'edit_role': 1
     })
     self.setup_server(False, {'mail_use_ssl': 'STARTTLS'})
     self.assertTrue(self.edit_user(u'paswd_resend',
                                    {'resend_password': 1}))
     self.edit_user('paswd_resend', element={})
     password_link = self.check_element_on_page(
         (By.ID, "resend_password")).get_attribute('data-action')
     # user_id = password_link[password_link.rfind("/")+1:]
     self.logout()
     self.assertTrue(
         wait_Email_received(
             self.email_server.handler.check_email_received))
     user, passw = self.email_server.handler.extract_register_info()
     self.email_server.handler.reset_email_received()
     self.assertTrue(self.login(user, passw))
     self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
     self.logout()
     self.login('admin', 'admin123')
     self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
     self.setup_server(False, {'mail_server': 'mail.example.org'})
     # check button disappears
     self.edit_user('paswd_resend', element={})
     self.assertFalse(self.check_element_on_page(
         (By.ID, "resend_password")))
     self.driver.get('http://127.0.0.1:8083/admin/user/99')
     self.assertTrue(self.check_element_on_page((By.ID, "flash_danger")))
     r = requests.session()
     login_page = r.get('http://127.0.0.1:8083/login')
     token = re.search(
         '<input type="hidden" name="csrf_token" value="(.*)">',
         login_page.text)
     payload = {
         'username': "******",
         'password': "******",
         'submit': "",
         'next': "/",
         "csrf_token": token.group(1)
     }
     r.post('http://127.0.0.1:8083/login', data=payload)
     link = r.get('http://127.0.0.1:8083/admin/view')
     token = re.search(
         '<input type="hidden" name="csrf_token" value="(.*)">', link.text)
     payload = {"csrf_token": token.group(1)}
     request = r.post('http://127.0.0.1:8083' + password_link, data=payload)
     # self.driver.get(password_link)
     self.assertTrue("flash_danger" in request.text)
     #self.assertTrue(self.check_element_on_page((By.ID, "flash_danger")))
     request = r.post('http://127.0.0.1:8083' +
                      password_link[:password_link.rfind("/")] + '/99',
                      data=payload)
     # self.driver.get()
     self.assertTrue("flash_danger" in request.text)
     r.close()
     # self.assertTrue(self.check_element_on_page((By.ID, "flash_danger")))
     self.edit_user('paswd_resend', {'delete': 1})
     self.setup_server(False, {'mail_server': '127.0.0.1'})